背景
AWSでのアプリ開発を試しており、CDKでデプロイしようとしました。
私はCDK開発経験が皆無だったためAIと問答を繰り返しながら設定等進めていましたが、1点詰まった部分があったので、そちらの備忘となります。
エラー
デプロイにあたり、最初にCDKブートストラップを実施する必要があったので、そのコマンドを打っていました。
具体的には以下を入力しEnterを押しました。
※XXXはデプロイの中身に固有の名称です。
npx cdk bootstrap aws://XXXXXXXX/ap-northeast-1
この結果として、以下のエラーがしばらく消えませんでした。
※アカウントに固有の表示(アカウントIDやユーザーネーム等)はXXXやuser-nameで伏字にしています。
❌ Environment aws://XXXXXXXX/ap-northeast-1 failed bootstrapping: AuthenticationError: Need to perform AWS calls for account XXXXXXXXXXXX, but no credentials have been configured at SdkProvider.forEnvironment (C:\Users\user-name\…) at async BootstrapStack.lookup (C:\Users\user-name\…) at async Bootstrapper.modernBootstrap (C:\Users\user-name\…) at async C:\Users\user-name\… { type: 'authentication', source: 'user', cause: undefined } Need to perform AWS calls for account XXXXXXXXXXXX, but no credentials have been configured
AI君に聞いたところ、aws configureコマンドから設定が必要!とは言ってくれて、その内容は設定したのですが、それでも上記エラーは消えませんでした。
解決方法
まず、以下コマンドを入力しEnterを押します。
これは、現在の認証情報が表すIAMエンティティに関する情報を取得するコマンドとのこと。
aws sts get-caller-identity
私はこの時、以下のエラーが出ました。
An error occurred (InvalidClientTokenId) when calling the GetCallerIdentity operation: The security token included in the request is invalid.
詳しくは分からなかったが明らかに設定が出来ていないという状態。
自分の情報を提供するため、以下を入力しました。
SET AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXXXXXXX
SET AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SET AWS_SESSION_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
※AWS_ACCESS_KEY_ID⇒AWSアカウントのアクセスキー
AWS_SECRET_ACCESS_KEY⇒AWSアカウントのシークレットキー
AWS_SESSION_TOKEN⇒AWSアカウントのセッショントークン
上記のようなアクセスキー等の情報はAWS access portalのところから見ることができました。
aws configureのところで入力はしたのですが、それだけではダメでした。
こちらはアクセスキー作成時も表示されるので、メモしておくとスムーズです。
これを実行したのち、縋る思いでもう一度最初の
aws sts get-caller-identity
コマンドを入力しました。
すると、結果が変わりました。これで設定が出来ている状態のようです。
{
"UserId": "XXXXXXXXX:user-name",
"Account": "000000000000",
"Arn": "arn:aws:sts::000000000000:assumed-role/ArnExample/user-name"
}
この状態でブートストラップ実施をすると、ずっと出ていたエラーは消えました。
その後、無事デプロイにいたりました。
所感
解決方法に記載した部分に関しては、AI君に聞いても出てこなかった(聞き方が悪かったかも…そもそもその概念が無く、聞くことも出来なかった)のでかなり苦戦しました。
開発経験がなさすぎてAI君に頼りきりになっているので、一旦ふと立ち止まって情報を整理し、設定内容を確認することは重要だと感じました。
※間違い等ございましたらご指摘いただけますと幸いです。