EC2インスタンスでAWS CLIコマンドを実行の際に、「Unable to locate credentials.You can configure credentials by running “aws configure”」のエラーメッセージが出力されました、対策方法をご教示ください

2021.10.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

EC2インスタンスサーバでシェルを実行してアクセスログを取得した際に、以下のエラーが発生しました。
エラーの原因と対策方法をご教示ください。

エラーメッセージ
Unable to locate credentials.You can configure credentials by running "aws configure"

発生原因

・エラーメッセージ「Unable to locate credentials. You can configure credentials by running "aws configure"」はAWS CLI で有効な認証情報が取得できなかった場合に一時的な問題として発生しうるものです。
AWS CLI を設定ファイル(aws configure での設定 等)を使用せず、認証情報をロールから取得している場合、一時的な理由により認証情報の取得が出来ず、稀に上記のようなエラーが発生する場合があります。
・設定に不備があります。
・プロキシを設定されている可能性があります。

AWSトラブルシューティング確認

EC2 インスタンスで AWS CLI コマンドを実行する際のトラブルシューティングに関連記載があります。
EC2 インスタンスで AWS CLI コマンドを実行する際のトラブルシューティング

簡単な説明
インスタンスで AWS CLI コマンドを実行すると、次のいずれかのエラーメッセージが表示されることがあります。
"Unable to locate credentials.You can configure credentials by running 'aws configure'"

解決方法
・最新の AWS CLI バージョンを実行していることを確認する
AWS CLI コマンドの実行時にエラーが発生した場合は、ご利用中の AWS CLI を最新のバージョンにしてください。
・Unable to locate credentials
AWS CLI が正しくインストールされ、設定されていることを確認します。

具体的な対処法

・一時的な問題の場合、上記のトラブルシューティングを実施しても解決されない場合はアプリケーション等にてリトライ動作を実施することも有効です。
以下のドキュメント[1]を参考に、リトライとエクスポネンシャルバックオフを実施することで事象が改善されるかお試しください。
・設定不備を検出された場合はaws configure list で設定が正しいか確認してください。
・プロキシ「NO_PROXY」環境変数で、インスタンスメタデータサービスの IP アドレス「169.254.169.254」を除外してください。

参考資料

[1]AWS でのエラー再試行とエクスポネンシャルバックオフ
[2]Configuring the AWS CLI - AWS Command Line Interface
[3]Troubleshoot running AWS CLI commands on EC2 instances
[4]AWS CLIでプロキシサーバを使う場合の注意
[5]How can I fix the error "Unable to locate credentials" when I try to connect to my Amazon S3 bucket using the AWS CLI?