

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 用于跨账户访问的不同 AWS 账户中的角色——可选
<a name="security-iam-resilience-cross-account-roles"></a>

当您的资源位于 secondary/resource 账户中时，您必须在每个账户中创建角色 AWS Resilience Hub 才能成功评估您的应用程序。角色创建过程与调用者角色创建过程类似，但信任策略配置除外。

**注意**  
您必须在资源所在的辅助账户中创建角色。

**主题**
+ [在 IAM 控制台中为 secondary/resource 账户创建角色](#security-iam-resilience-cross-create-roles-infra-account)
+ [使用 IAM API 管理角色](#security-iam-resilience-cross-create-roles-infra-account-api)
+ [使用 JSON 文件定义信任策略](#security-iam-resilience-cross-define-trust-policy-infra-account)

## 在 IAM 控制台中为 secondary/resource 账户创建角色
<a name="security-iam-resilience-cross-create-roles-infra-account"></a>

 AWS Resilience Hub 要允许访问其他 AWS 账户中的 AWS 服务和资源，您必须在每个账户中创建角色。

**使用 IAM 控制台在 IAM 控制台中为 secondary/resource 账户创建角色**

1. 使用 `https://console.aws.amazon.com/iam/` 打开 IAM 控制台。

1. 从导航窗格中选择**角色**，然后选择**创建角色**。

1. 选择**自定义信任策略**，在**自定义信任策略**窗口中复制以下策略，然后选择**下一步**。
**注意**  
如果您的资源位于不同的账户中，则您必须在每个账户中创建一个角色，并对其他账户使用辅助账户信任策略。

1. 在**添加权限**页面的**权限策略**部分，在**按属性或策略名称筛选策略然后按 Enter** 框中输入 `AWSResilienceHubAsssessmentExecutionPolicy`。

1. 选择策略，然后选择**下一步**。

1. 在**角色详细信息**部分，在**角色名称**框中输入唯一的角色名称（例如 `AWSResilienceHubAssessmentRole`）。

1. （可选）在**描述**框中，为存储库输入描述。

1. 请选择 **创建角色**。

   要编辑角色的使用案例和权限，在 **步骤 1：选择可信实体** 或 **步骤 2：添加权限** 部分中选择 **编辑**。

此外，您还需要向调用者角色添加 `sts:assumeRole` 权限，使其能够担任您的辅助账户中的角色。

将以下策略添加到您创建的每个辅助角色的调用者角色中：

```
{
    "Effect": "Allow",
    "Resource": [
      "arn:aws:iam::secondary_account_id_1:role/RoleInSecondaryAccount_1",
      "arn:aws:iam::secondary_account_id_2:role/RoleInSecondaryAccount_2",
      ...
      ],
      "Action": [
        "sts:AssumeRole"
      ]
}
```

### 使用 IAM API 管理角色
<a name="security-iam-resilience-cross-create-roles-infra-account-api"></a>

角色的信任策略会向指定主体授予代入该角色的权限。要使用 AWS Command Line Interface (AWS CLI) 创建角色，请使用`create-role`命令。在使用此命令时，您可以指定内联信任策略。以下示例说明如何向 AWS Resilience Hub 服务主体授予代入您的角色的权限。

**注意**  
JSON 字符串中对转义引号（`' '`）的要求可能因 shell 版本而异。

**示例 `create-role`**

```
aws iam create-role --role-name AWSResilienceHubAssessmentRole --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement": [{"Effect": "Allow","Principal": {"AWS": ["arn:aws:iam::primary_account_id:role/InvokerRoleName"]},"Action": "sts:AssumeRole"}]}'
```

您还可以使用单独的 JSON 文件为角色定义信任策略。在下面的示例中，`trust-policy.json` 是位于当前目录中的一个文件。

### 使用 JSON 文件定义信任策略
<a name="security-iam-resilience-cross-define-trust-policy-infra-account"></a>

您还可以使用单独的 JSON 文件为角色定义信任策略，然后运行 `create-role` 命令。在下面的示例中，**`trust-policy.json`** 是位于当前目录中的一个文件。通过运行 **`create-role`** 命令将此策略附加到角色。`create-role` 命令的输出显示在**示例输出**中。要为角色添加权限，请使用**attach-policy-to-role**命令，您可以先添加`AWSResilienceHubAsssessmentExecutionPolicy`托管策略。有关托管策略的更多信息，请参阅[AWSResilienceHubAsssessmentExecutionPolicy](security-iam-awsmanpol.md#security_iam_aws-assessment-policy)。

**示例 `trust-policy.json`**

**示例 `create-role`**

```
aws iam create-role --role-name AWSResilienceHubAssessmentRole --assume-role-policy-document file://trust-policy.json
```

**示例输出**

**示例 `attach-policy-to-role`**

`aws iam attach-role-policy --role-name AWSResilienceHubAssessmentRole --policy-arn arn:aws:iam::aws:policy/AWSResilienceHubAsssessmentExecutionPolicy`.