

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

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

某些 Amazon EKS 附加元件需要 IAM 角色及許可才能呼叫 AWS API。例如，Amazon VPC CNI 附加元件會呼叫特定的 AWS API 來設定您帳戶中的聯網資源。這些附加元件需要使用 IAM 來授予許可。更具體地說，需要將執行附加元件的 Pod 的服務帳戶，與具有特定 IAM 政策的 IAM 角色建立關聯。

授予叢集工作負載 AWS 許可的推薦方法是使用 Amazon EKS 的 Pod 身分識別功能。您可使用 **Pod 身分識別關聯**，將附加元件的服務帳戶映射到一個 IAM 角色。如果 Pod 使用具有關聯的服務帳戶，則 Amazon EKS 會在 Pod 的容器中設定環境變數。環境變數會將 AWS SDK (包含 AWS CLI) 設定為使用 EKS Pod 身分識別憑證。如需詳細資訊，請參閱[了解 EKS Pod 身分識別如何授予 AWS 服務的 Pod 存取權](pod-identities.md) 

Amazon EKS 附加元件有助於管理與該附加元件相對應的 Pod 身分識別關聯的生命週期。例如，您可在單個 API 呼叫中建立或更新一個 Amazon EKS 附加元件及其必要的 Pod 身分識別關聯。Amazon EKS 還提供了用於擷取建議的 IAM 政策的 API。

1. 確認您的叢集中已設定 [Amazon EKS Pod 身分識別代理程式](pod-id-agent-setup.md)。

1. 使用 `describe-addon-versions` AWS CLI 操作，判斷您要安裝的附加元件是否需要 IAM 許可。如果 `requiresIamPermissions` 標誌為 `true`，則您應使用 `describe-addon-configurations` 操作來確定附加元件所需的許可。回應中會包含建議的受管 IAM 政策清單。

1. 使用 `describe-addon-configuration` CLI 操作擷取 Kubernetes 服務帳戶的名稱和 IAM 政策。根據安全需求評估建議政策的範圍。

1. 使用建議的許可政策及 Pod 身分識別所需的信任政策，建立 IAM 角色。如需詳細資訊，請參閱 [建立 Pod Identity 關聯AWS （主控台）](pod-id-association.md#pod-id-association-create)。

1. 使用 CLI 建立或更新 Amazon EKS 附加元件。至少指定一個 Pod 身分識別關聯。Pod 身分識別關聯包含 Kubernetes 服務帳戶的名稱和 IAM 角色的 ARN。
   + 使用附加元件 API 建立的 Pod 身分識別關聯由相應的附加元件所擁有。如果您刪除該附加元件，Pod 身分識別關聯也會一併被刪除。您可在使用 AWS CLI 或 API 刪除附加元件時使用 `preserve` 選項來防止此級聯刪除。必要時，您也可直接更新或刪除 Pod 身分識別關聯。附加元件無法接管現有 Pod 身分識別關聯的所有權。您必須刪除現有的關聯，並使用附加元件的建立或更新操作重新建立。
   + Amazon EKS 推薦使用 Pod 身分識別關聯來管理附加元件的 IAM 許可。先前的方法，即服務帳戶的 IAM 角色 (IRSA)，仍然受支援。您可以同時為一個附加元件指定 IRSA `serviceAccountRoleArn` 和 Pod 身分識別關聯。如果叢集上安裝了 EKS Pod 身分識別代理程式，則 `serviceAccountRoleArn` 將被忽略，EKS 將使用提供的 Pod 身分識別關聯。如果未啟用 Pod 身分識別，則將使用 `serviceAccountRoleArn`。
   + 如果您更新現有附加元件的 Pod 身分識別關聯，Amazon EKS 會啟動附加元件 Pod 的滾動重啟。