Amplify CLIでプロファイルを削除した場合の復元方法
結論
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