IAM アイデンティティセンターで特定のアカウントを非表示にする方法を教えてください

2023.03.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

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 を記載してください。

参考資料