本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
多帳戶設定 (不含 AWS Organizations)
如果您服務的資源跨越多個 AWS 帳戶,而且您未使用 AWS Organizations,則除了叫用者角色之外,您還需要跨帳戶角色。
步驟 1:建立跨帳戶角色
在包含服務資源的每個帳戶中,建立具有下列項目的角色:
-
ReadOnlyAccess政策已連接。 -
允許調用者角色擔任的信任政策,使用
ExternalId來防止混淆代理人攻擊。每個服務和帳戶組合使用唯一的ExternalId值:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/AWSResilienceHubAssessmentRole" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "ngrh-my-service-111122223333" } } }] }
步驟 2:授予叫用者角色許可,以擔任跨帳戶角色
將內嵌政策新增至您的呼叫者角色,以允許它擔任跨帳戶角色:
{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::111122223333:role/NGRHResourceRole", "arn:aws:iam::444455556666:role/NGRHResourceRole" ] }
步驟 3:在您的服務上設定跨帳戶角色
建立服務時指定跨帳戶角色 ARNs 和外部 IDs:
aws resiliencehubv2 create-service \ --name "my-service" \ --regions '["us-east-1"]' \ --permission-model '{ "invokerRoleName": "AWSResilienceHubAssessmentRole", "crossAccountRoles": [ { "crossAccountRoleArn": "arn:aws:iam::111122223333:role/NGRHResourceRole", "externalId": "ngrh-my-service-111122223333" }, { "crossAccountRoleArn": "arn:aws:iam::444455556666:role/NGRHResourceRole", "externalId": "ngrh-my-service-444455556666" } ] }'
每個服務最多可設定 5 個跨帳戶角色 ARNs。