🦔
【IAM】Organizationsで作成した新アカウントへスイッチロールする
はじめに
別アカウントへのスイッチロールを試します。
前回はOrganizationsで新しいAWSアカウントを作成したので
そのアカウントにスイッチロールしてみます。
イメージ図
スイッチロールのメリット
- それぞれのアカウントにログインせずとも操作可能
- パスワードの管理も不要にできる
- ただしスイッチロールする、される権限は必要
- 踏み台アカウントからスイッチロールすることで複数のアカウントを容易に行き来できる
流れ
以下2つを試してみたいと思います。
- スイッチ先のロールを作りスイッチする
- Organizations作成時に指定したロールにスイッチする
Organizationsで作成したアカウントは2ができるので楽ですね。
1. スイッチ先のロールを作りスイッチする
rootのMFA設定と同じタイミングで作成してしまいましょう。
IAMポリシーはスイッチ先のアカウントで操作したいサービス・リソースのものをアタッチします。
信頼ポリシー設定では以下のように接続元アカウントの接続ユーザ(もしくはRole)を指定するのが望ましいでしょう。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::<スイッチ元AccountID>:user/<スイッチ元IAMUser>",
"arn:aws:iam::<スイッチ元AccountID>:role/<スイッチ元IAMRole>",
// 略
]
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
接続元のポリシーではスイッチ先ロールを指定し、AssumeRole
を許可します。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::<スイッチ先AccountID>:role/<スイッチ先IAMRole>"
}
}
これでOKです。
ないとロールの切替時に怒られます。
ロールの切り替え
よりスイッチロールできたら成功です。
表示名
が変わっていたらスイッチロールできています。
2. Organizations作成時に指定したロールにスイッチする
作成時にロールにつけた名前を控えておけばすぐに接続可能です。
この画像の赤枠で囲われているところですね。
許可ポリシーはAdministratorAccess
、信頼ポリシーは以下の通りでした。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<接続元AccountID>:root"
},
"Action": "sts:AssumeRole"
}
]
}
こいつに適切なprincipal設定をつければ1の手順いらんな...
お好みの方で設定すればよいですね。
参考
Discussion