

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 使用容器组身份将 IAM 角色分配给 Amazon EKS 附加组件
<a name="update-addon-role"></a>

某些 Amazon EKS 附加组件需要 IAM 角色和权限。在添加或更新 Amazon EKS 附加组件以使用容器组身份关联之前，请验证要使用的角色和策略。有关更多信息，请参阅 [检索 Amazon EKS 附加组件的 IAM 信息](retreive-iam-info.md)。

1. 确定：
   +  `cluster-name` – 要在其上安装附加组件的集群名称。
   +  `addon-name` – 要安装的附加组件名称。
   +  `service-account-name` – 该附加组件使用的 Kubernetes 服务账户的名称。
   +  `iam-role-arn` – 对附加组件拥有足够权限的 IAM 角色的 ARN。该角色必须具有 EKS 容器组身份所需的信任策略。有关更多信息，请参阅[创建容器组身份关联（AWS 控制台）](pod-id-association.md#pod-id-association-create)。

1. 使用 AWS CLI 更新附加组件。您还可以在创建附加组件时使用相同的 `--pod-identity-assocations` 语法指定容器组身份关联。请注意，如果您在更新附加组件时指定容器组身份关联，则所有之前的容器组身份关联都将被覆盖。

   ```
   aws eks update-addon --cluster-name <cluster-name> \
   --addon-name <addon-name> \
   --pod-identity-associations 'serviceAccount=<service-account-name>,roleArn=<role-arn>'
   ```

   例如：

   ```
   aws eks update-addon --cluster-name mycluster \
   --addon-name aws-ebs-csi-driver \
   --pod-identity-associations 'serviceAccount=ebs-csi-controller-sa,roleArn=arn:aws:iam::123456789012:role/StorageDriver'
   ```

1. 验证是否已创建容器组身份关联：

   ```
   aws eks list-pod-identity-associations --cluster-name <cluster-name>
   ```

   如果成功，您应看到与以下内容类似的输出。记下 EKS 附加组件的 OwnerARN。

   ```
   {
       "associations": [
           {
               "clusterName": "mycluster",
               "namespace": "kube-system",
               "serviceAccount": "ebs-csi-controller-sa",
               "associationArn": "arn:aws:eks:us-west-2:123456789012:podidentityassociation/mycluster/a-4wvljrezsukshq1bv",
               "associationId": "a-4wvljrezsukshq1bv",
               "ownerArn": "arn:aws:eks:us-west-2:123456789012:addon/mycluster/aws-ebs-csi-driver/9cc7ce8c-2e15-b0a7-f311-426691cd8546"
           }
       ]
   }
   ```