建立 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 命令列界面 (AWS CLI) 版本 2.12.3或更新版本 AWS CloudShell。若要檢查您目前的版本,請使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。套件管理員apt-get,例如 yum、 或 Homebrew for macOS 通常是最新版本 後面的幾個版本 AWS CLI。若要安裝最新版本,請參閱《 AWS 命令列界面使用者指南》中的安裝快速組態搭配 aws 設定。安裝在 AWS CLI中的版本 AWS CloudShell 也可能是最新版本後面的幾個版本。若要更新它,請參閱 AWS CloudShell 《 使用者指南》中的安裝 AWS CLI 到您的主目錄

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

  • 包含叢集組態的現有 kubectl config 檔案。若要建立 kubectl config 檔案,請參閱建立 kubeconfig 檔案kubectl以連線至 EKS 叢集

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

建立OIDC提供者 (eksctl)

  1. 已在裝置或 AWS CloudShell 上安裝版本 0.199.0 或更新版本的 eksctl 命令列工具。如需有關安裝或更新 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
  1. 判斷 IAM OIDC 具有叢集發行者 ID 的提供者已存在於您的帳戶。

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

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

  2. 建立 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 cant find oidc.eks.region.amazonaws.com: NXDOMAIN

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

建立OIDC提供者AWS (主控台)

  1. 開啟 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服務帳戶