ロールマネージャーへのアクセスを管理する
ロールマネージャーへのアクセスは 2 つのレベルで管理します。IAM アクセス許可は、アカウント内のどのユーザーがロールマネージャーを有効にでき、どのユーザーがロールマネージャーが提供するロールを使用できるかを決定します。組織では、各メンバーアカウントで何を実行できるかはサービスコントロールポリシー (SCP) により決定します。
ロールマネージャーのアクセス許可
ロールマネージャーを有効または無効にするには、iam:PutAccountProperties アクセス許可が必要です。AWS マネージドポリシーである IAMFullAccess にはそれが含まれます。
ロールマネージャーを使用するには、ロールマネージャーがユーザーに代わって実行するアクションに対する IAM アクセス許可が必要です。ロールマネージャーは AcquireRole API を通じてロールを提供します。API は、基盤となる各 IAM アクションをユーザーのアクセス許可に対して評価します。
-
テンプレートに一致するロールがアカウント内に既に存在する場合、
AcquireRoleはそのロールを返します。これには、iam:GetRoleアクセス許可が必要です。 -
一致するロールが存在しない場合、
AcquireRoleはテンプレートからロールを作成します。これには、iam:CreateRoleアクセス許可に加えて、テンプレートが定義するアクセス許可が必要です。テンプレートがインラインポリシーを追加する場合はiam:PutRolePolicy、テンプレートが管理ポリシーをアタッチする場合はiam:AttachRolePolicyが必要です。
完全な IAM アクセスを持つユーザーは、ロールマネージャーが必要とするすべてのアクセス許可を持っています。特定のテンプレートに具体的にどのようなアクションが必要かを確認するには、GetRoleTemplateVersion を使用してテンプレートを取得し、そのポリシーを確認します。
ロールマネージャーがロールを作成すると、AWS CloudTrail はその作成アクションを単一の AcquireRole イベントとして記録します。イベントには、オペレーションを呼び出したユーザー、使用されたロールテンプレートとパラメータ値、および作成されたロールが表示されます。
以下の例は、ロールマネージャーがロール Admin を引き受けたユーザーの代理として AcquireRole オペレーションを呼び出し、PowerUserRoleTemplate ロールテンプレートを用いてロール PowerUserRole を作成したことを示しています。
{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA123EXAMPLE:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "arn": "arn:aws:sts::123456789012:assumed-role/Admin/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "accountId": "123456789012", "accessKeyId": "ASIAWZYMLEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA123EXAMPLE", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Admin" }, "attributes": { "creationDate": "2026-08-11T18:18:50Z", "mfaAuthenticated": "false" } }, "onBehalfOf": { "userId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "identityStoreArn": "arn:aws:identitystore::111122223333:identitystore/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" } }, "eventTime": "2026-08-11T18:23:00Z", "eventSource": "iam.amazonaws.com", "eventName": "AcquireRole", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36", "requestParameters": { "templateArn": "arn:aws:iam::aws:role-template/iam.amazonaws.com/PowerUserRoleTemplate:1", "templateMinorVersion": 0, "replacementValues": { "AWSServiceName": { "values": [ "iam.amazonaws.com" ] } } }, "responseElements": { "role": { "path": "/", "roleName": "PowerUserRole", "roleId": "AROA987EXAMPLE", "arn": "arn:aws:iam::123456789012:role/PowerUserRole", "createDate": "2026-08-11T18:23:00Z", "assumeRolePolicyDocument": "%7B%22Version%22:%222012-10-17%22,%22Statement%22:%5B%7B%22Effect%22:%22Allow%22,%22Principal%22:%7B%22Service%22:%22iam.amazonaws.com%22%7D,%22Action%22:%22sts:AssumeRole%22%7D%5D%7D" } }, "requestID": "fde3dac0-73ac-491c-876b-EXAMPLE89c57", "eventID": "c93332cf-1429-4aee-bcaa-EXAMPLE3790d", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "iam.amazonaws.com" }, "sessionCredentialFromConsole": "true" }
組織内のロールマネージャーを管理する
AWS Organizations サービスコントロールポリシー (SCP) を使用して、組織全体のロールマネージャーを管理できます。次の例は、ロールマネージャーの有効化とロールの作成をブロックする方法のほか、テンプレートベースのロール作成のみをブロックする方法を示しています。
これらの例は、拒否リスト戦略を使用しています。つまり、FullAWSAccess または組織エンティティにアタッチされたアクションを許可する別のポリシーも必要となります。それでも、ID ベースのポリシーを使用してプリンシパルにアクセス許可を付与する必要があります。
メンバーアカウントがコンソールまたは API を使用してロールマネージャーを有効にできないようにするには、iam:PutAccountProperties アクセス許可を拒否します。Organizations から直接新しいアカウントを作成する場合は、このポリシーをお勧めします。
{ "Sid": "DenyRoleManagerEnablement", "Effect": "Deny", "Action": "iam:PutAccountProperties", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "iam:AccountPropertyNamespaces": "RoleManager" } } }
ロールマネージャーの使用へのアクセスをブロックする
ロールマネージャーの使用をブロックするには、テンプレートからロールを作成する IAM アクションに存在する iam:RoleTemplateARN コンテキストキーを使用します。次のポリシーは、iam:RoleTemplateARN コンテキストキーに対して null 以外の値を持つすべての IAM アクションを拒否します。このポリシーは、すべてのロールの作成を禁止するわけではありません。このポリシーは、ロールマネージャーによるロールの作成と SDK によるテンプレートベースのロールの作成のみをブロックします。
{ "Sid": "DenyTemplatedRoleCreation", "Effect": "Deny", "Action": "iam:*", "Resource": "*", "Condition": { "Null": { "iam:RoleTemplateARN": false } } }
ロールマネージャー以外によるロールの作成をブロックする
ロールマネージャーを介してのみロールの作成を許可するには、次のポリシーを使用して、ロールマネージャー以外によるロールの作成をブロックします。このポリシーでは、SDK を介してテンプレートベースのロールを直接作成できます。
{ "Sid": "DenyNonTemplatedRoleCreation", "Effect": "Deny", "Action": [ "iam:GetRole", "iam:GetRoleTemplateVersion", "iam:CreateRole", "iam:AttachRolePolicy", "iam:PutRolePolicy", "iam:PutRolePermissionsBoundary", "iam:TagRole" ], "Resource": "*", "Condition": { "Null": { "iam:RoleTemplateARN": true } } }