View a markdown version of this page

管理角色管理員的存取權 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理角色管理員的存取權

您可以在兩個層級控制對角色管理員的存取。IAM 許可會決定帳戶中的哪些人員可以啟用角色管理員,以及誰可以使用其提供的角色。在組織中,服務控制政策 SCPs) 會決定成員帳戶可以執行的動作。

角色管理員的許可

若要啟用或停用角色管理員,您需要 iam:PutAccountProperties許可。 AWS 受管政策IAMFullAccess包含它。

若要使用角色管理員,使用者需要角色管理員代表他們執行之動作的 IAM 許可。角色管理員透過 AcquireRole API 提供角色,該 API 會根據使用者的許可評估每個基礎 IAM 動作:

  • 如果符合範本的角色已存在於帳戶中, 會AcquireRole傳回該角色。此動作需要 iam:GetRole 許可。

  • 如果不存在相符的角色, 會從範本AcquireRole建立一個。這需要 iam:CreateRole許可,加上範本定義內容的許可:iam:PutRolePolicy如果範本新增內嵌政策,以及iam:AttachRolePolicy如果範本連接受管政策。

具有完整 IAM 存取權的使用者擁有角色管理員所需的所有許可。若要查看特定範本所需的確切動作,請使用 擷取範本GetRoleTemplateVersion並檢閱其政策。

當角色管理員建立角色時, AWS CloudTrail 會將建立記錄為單一AcquireRole事件。事件會顯示呼叫 操作的人員、使用的角色範本和參數值,以及建立的角色。

下列範例顯示該角色管理員代表擔任角色 的使用者呼叫 AcquireRole操作Admin,使用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或其他政策,以允許連接到組織實體的動作。您仍然需要使用身分型政策將許可授予委託人。

若要防止成員帳戶透過主控台或 API 啟用角色管理員,請拒絕 iam:PutAccountProperties許可。當您直接透過 Organizations 建立新帳戶時,我們建議您使用此政策。

{ "Sid": "DenyRoleManagerEnablement", "Effect": "Deny", "Action": "iam:PutAccountProperties", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "iam:AccountPropertyNamespaces": "RoleManager" } } }

封鎖使用角色管理員的存取權

若要封鎖角色管理員的使用,請使用iam:RoleTemplateARN內容索引鍵,該索引鍵存在於從範本建立角色的 IAM 動作上。下列政策會拒絕iam:RoleTemplateARN內容索引鍵具有非空值的所有 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 } } }