やりたいこと
- AWS Organizations でメンバーアカウントを Organizational Unit (OU) 間で移動する権限を付与したい
- 特定のアカウントや OU 間のみ移動可能とする
例えば意図しないアカウントの閉鎖やルートアカウントの操作などを Service Control Policy (SCP) で拒否しているとします。それらの操作が本当に必要になった際に当該 SCP が設定されていない OU にアカウントを移動し作業を行うようなケースを想定しています。
制御例
アカウントの移動を行うには MoveAccount アクションを許可する必要があります。以下のドキュメントに記載のとおり、ルート、OU、アカウントレベルの権限制御をサポートしています。
例えば前述の例で Prod OU と Suspended OU 間の移動を許可する場合は以下のようなポリシーになります。
{
"Sid": "AllowMoveAccount",
"Effect": "Allow",
"Action": "organizations:MoveAccount",
"Resource": [
"arn:aws:organizations::123456789012:ou/o-yyyyyyyyyy/ou-xxxx-bbbbbbbb",
"arn:aws:organizations::123456789012:ou/o-yyyyyyyyyy/ou-xxxx-dddddddd",
"arn:aws:organizations::123456789012:account/o-yyyyyyyyyy/*"
]
}
注意点としては親 OU を Resource 句に指定しても、その親に紐づく子 OU は許可されません。許可する OU をすべて羅列する必要があります。
アカウント ID については上記の例では組織内の全アカウントを許可しています。アカウントを絞りたい場合は、許可リスト形式でアカウントをリストするか、以下のように拒否リストを追加して Deny することもできます。
{
"Sid": "DenyMoveAccount",
"Effect": "Deny",
"Action": "organizations:MoveAccount",
"Resource": [
"arn:aws:organizations::123456789012:account/o-yyyyyyyyyy/222222222222"
]
},
{
"Sid": "AllowMoveAccount",
"Effect": "Allow",
"Action": "organizations:MoveAccount",
"Resource": [
"arn:aws:organizations::123456789012:ou/o-yyyyyyyyyy/ou-xxxx-aaaaaaaa",
"arn:aws:organizations::123456789012:ou/o-yyyyyyyyyy/ou-xxxx-bbbbbbbb",
"arn:aws:organizations::123456789012:account/o-yyyyyyyyyy/*"
]
}
簡単ですが以上です。
参考になれば幸いです。