本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Multi-account 设置(没有 AWS 组织)
如果您的服务资源跨多个 AWS 账户,并且您没有使用 Organizati AWS ons,那么除了调用者角色之外,您还需要跨账户角色。
步骤 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:在服务上配置跨账户角色
在创建服务时指定跨账户角色 ARN 和外部 ID:
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 个跨账户角色 ARN。