

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

# 所需的角色
<a name="aft-required-roles"></a>

一般而言，角色和策略是 AWS中身份和访问管理（IAM）的一部分。有关更多信息，请参阅[《AWS IAM 用户指南》](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)**。

AFT 在 AFT 管理账户和 AWS Control Tower 管理账户中创建了多个 IAM 角色和策略，以支持 AFT 管道的运维。这些角色是根据最低权限访问模型创建的，此模型将权限限制为每个角色和策略所需的最低限度的操作和资源集。为这些角色和策略分配了一`key:value`对 AWS 标签，以` managed_by:AFT`供识别。

除了这些 IAM 角色外，AFT 还创建了三个基本角色：
+ `AWSAFTAdmin` 角色
+ `AWSAFTExecution` 角色
+ `AWSAFTService` 角色

这些步骤将在以下各节详细介绍。

** AWSAFTAdmin 角色解释**

部署 AFT 时，将在 AFT 管理账户中创建 `AWSAFTAdmin` 角色。此角色支持 AFT 管道在 AWS Control Tower 和 AFT 预置账户中充当 `AWSAFTExecution` 角色，从而执行与账户预置和自定义相关的操作。

以下是附加到 `AWSAFTAdmin` 角色的内联策略（JSON 构件）：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": [
                "arn:aws:iam::*:role/AWSAFTExecution",
                "arn:aws:iam::*:role/AWSAFTService"
            ]
        }
    ]
}
```

------

以下 JSON 构件显示 `AWSAFTAdmin` 角色的信任关系。占位符号 `012345678901` 被 AFT 管理账户 ID 编号所取代。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

** AWSAFTExecution 角色解释**

当您部署 AFT 时，将在 AFT 管理账户和 AWS Control Tower 管理账户中创建 `AWSAFTExecution` 角色。稍后，AFT 管道于 AFT 账户预置期间在每个 AFT 预置账户中创建 `AWSAFTExecution` 角色。

 AFT 最初使用 `AWSControlTowerExecution` 角色在指定账户中创建 `AWSAFTExecution` 角色。`AWSAFTExecution` 角色支持 AFT 管道运行在 AFT 框架的预置和预置自定义阶段执行的步骤，适用于已置备的 AFT 账户和共享账户。

**不同的角色可以帮助您限制范围**  
作为最佳实践，在资源初始部署阶段，将自定义权限与准许的权限分离开来。请记住，`AWSAFTService` 角色用于账户预置，而 `AWSAFTExecution` 角色用于账户自定义。这种分离限制了管道每个阶段准许的权限范围。如果您要自定义 AWS Control Tower 共享账户，这种区别就显得尤为重要，因为共享账户可能包含敏感信息，例如账单详细信息或用户信息。

`AWSAFTExecution`角色权限：**AdministratorAccess**— AWS 托管策略 

以下 JSON 构件显示附加到 `AWSAFTExecution` 角色的 IAM 策略（信任关系）。占位符号 `012345678901` 被 AFT 管理账户 ID 编号所取代。

`AWSAFTExecution` 的信任策略

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/AWSAFTAdmin"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

** AWSAFTService 角色解释**

`AWSAFTService` 角色在所有已注册和托管账户（包括共享账户和管理账户）中部署 AFT 资源。以前的资源只能由 `AWSAFTExecution` 角色部署。

`AWSAFTService` 角色适用于服务基础架构在预置阶段部署资源，而 `AWSAFTExecution` 角色仅用于部署自定义功能。通过以这种方式担任角色，您可以在每个阶段保持更精细的访问控制。

`AWSAFTService`角色权限：**AdministratorAccess**— AWS 托管策略 

以下 JSON 构件显示附加到 `AWSAFTService` 角色的 IAM 策略（信任关系）。占位符号 `012345678901` 被 AFT 管理账户 ID 编号所取代。

`AWSAFTService` 的信任策略

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/AWSAFTAdmin"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------