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クロスアカウントデプロイの設定、組織ロール間の切り替え。

試してみる — AWS CLI Command Builder

フルツールを開く