

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

# 连接多个 AWS 账户
<a name="configuring-integrations-and-knowledge-connecting-multiple-aws-accounts"></a>

辅助 AWS 账户允许 AWS DevOps 代理调查组织中多个 AWS 账户的资源。当您的应用程序跨越多个账户时，添加辅助账户可确保代理在事件调查期间能够查看所有相关资源。对构成应用程序的帐户和资源的更大访问权限可确保更高的调查准确性。

## 先决条件
<a name="prerequisites"></a>

在添加辅助 AWS 账户之前，请确保您有：
+ 使用主账户访问 AWS DevOps 代理控制台
+ 辅助 AWS 账户的管理权限
+ 在辅助账户中创建角色的 IAM 权限
+ 在主账户中传递 IAM 角色 (`iam:PassRole`) 的权限。请参阅您的主账户中的[所需权限](#required-permissions-in-your-primary-account)。

## 您的主账户所需的权限
<a name="required-permissions-in-your-primary-account"></a>

当您连接或更新辅助 AWS 账户时， AWS DevOps 代理会检查调用委托人是否可以传递 IAM 角色。委托人是在主账户中提出请求的 IAM 用户或角色。如果委托人没有`iam:PassRole`，则请求将失败，并显示名`iam:PassRole`为 HTTP 403 `AccessDeniedException`。即使委托人已经拥有对 AWS DevOps 代理的完全访问权限（例如`aidevops:*`），也会发生这种情况。在`iam:PassRole`添加辅助账户之前，先在主账户中添加您的身份政策。

以下策略授予检查所需的最小权限集：

```
{
  "Version": "2012-10-17",		 	 	 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::<primary-account-id>:role/*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "aidevops.amazonaws.com"
        }
      }
    }
  ]
}
```

记住以下内容：
+ 范围限定`Resource`为你自己账户的角色通配符：`arn:aws:iam::<primary-account-id>:role/*`（或`*`）。请勿使用特定角色 ARN。该检查使用通配符资源，而适用于单个 ARN 的策略无法满足该资源。
+ 使用设置为的`iam:PassedToService`条件`aidevops.amazonaws.com`进行最低权限访问。对角色通配符进行无条件的`iam:PassRole`授予也符合检查。如果您已经`iam:PassRole`将范围扩大到特定服务，`aidevops.amazonaws.com`请添加到现有条件中。
+ 请记住，当您添加辅助账户以及每次更新一个二级账户时，支票就会生效。已经连接的辅助账户可以继续使用，直到您下次更新它们为止。

## 添加辅助 AWS 账户
<a name="adding-a-secondary-aws-account"></a>

除了以下步骤外，您还可以使用[AWS DevOps 代理 CLI 入门指南](getting-started-with-aws-devops-agent-cli-onboarding-guide.md)以编程方式添加辅助账户。

### 第 1 步：启动辅助账户配置
<a name="step-1-start-the-secondary-account-configuration"></a>

1. 登录 AWS 管理控制台并导航到 AWS DevOps 代理控制台

1. 选择您的代理空间

1. 转到 ** “**能力” 选项卡

1. 在 “**云端**” 部分中，找到 “**次要来源” ** 小节

1. 选择**添加**

### 步骤 2：指定角色名称
<a name="step-2-specify-the-role-name"></a>

1. 在 “为角色**命名” ** 字段中，输入您将在辅助账户中创建的角色的名称

1. 记下这个名字——在辅助账户中创建角色时，你将再次使用它

1. 复制控制台中提供的信任策略并将其保存在暂存空间中

### 第 3 步：在辅助账户中创建角色
<a name="step-3-create-the-role-in-the-secondary-account"></a>

1. 打开新的浏览器选项卡并在辅助 AWS 账户中登录 IAM 控制台

1. 导航到 ** IAM > ** ** 角色 ** > ** 创建角色 **

1. 选择**自定义信任策略 **

1. 粘贴您在步骤 2 中复制的信任政策

1. 选择**下一步**。

### 步骤 4：附上 AWS 托管策略
<a name="step-4-attach-the-aws-managed-policy"></a>

1. 在 “权**限策略**” 部分中，搜索 ** AIDevOpsAgentAccessPolicy **

1. 选中**AIDevOpsAgentAccessPolicy**托管策略旁边的复选框

1. 选择**下一步**。

### 第 5 步：命名并创建角色
<a name="step-5-name-and-create-the-role"></a>

1. 在 “**角色名称” ** 字段中，输入您在步骤 2 中提供的相同角色名称

1. （可选）添加描述以帮助确定角色的用途

1. 查看信任政策及附加权限

1. 选择 **Create role**

### 第 6 步：附加内联策略
<a name="step-6-attach-the-inline-policy"></a>

1. 在 IAM 控制台中，找到并选择您刚刚创建的角色

1. 转到 ** “**权限” 选项卡

1. 依次选择**添加权限**和**创建内联策略**

1. 切换到 ** JSON ** 选项卡

1. 粘贴您在步骤 2 中保存的政策

1. 将策略粘贴到 IAM 控制台的 JSON 编辑器中

1. 选择**下一步**。

1. 为内联策略提供一个名称（例如，DevOpsAgentInlinePolicy“”）

1. 选择**创建策略**

### 第 7 步：完成配置
<a name="step-7-complete-the-configuration"></a>

1. 使用主账户返回 AWS DevOps 代理控制台

1. 选择 “**下一步**” 完成辅助账户配置

1. 验证连接状态显示为 “**活动” **

## 了解所需的政策
<a name="understanding-the-required-policies"></a>

AWS DevOps 代理需要三个策略组件才能访问辅助账户中的资源：
+ **信任策略 **-允许 AWS DevOps 代理服务委托人 (`aidevops.amazonaws.com`) 直接代入辅助账户中的角色。该政策使用了混乱的副手预防措施。这种安全控制可防止未经授权的服务使用您的角色访问您的资源。这些条件仅允许您的主账户中的代理空间启动访问。
+ **AIDevOpsAgentAccessPolicy （AWS 托管策略）**-提供 AWS DevOps 代理调查辅助账户中的资源所需的核心只读权限。此政策由新功能的添加进行维护 AWS 和更新。
+ **内联策略 **-提供特定于代理空间配置的额外权限。此策略根据您的代理空间设置生成，可能包括特定集成或功能的权限。

 AWS DevOps 代理服务直接通过其服务主体在辅助账户中扮演角色。信任策略条件确保只有主账户中的代理空间才能启动这种跨账户访问。

## 管理辅助账户
<a name="managing-secondary-accounts"></a>
+ **查看已连接的帐户 **-在 ** “**功能” 选项卡中，“**辅助来源**” 子部分列出了所有已连接的辅助帐户及其连接状态。
+ **更新 IAM 角色 ** — 如果您需要修改权限，请更新附加到辅助账户中角色的内联策略。更改将立即生效。
+ **移除辅助账户 **-要断开辅助账户，请在**辅助来源**列表中选择该账户，然后选择**移除**。这不会删除辅助账户中的 IAM 角色。