🥂
EC2でAWS_CLIを実行する際の認証情報優先順位
EC2上からAWS_CLIを実行する際の認証情報優先順位
概要
備忘。
config と IAM ロールにさえ気をつけておけば良いと思ってたがためハマった。。
前提
2023/10/05 時点の情報
結論
優先順位
- 明示的な指定 ( --profile オプション)
- 環境変数
- EC2 上の credentials
- IAM ロール
検証
-
環境変数:なし credentials: default に存在しないユーザーの認証情報 IAMロール:バケットのリスト許可
> aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************RWXG shared-credentials-file secret_key ****************ElRq shared-credentials-file region ap-northeast-1 config-file ~/.aws/config >aws s3 ls An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
-
環境変数:バケットのリスト許可した認証情報 credentials: default に存在しないユーザーの認証情報 IAMロール:バケットのリスト許可
>aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************EC43 env secret_key ****************vTAe env region ap-northeast-1 config-file ~/.aws/config >aws s3 ls 2023-02-12 12:32:00 aws-test-alb-logs 2023-07-24 07:28:28 aws-test-athena
-
環境変数:なし credentials:なし IAMロール:バケットのリスト許可
>aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************QHGQ iam-role secret_key ****************Qj/r iam-role region ap-northeast-1 imds >aws s3 ls 2023-02-12 12:32:00 aws-test-alb-logs 2023-07-24 07:28:28 aws-test-athena
-
環境変数:なし credentials: プロファイル default を削除し、プロファイル hoge に存在しないユーザーの認証情報 IAMロール:バケットのリスト許可
>aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************QHGQ iam-role secret_key ****************Qj/r iam-role region ap-northeast-1 imds >aws s3 ls --profile hoge An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
-
環境変数:なし credentials:プロファイル default を削除し、プロファイル hoge に自アカウントのユーザーの認証情報 IAMロール:なし
>aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key <not set> None None secret_key <not set> None None region ap-northeast-1 imds >aws s3 ls Unable to locate credentials. You can configure credentials by running "aws configure". >aws s3 ls --profile hoge 2023-02-12 12:32:00 aws-test-alb-logs 2023-07-24 07:28:28 aws-test-athena
-
環境変数:なし credentials:プロファイル default を削除し、プロファイル hoge に他アカウントのユーザーの認証情報 IAMロール:なし
>aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key <not set> None None secret_key <not set> None None region ap-northeast-1 imds >aws s3 ls Unable to locate credentials. You can configure credentials by running "aws configure". >aws s3 ls --profile hoge 2021-01-19 03:11:26 athena-logs 2022-02-15 05:50:31 aws-athena-query-results
-
環境変数:set AWS_EC2_METADATA_DISABLED=true credentials:プロファイル default を削除し、プロファイル hoge に他アカウントのユーザーの認証情報 IAMロール:なし
>aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key <not set> None None secret_key <not set> None None region <not set> None None >aws s3 ls Unable to locate credentials. You can configure credentials by running "aws configure". >aws s3 ls --profile hoge 2021-01-19 03:11:26 athena-logs 2022-02-15 05:50:31 aws-athena-query-results
- AWS_EC2_METADATA_DISABLED
Amazon EC2 インスタンスメタデータサービス (IMDS) の使用を無効にします。
true に設定した場合、ユーザーの認証情報または設定 (リージョンなど) は IMDS から要求されません。
- AWS_EC2_METADATA_DISABLED
参考
Re:Post記事
ユーザーガイド
Discussion