Closed6
awscliでスイッチロールする
何がいいの?
スイッチロールとして
異なるアカウントへのアクセスが容易になる。
AWSコンソールと比較して
わざわざGUIでコンソールにアクセスし、スイッチロールする必要がなくなる
参考
登場人物
- クライアント
- アカウントA(スイッチ元)
- アカウントB(スイッチ先)
流れ
- アカウントAでIAMユーザを用意する
- アカウントBでスイッチ先のロールを用意する
- スイッチ元のAssumeRoleを許可する
- スイッチ先で使用したい権限をつける
- profileを追加する
- 試す
構成図
アカウントAでIAMユーザを用意する
ユーザ側で許可が必要なポリシーはsts:AssumeRole
アクション
アカウントBでスイッチ先のロールを用意する
アカウントAのIAMユーザを許可します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AccountID>:user/<スイッチ元ユーザ>"
},
"Action": "sts:AssumeRole"
}
]
}
ポリシーはアカウントBで操作したいリソースのものをつけましょう
profileを設定する
awscliのためにprofileを設定します。
/path/to/.aws/config
[profile assumerole-test]
region = ap-northeast-1
output = json
role_arn = arn:aws:iam::<AccountID>:role/<スイッチ先ロール名>
source_profile = <スイッチ元プロファイル>
プロファイルdefault
を使用していたらsource_profile
はdefault
となります
動作確認
--profile
で指定して、返事が返ってきたらOK
$ aws sts get-caller-identity --profile assumerole-test
{
"UserId": "略",
"Account": "<AccountID>",
"Arn": "arn:aws:sts::<AccountID>:assumed-role/<スイッチ先ロール名>/botocore-session-xxxxxxxxxxxx"
}
このスクラップは2023/05/27にクローズされました