AWS STS: IAMロールの引き受け
aws sts assume-roleを使用してIAMロールを引き受け、クロスアカウントアクセスや権限昇格のための一時認証情報を取得します。
STS Operations
詳細な説明
STSでIAMロールを引き受ける
aws sts assume-roleコマンドは、指定されたIAMロールの一時的なセキュリティ認証情報を要求します。これはAWSにおけるクロスアカウントアクセス、権限分離、一時認証情報ワークフローの基盤です。
基本的なAsume Role
aws sts assume-role \
--role-arn arn:aws:iam::987654321098:role/CrossAccountReader \
--role-session-name my-session
引き受けた認証情報の使用
# 認証情報をキャプチャ
CREDS=$(aws sts assume-role \
--role-arn arn:aws:iam::987654321098:role/MyRole \
--role-session-name cli-session \
--output json)
# 環境変数としてエクスポート
export AWS_ACCESS_KEY_ID=$(echo $CREDS | jq -r '.Credentials.AccessKeyId')
export AWS_SECRET_ACCESS_KEY=$(echo $CREDS | jq -r '.Credentials.SecretAccessKey')
export AWS_SESSION_TOKEN=$(echo $CREDS | jq -r '.Credentials.SessionToken')
# これでコマンドは引き受けたロールとして実行される
aws s3 ls s3://other-account-bucket/
プロファイルベースのAssume Role
スクリプトの代わりに~/.aws/configに追加:
[profile cross-account]
role_arn = arn:aws:iam::987654321098:role/MyRole
source_profile = default
使用法:aws s3 ls --profile cross-account
ユースケース
他のAWSアカウントのリソースへのアクセス、一時認証情報による最小権限の実装、CI/CDクロスアカウントデプロイの設定、組織ロール間の切り替え。