View a markdown version of this page

多帳戶設定 (不含 AWS Organizations) - AWS 彈性中樞

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

多帳戶設定 (不含 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。