AWS CLI やプログラムによるアクセスが想定されたもの
管理コンソールで使われることが多い
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::xxxxxxxxxxxxx:user/cliuser" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::s3-crossaccount-bucket01", "arn:aws:s3:::s3-crossaccount-bucket01/*" ] } ] }
Account2側の Account ID を指定する
S3 Bucketにアクセスできるポリシーを付与する
[profile default] region = ap-northeast-1 output = json [profile test] role_arn = arn:aws:iam::スイッチ先のID:role/TestSwitchRole source_profile = default
aws s3 ls --profile test
#aws sts assume-roleコマンドでアカウントBのAccountB_roleのアクセスキー・シークレットアクセスキーなどのクレデンシャル情報を表示し、 #変数role_credentialsに格納する role_credentials=$(aws sts assume-role \ --role-arn "arn:aws:iam::アカウントBのアカウントID:role/AccountB_role" \ --role-session-name session-name) #AccountB_roleのアクセスキーを環境変数AWS_ACCESS_KEY_IDに格納する export AWS_ACCESS_KEY_ID=$(echo $role_credentials | jq -r '.Credentials.AccessKeyId') #AccountB_roleのシークレットアクセスキーを環境変数AWS_SECRET_ACCESS_KEYに格納する export AWS_SECRET_ACCESS_KEY=$(echo $role_credentials | jq -r '.Credentials.SecretAccessKey') #セッショントークンを環境変数AWS_SESSION_TOKENに格納する export AWS_SESSION_TOKEN=$(echo $role_credentials | jq -r '.Credentials.SessionToken') #現在の権限(スイッチしたロールの情報)を確認する aws sts get-caller-identity
aws s3 ls
#環境変数の削除 unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN #現在の権限(スイッチしたロールが何か)を確認する aws sts get-caller-identity
Amazon S3は、容量無制限の安価なオブジェクトストレージ
一般向けサイト
ITエンジニア向けサイト
英語サイト
Portfolio
Copyright (c) 2023 クラウドのインフラ技術 All Rights Reserved.