建立 IAM OIDC 叢集的提供者 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。

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

建立 IAM OIDC 叢集的提供者

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

必要條件
  • 現有的 Amazon EKS叢集。若要部署叢集,請參閱 開始使用 Amazon EKS

  • 在您的裝置或 上安裝和設定的 1.27.160 AWS Command Line Interface (AWS CLI) 版本 2.12.3或更新版本 AWS CloudShell。若要檢查您目前的版本,請使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。套件管理員yum,例如 apt-get、 或 Homebrew for macOS 通常是最新版本 後面的幾個版本 AWS CLI。若要安裝最新版本,請參閱使用 安裝、更新和解除安裝 AWS CLI快速組態 aws configure (在 AWS Command Line Interface 使用者指南中) 安裝在 中的 AWS CLI 版本 AWS CloudShell 也可能是最新版本後面的幾個版本。若要更新它,請參閱 AWS CloudShell 使用者指南 中的安裝 AWS CLI 到您的主目錄

  • 已在裝置或 AWS CloudShell上安裝 kubectl 命令列工具。版本可與 相同,或最多可以比 更早或更晚的一個次要版本 Kubernetes 叢集的版本。例如,如果您的叢集版本為 1.30,則可以搭配使用 kubectl 1.291.301.31 版。若要安裝或升級 kubectl,請參閱 設定 kubectl 和 eksctl

  • 包含叢集組態的現有 kubectl config 檔案。若要建立 kubectl config 檔案,請參閱連接 kubectl EKS 透過建立 kubeconfig file

您可以建立 IAM OIDC 使用 eksctl或 的叢集提供者 AWS Management Console。

eksctl
先決條件

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

若要建立 IAM OIDC 您叢集的身分提供者 eksctl
  1. 判斷 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
  2. 判斷 IAM OIDC 具有叢集發行者 ID 的提供者已存在於您的帳戶中。

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

    如果傳回輸出,則表示您已有一個 IAM OIDC 叢集的提供者,您可以略過下一個步驟。如果未傳回輸出,則必須建立 IAM OIDC 叢集的提供者。

  3. 建立 IAM OIDC 叢集的身分提供者,請使用下列命令。

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

    如果您啟用EKSVPC端點,則無法從該 內部存取EKSOIDC服務端點VPC。因此,您的操作,例如在 eksctl中使用 建立OIDC提供者VPC,將無法使用,並在嘗試請求 時導致逾時https://oidc.eks.region.amazonaws.com。以下是範例錯誤訊息:

    ** server can't find oidc.eks.region.amazonaws.com: NXDOMAIN

    若要完成此步驟,您可以在 之外執行 命令VPC,例如在 AWS CloudShell 中或連接至網際網路的電腦上執行 命令。或者,您可以在 中建立分割期限條件式解析器VPC,例如 Route 53 Resolver,以使用不同的解析器作為OIDC發行者,URL而不是VPCDNS使用 作為它。如需 中的條件式轉送範例 CoreDNS,請參閱 上的 Amazon EKS功能請求 GitHub.

AWS Management Console
若要建立 IAM OIDC 您叢集的身分提供者與 AWS Management Console
  1. 開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS主控台。

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

  3. 概觀索引標籤的詳細資訊區段中,記下 OpenID Connect 供應商 URL的值。

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

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

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

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

  8. 對於提供者 URL,輸入 OIDC 叢集URL的 提供者。

  9. 針對對象 ,輸入 sts.amazonaws.com

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

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

下一步驟

指派 IAM 角色至 Kubernetes 服務帳戶