AWS CLI で IAM ユーザーのクレデンシャルで認証して、スイッチロールして S3 にアクセスする設定。
実行コマンド
$ aws s3 ls --profile s3_access --endpoint-url https://bucket.vpce-********-********.s3.ap-northeast-1.vpce.amazonaws.com
2024-07-31 05:05:46,977 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (2): sts.ap-northeast-1.amazonaws.com:443
AWS 側の設定
IAM ユーザー: s3-upload-user
- アタッチする IAM ポリシー
- AmazonS3ReadOnlyAccess(AWS管理)
- s3-upload-policy(カスタマー管理)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::123456789012:role/s3-upload-role" ] } ] }
IAMロール: s3-upload-role
- アタッチする IAM ポリシー
- AmazonS3FullAccess(AWS管理)
- 信頼関係
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/s3-upload-user" }, "Action": "sts:AssumeRole" } ] }
クライアント側設定
- ~/.aws/config
[profile s3_access] region = ap-northeast-1 role_arn = arn:aws:iam::123456789012:role/s3-upload-role source_profile=s3_access
- ~/.aws/credential
[s3_access] aws_access_key_id = ******** aws_secret_access_key = ********