IAM Identity Center ユーザーのユーザー ID を使用して特定アクションを制限する SCP を作ってみた

IAM Identity Center ユーザーのユーザー ID を使用して特定アクションを制限する SCP を作ってみた

2025.08.13

こんにちは、クラウド事業本部 コンサルティング部のいたくらです。

はじめに

IAM Identity Center(以降 IIC と記載)ユーザーには、ユーザー ID が一意に割り当てられます。
このユーザー ID を使用して、IIC ユーザー作成を制限する SCP を作成してみました。

前提

検証環境について補足します。

  • IAM Identity Center が有効になっている
    • 私の環境は IIC 内でユーザーとグループを作成・管理しています(プロビジョニング方法:Direct)
    • グループ:test-admin-group に IIC ユーザー:test-admin, test-admin-02 が所属
      1-2.png
    • このグループに対しては、Organizations 内のすべてのアカウントに対して AdministratorAccess 権限を適用
      2-3.png
  • Organizations の構成は以下の通り
    5.png
  • IIC の管理者は アカウント:itkr_mem01 に委任している

やってみた

IIC ユーザー作成を制限する SCP を作成する

AWS Organizations > ポリシー > サービスコントロールポリシー に移動します。
「ポリシーを作成」をクリックします。
3.png

ポリシー名とポリシーの説明を入力したら、以下の JSON をコピペします。

test-scp
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyIdentityStoreUserCreationExceptSpecificUsers",
      "Effect": "Deny",
      "Action": "identitystore:CreateUser",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "identitystore:UserId": [
            "{IICユーザー作成を許可するIICユーザーのユーザーIDを入力}"
          ]
        }
      }
    }
  ]
}

ユーザー ID は各 IIC ユーザーの以下キャプチャの箇所から確認可能です。
今回は IIC ユーザー:test-admin だけに IIC ユーザー作成を許可します。
4.png

入力が完了したら「ポリシーを作成」をクリックします。

IIC 管理者を委任しているアカウントに SCP をアタッチする

作成した SCP を選択し、アクションから「ポリシーのアタッチ」をクリックします。
6.png

前提に記載したように、IIC 管理者は itkr_mem01 に委任しているので、このアカウントにチェックを入れて、「ポリシーのアタッチ」をクリックします。
7.png

アタッチが成功すると、「ターゲット」タブから確認できます。
8.png

test-admin-02 で IIC ユーザーを作成してみる

test-admin-02 で アカウント:itkr_mem01 にログインして、IIC ユーザーを作成してみます。
9.png

「ユーザーを追加」をクリックすると、以下のエラーが表示されました。
10-1.png

「test-admin-02 には SCP で identitystore:CreateUser が明示的に拒否されているため権限がない」といった内容のエラーが表示されたので、意図した挙動になっています。

test-admin で IIC ユーザーを作成してみる

test-admin で アカウント:itkr_mem01 にログインして、IIC ユーザーを作成してみます。
11.png

「ユーザーを追加」をクリックすると、正常に追加できました。
12.png

test-admin だけに IIC ユーザー作成を許可するという挙動になっていることが確認できました。

さいごに

IAM Identity Center ユーザーのユーザー ID を使用して特定アクションを制限する SCP を作ってみました。
IIC ユーザー管理者が複数存在する場合は、IIC を通じて引き受けるロールを指定して特定アクションを制限する方が運用は楽だと思いますが、どうしてもユーザーで制限をかけたい!といった場合はこういった方法もありますので参考にしていただければと思います。
おまけに IIC を通じて引き受けるロールを指定して特定アクションを制限する JSON を記載したので、気になる方はご確認ください。
この記事がどなたかのお役に立てれば幸いです。

おまけ

IIC を通じて引き受けるロールを指定して特定アクションを制限する SCP の例は以下になります。

test-scp(許可セット指定 ver.)
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyIdentityStoreUserCreationExceptSpecificUsers",
      "Effect": "Deny",
      "Action": "identitystore:CreateUser",
      "Resource": "*",
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalArn": [
            "arn:aws:sts::*:assumed-role/AWSReservedSSO_{IICユーザー作成を許可する許可セット名を入力}_*/*"
          ]
        }
      }
    }
  ]
}

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.