CLIでスイッチロールする方法のメモ。
- アカウント
111111111111
から222222222222
のhogehoge-roleロールにスイッチする - アカウント
222222222222
ではアカウント111111111111
を信頼したhogehoge-roleロールが作成済み
コマンドでスイッチロール
現在のアイデンティティを確認。
aws sts get-caller-identity
assume-roleしてクレデンシャルを受け取る。
AWS_STS_CREDENTIALS=$(aws sts assume-role --role-arn "arn:aws:iam::222222222222:role/hogehoge-role" --role-session-name AWSCLI-Session)
クレデンシャルを環境変数に格納。
export AWS_ACCESS_KEY_ID=$(echo ${AWS_STS_CREDENTIALS} | jq -r '.Credentials.AccessKeyId') export AWS_SECRET_ACCESS_KEY=$(echo ${AWS_STS_CREDENTIALS} | jq -r '.Credentials.SecretAccessKey') export AWS_SESSION_TOKEN=$(echo ${AWS_STS_CREDENTIALS} | jq -r '.Credentials.SessionToken')
アイデンティティを確認。
aws sts get-caller-identity
元のユーザーに戻るときは環境変数をアンセットする。
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
プロファイルに設定する
.aws/config
に以下のように書く。
[profile default] region = ap-northeast-1 cli_pager = [profile hogehoge-profile] role_arn = arn:aws:iam::222222222222:role/hogehoge-role source_profile = default
コマンド実行時にプロファイルを指定するか、環境変数をセットしてあげる。
export AWS_DEFAULT_PROFILE=hogehoge-profile
アイデンティティを確認。
aws sts get-caller-identity