

 **帮助改进此页面** 

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

# Amazon EKS 附加组件的 IAM 角色
<a name="add-ons-iam"></a>

某些 Amazon EKS 附加组件需要 IAM 角色和权限才能调用 Amazon API。例如，Amazon VPC CNI 附加组件会调用某些 Amazon API 来配置您账户中的网络资源。需要使用 IAM 对这些附加组件授予权限。更具体地说，运行附加组件的容器组（Pod）的服务账户需要关联到具有具体 IAM 策略的 IAM 角色。

向集群工作负载授予 Amazon 权限的建议方法是使用 Amazon EKS 功能容器组身份。您可以使用**容器组身份关联**将附加组件的服务账户映射到 IAM 角色。如果某个容器组使用具有关联的服务账户，Amazon EKS 会在容器组的容器中设置环境变量。环境变量配置 Amazon SDK（包括 Amazon CLI）使用 EKS 容器组身份凭证。有关更多信息，请参阅 [了解 EKS 容器组身份如何向容器组（pod）授予对 Amazon 服务的访问权限](pod-identities.md) 

Amazon EKS 附加组件可以帮助管理与该附加组件对应的容器组身份关联的生命周期。例如，您可以在单个 API 调用中创建或更新 Amazon EKS 附加组件和必要的容器组身份关联。Amazon EKS 还提供用于检索建议 IAM 策略的 API。

1. 确认已在您的集群上设置 [Amazon EKS 容器组身份代理](pod-id-agent-setup.md)。

1. 使用 `describe-addon-versions` Amazon CLI 操作确定要安装的附加组件是否需要 IAM 权限。如果 `requiresIamPermissions` 标志是 `true`，则应使用 `describe-addon-configurations` 操作来确定附加组件所需的权限。响应中将包含建议的托管 IAM 策略列表。

1. 使用 CLI `describe-addon-configuration` 操作检索 Kubernetes 服务账户的名称和 IAM 策略。根据您的安全要求评估建议策略的范围。

1. 使用建议的权限策略和容器组身份所需的信任策略创建 IAM 角色。有关更多信息，请参阅 [创建容器组身份关联（Amazon 控制台）](pod-id-association.md#pod-id-association-create)。

1. 使用该 CLI 创建或更新 Amazon EKS 附加组件。指定至少一个容器组身份关联。容器组身份关联是 Kubernetes 服务账户名称与 IAM 角色 ARN。
   + 使用附加组件 API 创建的容器组身份关联归相应的附加组件所有。如果您删除该附加组件，则容器组身份关联也会被删除。在使用 Amazon CLI 或 API 删除附加组件时，您可以通过使用 `preserve` 选项来防止这种级联删除。如有必要，您也可以直接更新或删除容器组身份关联。附加组件不能代入现有容器组身份关联的所有权。您必须删除现有关联，然后使用附加组件创建或更新操作重新创建该关联。
   + Amazon EKS 建议使用容器组身份关联来管理附加组件的 IAM 权限。仍然支持之前的方法（服务账户的 IAM 角色（IRSA））。您可以为附加组件同时指定 IRSA `serviceAccountRoleArn` 和容器组身份关联。如果在集群上安装了 EKS 容器组身份代理，则 `serviceAccountRoleArn` 将被忽略，并且 EKS 将使用提供的容器组身份关联。如果未启用容器组身份，则将使用 `serviceAccountRoleArn`。
   + 如果您更新现有附加组件的容器组身份关联，Amazon EKS 会启动附加组件容器组（Pod）的滚动重新启动。