これは何?
AWS CDKチュートリアル時に "but no credentials have been configured" エラーで数時間トラブルシューティングした。同じ詰まり方をしている人が見つからなかったため解決策と原因をメモ。
TL;DR
- ~/.aws/config と ~/.aws/credentials の両方を設定していると、最終的にcredentialsの方の設定が使用される。
- credentialsの方に設定していたTokenが expired していた。
- sso login は成功していたため、気がつかなかった。
解決手順
チュートリアルを進めて、 cdk bootstrap
を行うところでエラー
failed bootstrapping: Error: Need to perform AWS calls for account xxxxx, but no credentials have been configured
以下コマンドを実行し、verboseを使って詳細なログを見る。
cdk bootstrap aws://account_id/region --profile my-profile-name -v
そうすると以下のログが見つかった。
...
cdk There are expired AWS credentials in your environment. The CDK app will synth without current account information.
...
sso loginなどを再度、試してみるが問題なくsso接続できている。
しかし、上記のコマンドだけはエラーを出す。
ググると、 config
fileの profile_nameの読み込まれ方などによるトラブルシューティングが散見されたため試したが特に変わらず。
ダメもとで、 credentials
ファイルのTokenを削除したら、成功した。両方のファイルを読み込み、内部的に上書きしているようだった。