IAM アイデンティティセンターで特定のアカウントを非表示にする方法を教えてください
困っていた内容
AWS Organizations を使用している AWS アカウントにおいて、本番環境用の OU と開発環境用の OU があり、IAM アイデンティティセンターによる SSO ログインを実施しています。
本番環境へのアクセス制限の一環として、管理用ユーザー以外は IAM アイデンティティセンターのコンソール上で本番環境のアカウントを非表示にしたいと考えています。
IAM アイデンティティセンターで特定のアカウントを非表示にする方法を教えてください。
どう対応すればいいの?
ListAccountsForParent のアクションを拒否するよう IAM ポリシーなどを設定してください。
Lists the accounts in an organization that are contained by the specified target root or organizational unit (OU). If you specify the root, you get a list of all the accounts that aren't in any OU. If you specify an OU, you get a list of all the accounts in only that OU and not in any child OUs.
一例として、1 つの OU に含まれるアカウントを非表示にしたい場合には以下のような IAM ポリシーを設定します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": "organizations:ListAccountsForParent", "Resource": "arn:aws:organizations::123456789012:ou/o-xxxxxxxxxx/ou-yyyy-zzzzzzzz" } ] }
上記のポリシーのうち、o-xxxxxxxxxx
は AWS Organization の組織 ID、ou-yyyy-zzzzzzzz
は非表示にしたい OU の ID です。
OU に含まれるアカウントを非表示にしたい IAM ユーザーやグループなどに上記の IAM ポリシーをアタッチすると、IAM アイデンティティセンターのコンソール上では以下のように表示されます。
上記の画像では Admin_OU を閲覧する権限がないためエラーが発生していますが、Study_OU については閲覧する権限があるため表示されています。
必要に応じて上記の IAM ポリシーを参考に SCP や 権限セット で、非表示にしたい OU を記載してください。