View a markdown version of this page

為您的叢集建立 IAM OIDC 身分提供者 - Amazon EKS

協助改進此頁面

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

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

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

為您的叢集建立 IAM OIDC 身分提供者

您的叢集具有與其相關聯的 OpenID Connect (OIDC) 發行者 URL。若要針對服務帳戶使用 AWS Identity and Access Management (IAM) 角色,叢集的 OIDC 發行者 URL 必須存在 IAM OIDC 供應商。

先決條件

您可以使用 eksctl 或 AWS 管理主控台為叢集建立 IAM OIDC 提供商。

建立 OIDC 提供商 (eksctl)

  1. 裝置或 AWS CloudShell 上安裝的eksctl命令列工具版本 0.215.0或更新版本。如需有關安裝或更新 eksctl 的指示,請參閱 eksctl 文件中的安裝一節。

  2. 確定叢集的 OIDC 發行者 ID。

    擷取叢集的 OIDC 發行者 ID 並將其存放在變數中。使用您自己的值取代 <my-cluster>

    cluster_name=<my-cluster> oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5) echo $oidc_id
  3. 判斷您的帳戶中是否已經有擁有叢集發行者 ID 的 IAM OIDC 提供商。

    aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4

    如果有輸出傳回,則表示您已經有叢集 IAM OIDC 提供商,且可以略過下一步驟。如果未傳回任何輸出,則您必須為叢集建立 IAM OIDC 提供商。

  4. 使用下列命令為您的叢集建立 IAM OIDC 身分提供者。

    eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
    注意

    如果您叢集的 VPC 沒有傳出網際網路存取權,而且您尚未設定叢集 OIDC 端點的私有存取權,則從 VPC 內部到達該端點的操作,例如使用 建立 OIDC 供應商eksctl,將無法解析 OIDC 發行者主機名稱。以下是範例錯誤訊息:

    ** server cant find oidc.eks.<region-code>.amazonaws.com: NXDOMAIN

    若要從 VPC 私下到達叢集 OIDC 端點,請在啟用私有 DNS 的情況下為其建立 VPC 介面端點 (com.amazonaws.<region-code>.oidc-eks)。如需詳細資訊,請參閱使用 AWS PrivateLink 存取叢集 OIDC 端點

或者,您可以在 VPC 外部執行 命令 (例如 in AWS CloudShell),或建立分割期限條件式解析程式。如需範例,請參閱 GitHub 上的 Amazon EKS 功能請求

建立 OIDC 供應商AWS (主控台)

  1. 開啟 Amazon EKS 主控台

  2. 在左側窗格中,選取 Clusters (叢集),然後在 Clusters (叢集) 頁面上選取您的叢集名稱。

  3. Overview (概觀) 標籤的 Details (詳細資訊) 區段中,記下 OpenID Connect provider URL (OpenID Connect 供應商 URL) 的值。

  4. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  5. 在左側導覽窗格中,選擇 Access management (存取管理) 下的 Identity Providers (身分提供者)。如果列出的提供商與您叢集的 URL 相符,則表示您已經擁有叢集提供商。如果沒有列出符合叢集 URL 的提供商,則您必須建立一個。

  6. 若要建立供應商,請選擇 Add provider (新增供應商)。

  7. 對於提供商類型,選取 OpenID Connect

  8. 對於 Provider URL (提供商 URL),輸入叢集的 OIDC 提供商 URL。

  9. 對於 Audience (對象),輸入 sts.amazonaws.com

  10. (選用) 新增任何標籤,例如可識別適用於此提供商的叢集的標籤。

  11. 選擇 Add provider (新增提供者)。

後續步驟:將 IAM 角色指派給 Kubernetes 服務帳戶