📝

Amplify CLIでプロファイルを削除した場合の復元方法

2021/05/14に公開

結論

awsのconfigファイルに削除したプロファイルを再記述し、既存のロールなどと紐づける。

やらかした\(^o^)/オワタ

Amplify CLIにて、amplify initを行った際に設定したaws configファイルのプロファイルを書き換えてしまい、既存の環境にアクセスできなくなりました。

具体的に

もともと以下のプロファイルが記載されていました。

[profile amplify_cli]
role_arn = arn:aws:iam::012345678910:role/role_amplify_cli
source_profile = default
region = ap-northeast-1

上記をリネームとリソース整理のために変更しました。

[profile Amp_CLI]
role_arn = arn:aws:iam::012345678910:role/role_Amp_CLI
source_profile = default
region = ap-northeast-1

Access Deniedが発生

Amplifyプロジェクトに変更を加えていざamplify pushしたら、
An error occurred during the push operation: Access Denied
と言われてしまい、変更をプッシュできなくなってしまいました。

--profile <新しいプロファイル>を試す

--profileオプションつければ行けるかと思いました。
amplify push --profile Amp_CLI
結果、
An error occurred during the push operation: Access Denied
ダメでした。

amplify initしてみる

じゃあinitからやり直せるかと思い、
amplify init
を実行しました。
Could not initialize 'dev': Access Denied
ダメでした。
amplify init --profile Amp_CLI
でも結果は変わりませんでした。

amplify configureしてみる

amplify configureでユーザーリセットを試すも、
Specify the username of the new IAM user:
で新しいユーザーを作る設定しかなく、断念しました。

configファイルに手動で復元してみる

そんなことで復元できないと思いつつ、削除したプロファイル名を再記述し、既存のロールと紐づけてみました。

[profile amplify_cli]
role_arn = arn:aws:iam::012345678910:role/role_Amp_CLI
source_profile = default
region = ap-northeast-1

これで
amplify push --profile role_amplify_cli
を実行したところ、何とプッシュが成功しました!

Amplify CLIに紐づいているのはプロファイル名だけだったようで、名前を復元して適切なアクセス権限を持つロールを紐づければ既存環境にアクセスできました。

余談

実はinitがうまくいかなかった時点でサポートとチャットでやり取りしていたのですが、チャットしながらconfigをいじっていたら復元できてしまいましたw
それでも、「Amplify CLIでユーザープロファイルを変更したい」という質問に、サポートの方からは「設定したプロファイルを変更可能かを調査してみます」とのご返答を頂き、さすがAWSサポートだと思いました!
本当に課題解決型のアプローチは心強いですし、毎回勉強になります。

まとめ

Amplify CLIで設定したプロファイルをリネームのために削除してしまうというやらかしでした。簡単に復元できたのでよかったですが、安易に削除する前に影響範囲の考慮が必要だと実感しました。
このやらかしがどなたかの参考になれば幸いです。

追記

サポートから設定済みプロファイルの変更方法も教えていただきました。
amplify configure project
を実行することで可能でした。
改めてサポートに感謝します!

Discussion