為您的叢集建立IAMOIDC提供者 - Amazon EKS

協助改善此頁面

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

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

為您的叢集建立IAMOIDC提供者

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

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

  • 您裝置上安裝和設定的 AWS Command Line Interface (AWS CLI) 的版本1.27.160或更新版本、版本或更新版本或更新版本或更新版本 AWS CloudShell。2.12.3若要檢查您目前的版本,請使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。如 yumapt-get 或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI落後數個版本之多。若要安裝最新版本,請參閱《AWS Command Line Interface 使用者指南》中的安裝、更新和解除安裝 AWS CLI以及使用 aws configure 的快速組態。安裝在中的 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檔案 Connect 線kubectl到EKS叢集

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

eksctl
先決條件

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

若要建立叢集的IAMOIDC身分識別提供者 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. 判斷擁有叢集發行IAMOIDC者 ID 的提供者是否已在您的帳戶中。

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

    如果傳回輸出,表示您已有叢集的IAMOIDC提供者,而且您可以略過下一個步驟。如果沒有傳回任何輸出,則必須為叢集建立IAMOIDC提供者。

  3. 使用下列命令為叢集建立IAMOIDC身分識別提供者。

    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

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

AWS Management Console
若IAMOIDC要使用 AWS Management Console
  1. https://console.aws.amazon.com/eks/家裡 #/集群打開 Amazon EKS 控制台。

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

  3. 在 [概觀] 索引標籤上的 [詳細資料] 區段中,記下 OpenID Connect 提供者的值URL。

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

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

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

  7. 對於 Provider type (供應商類型),選取 OpenID Connect

  8. 在 [提供者] 中URL,輸入叢集URL的OIDC提供者,然後選擇 [取得指紋]。

  9. 對於 Audience (對象),輸入 sts.amazonaws.com,然後選擇 Add provider (新增提供商)。

下一步驟

指派IAM角色給Kubernetes服務帳戶