Amazon EKS 附加元件的 IAM 角色 - Amazon EKS

協助改進此頁面

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

Amazon EKS 附加元件的 IAM 角色

某些 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 存取權

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

  1. 確認您的叢集中已設定 Amazon EKS Pod 身分識別代理程式

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

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

  4. 使用建議的許可政策及 Pod 身分識別所需的信任政策,建立 IAM 角色。如需詳細資訊,請參閱 建立 Pod 身分識別關聯 (AWS 主控台)

  5. 使用 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 的滾動重啟。