AWS CLI 実行時に「Unable to locate credentials」のエラーが発生してしまいます

質問・問題

AWS CLI 実行時に「Unable to locate credentials」のエラーとなりコマンドが実行できません。
原因と対応方法を教えてください。

 

回答・解決方法

切り分けにあたり、参考記事[1]の内容をお試しいただき、認証情報が正しく設定されているかをご確認ください。

また、IAMロールがアタッチされたEC2上で、AWS CLI を実行する場合、その認証情報は「EC2インスタンスメタデータサービス」から取得される形となります(参考記事[2])。

そのため、EC2インスタンスにおいて、プロキシを設定されている場合には「NO_PROXY」環境変数で、インスタンスメタデータサービスの IP アドレス「169.254.169.254」を除外指定する必要がございます(参考記事[3])。

除外指定を行わない場合には、認証情報が取得できず「Unable to locate credentials.」となります。

 

【参考記事】

[1] AWS CLI を使用して Amazon S3 バケットに接続する際に発生する「認証情報が見つかりません」というエラーを修正する方法を教えてください。(How can I fix the error "Unable to locate credentials" when I try to connect to my Amazon S3 bucket using the AWS CLI?)

https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-locate-credentials-error/

 

[2] Amazon EC2 の IAM ロール

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#instance-metadata-security-credentials

--- (抜粋)
インスタンスメタデータからのセキュリティ認証情報の取得

(中略)

インスタンスで実行されるアプリケーション、AWS CLI、および Tools for Windows PowerShell コマンドのために、一時的なセキュリティ認証情報を明示的に取得する必要はありません。AWS SDK、AWS CLI、および Tools for Windows PowerShell は、EC2 インスタンスメタデータサービスから自動的に認証情報を取得し、使用します。
---

 

[3] HTTP プロキシを使用する
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-proxy.html

--- (抜粋)
Amazon EC2 インスタンスでのプロキシの使用
IAM ロールがアタッチされた状態で起動された Amazon EC2 インスタンスでプロキシを設定する場合は、インスタンスメタデータへのアクセスに使用されるアドレスを除外してください。これを行うには、NO_PROXY 環境変数をインスタンスメタデータサービスの IP アドレス「169.254.169.254」に設定します。このアドレスは変化しません。

Linux または macOS
$ export NO_PROXY=169.254.169.254

Windows
C:\> setx NO_PROXY 169.254.169.254
---

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください