

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

# Amazon ECS 基礎結構 IAM 角色
<a name="infrastructure_IAM_role"></a>

Amazon ECS 基礎結構 IAM 角色允許 Amazon ECS 代表您管理叢集中的基礎結構資源，並在以下情況使用：
+ 您想將 Amazon EBS 磁碟區連接至 Fargate 或 EC2 啟動類型 Amazon ECS 任務。基礎結構角色允許 Amazon ECS 管理您任務的 Amazon EBS 磁碟區。

  您可以使用 `AmazonECSInfrastructureRolePolicyForVolumes` 受管政策。
+ 您想使用 Transport Layer Security (TLS) 來加密 Amazon ECS Service Connect 服務之間的流量。

  您可以使用 `AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity` 受管政策。
+ 您想要建立 Amazon VPC Lattice 目標群組。

  您可以使用 `AmazonECSInfrastructureRolePolicyForVpcLattice` 受管政策。
+ 您想要在 Amazon ECS 叢集中使用 Amazon ECS 受管執行個體。基礎結構角色允許 Amazon ECS 管理受管執行個體的生命週期。

  您可以使用 `AmazonECSInfrastructureRolePolicyForManagedInstances` 受管政策。
+ 您想要使用快速模式。基礎設施角色允許 Amazon ECS 佈建和管理快速模式服務所需的基礎設施元件，包括負載平衡、安全群組、SSL 憑證和自動擴展組態。

  您可以使用 `AmazonECSInfrastructureRoleforExpressGatewayServices` 受管政策。

 當 Amazon ECS 擔任此角色代表您採取動作時，事件會顯示在 AWS CloudTrail中。如果 Amazon ECS 使用角色來管理連接至任務的 Amazon EBS 磁碟區，CloudTrail 日誌 `roleSessionName` 將為 `ECSTaskVolumesForEBS`。如果角色用於加密 Service Connect 服務之間的流量，CloudTrail 日誌 `roleSessionName` 將為 `ECSServiceConnectForTLS`。如果角色用於建立 VPC Lattice 的目標群組，CloudTrail 日誌 `roleSessionName` 將為 `ECSNetworkingWithVPCLattice`。如果角色用於管理 Amazon ECS 受管執行個體，CloudTrail 日誌 `roleSessionName` 將為 `ECSManagedInstancesForCompute`。您可以使用此名稱，透過篩選**使用者名稱**，在 CloudTrail 主控台中搜尋事件。

Amazon ECS 提供受管政策，其中包含磁碟區連接、TLS、VPC Lattice 與受管執行個體所需的許可。如需詳細資訊，請參閱《 *AWS 受管政策參考指南*》中的 [AmazonECSInfrastructureRolePolicyForVolumes](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRolePolicyForVolumes.html)、[AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity.html)、[AmazonECSInfrastructureRolePolicyForVpcLattice](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRolePolicyForVpcLattice.html)、[AmazonECSInfrastructureRolePolicyForManagedInstances](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRolePolicyForManagedInstances.html) 和 [AmazonECSInfrastructureRoleforExpressGatewayServices](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRoleforExpressGatewayServices.html)。

## 建立 Amazon ECS 基礎結構角色
<a name="create-infrastructure-role"></a>

將所有 *user input* 取代為自己的資訊。

1. 建立名為 `ecs-infrastructure-trust-policy.json` 的檔案，其中包含用於 IAM 角色的信任政策。檔案應包含以下內容：

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	  
     "Statement": [ 
       {
         "Sid": "AllowAccessToECSForInfrastructureManagement", 
         "Effect": "Allow", 
         "Principal": {
           "Service": "ecs.amazonaws.com" 
         }, 
         "Action": "sts:AssumeRole" 
       } 
     ] 
   }
   ```

------

1. 使用以下 AWS CLI 命令，`ecsInfrastructureRole`使用您在上一個步驟中建立的信任政策來建立名為 的角色。

   ```
   aws iam create-role \
         --role-name ecsInfrastructureRole \
         --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
   ```

1. 根據您的使用案例，將 受管政策連接至`ecsInfrastructureRole`角色。
   + 若要將 Amazon EBS 磁碟區連接至 Fargate 或 EC2 啟動類型 Amazon ECS 任務，請連接 `AmazonECSInfrastructureRolePolicyForVolumes`受管政策。
   + 若要使用 Transport Layer Security (TLS) 加密 Amazon ECS Service Connect 服務之間的流量，請連接 `AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity`受管政策。
   + 若要建立 Amazon VPC Lattice 目標群組，請連接 `AmazonECSInfrastructureRolePolicyForVpcLattice`受管政策。
   + 您想要在 Amazon ECS 叢集中使用 Amazon ECS 受管執行個體，請連接 `AmazonECSInfrastructureRolePolicyForManagedInstances`受管政策。

   ```
   aws iam attach-role-policy \
         --role-name ecsInfrastructureRole \
         --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForVolumes
   ```

   ```
   aws iam attach-role-policy \
         --role-name ecsInfrastructureRole \
         --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
   ```

   ```
   aws iam attach-role-policy \
         --role-name ecsInfrastructureRole \
         --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForManagedInstances
   ```

您也可以透過 IAM 主控台的**自訂信任政策**工作流程來建立角色。如需詳細資訊，請參閱 *IAM User Guide* 中的 [Creating a role using custom trust policies (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)。

**重要**  
如果 Amazon ECS 正在使用基礎結構角色來管理連接至任務的 Amazon EBS 磁碟區，請在停止使用 Amazon EBS 磁碟區的任務之前確保下列事項。  
角色未被刪除。
角色的信任政策未被修改，不會移除 Amazon ECS 存取權 (`ecs.amazonaws.com`)。
未移除受管政策 `AmazonECSInfrastructureRolePolicyForVolumes`。如果必須修改角色的許可，至少保留 `ec2:DetachVolume`、`ec2:DeleteVolume`、`ec2:DescribeVolumes` 用於刪除磁碟區。
在停止具有已連接 Amazon EBS 磁碟區的任務之前刪除或修改角色，將導致任務卡在 `DEPROVISIONING` 中，且相關聯的 Amazon EBS 磁碟區無法刪除。Amazon ECS 將定期自動重試停止任務與刪除磁碟區的操作，直至還原必要的許可為止。您可透過 [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) API，檢視任務的磁碟區連接狀態及對應的狀態原因。

建立檔案之後，您必須授予使用者將角色傳遞至 Amazon ECS 的許可。

## 將基礎結構角色傳遞至 Amazon ECS 的許可
<a name="pass_infrastructure_role_to_service"></a>

若要使用 ECS 基礎結構 IAM 角色，您必須授予使用者將角色傳遞至 Amazon ECS 的許可。將下列 `iam:PassRole` 許可連接至使用者。將 *ecsInfrastructureRole* 取代為您建立的基礎結構角色名稱。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    
        {
            "Action": "iam:PassRole",
            "Effect": "Allow",
            "Resource": ["arn:aws:iam::*:role/ecsInfrastructureRole"],
            "Condition": {
                "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"}
            }
        }
    ]
}
```

------

如需有關 `iam:Passrole` 和更新使用者許可的詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[授予使用者將角色傳遞至 AWS 服務的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)和[變更 IAM 使用者的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)。