協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
為您的叢集建立 IAM OIDC 身分提供者
您的叢集具有與其相關聯的 OpenID Connect
-
現有 Amazon EKS 叢集。若要部署叢集,請參閱 開始使用 Amazon EKS。
-
已在裝置或 AWS CloudShell 上安裝和設定 AWS 命令列介面 (AWS CLI) 版本
2.12.3或更新版本,或是版本1.27.160或更新版本。若要檢查您目前的版本,請使用aws --version | cut -d / -f2 | cut -d ' ' -f1。如yum、apt-get或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI 落後數個版本之多。若要安裝最新版本,請參閱《AWS 命令列介面使用者指南》中的安裝與使用 aws configure 的快速組態。AWS CloudShell 中安裝的 AWS CLI 版本也可能比最新版本落後數個版本。若要更新,請參閱《AWS CloudShell 使用者指南》中的安裝 AWS CLI 至您的主目錄。 -
已在裝置或 AWS CloudShell 上安裝
kubectl命令列工具。版本可以與您的叢集 Kubernetes 版本相同,或是為最多比該版本更舊一版或更新一版的次要版本。例如,如果您的叢集版本為1.29,則可以搭配使用kubectl1.28、1.29或1.30版。若要安裝或升級kubectl,請參閱 設定 kubectl 和 eksctl。 -
包含叢集組態的現有
kubectlconfig檔案。若要建立kubectlconfig檔案,請參閱透過建立 kubeconfig 檔案將 kubectl 連線至 EKS 叢集。
您可以使用 eksctl 或 AWS 管理主控台 為叢集建立 IAM OIDC 提供商。
建立 OIDC 提供商 (eksctl)
-
已在裝置或 AWS CloudShell 上安裝版本
0.214.0或更新版本的eksctl命令列工具。如需有關安裝或更新eksctl的指示,請參閱eksctl文件中的安裝一節。 -
確定叢集的 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 -
判斷您的帳戶中是否已經有擁有叢集發行者 ID 的 IAM OIDC 提供商。
aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4如果有輸出傳回,則表示您已經有叢集 IAM OIDC 提供商,且可以略過下一步驟。如果未傳回任何輸出,則您必須為叢集建立 IAM OIDC 提供商。
-
使用下列命令為您的叢集建立 IAM OIDC 身分提供者。
eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve注意
如果您已啟用 EKS VPC 端點,則無法從該 VPC 內部存取 EKS OIDC 服務端點。因此,您的作業 (例如在 VPC 利用
eksctl建立 OIDC 提供商) 將無法運作,並且會導致逾時。以下是範例錯誤訊息:** server cant find oidc.eks.<region-code>.amazonaws.com: NXDOMAIN
若要完成此步驟,您可在 VPC 外部執行命令,例如在 AWS CloudShell 執行,或在連線至網際網路的電腦執行。或者,您可以在 VPC 中建立水平分割條件式解析程式,例如 Route 53 Resolver,以針對 OIDC 發行者 URL 使用不同的解析程式,而不為其使用 VPC DNS。如需 CoreDNS 中條件式轉送的範例,請參閱 GitHub 上的 Amazon EKS 功能請求
。
建立 OIDC 提供商 (AWS 主控台)
-
開啟 Amazon EKS 主控台
。 -
在左側窗格中,選取 Clusters (叢集),然後在 Clusters (叢集) 頁面上選取您的叢集名稱。
-
在 Overview (概觀) 標籤的 Details (詳細資訊) 區段中,記下 OpenID Connect provider URL (OpenID Connect 供應商 URL) 的值。
-
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在左側導覽窗格中,選擇 Access management (存取管理) 下的 Identity Providers (身分提供者)。如果列出的提供商與您叢集的 URL 相符,則表示您已經擁有叢集提供商。如果沒有列出符合叢集 URL 的提供商,則您必須建立一個。
-
若要建立供應商,請選擇 Add provider (新增供應商)。
-
對於提供商類型,選取 OpenID Connect。
-
對於 Provider URL (提供商 URL),輸入叢集的 OIDC 提供商 URL。
-
對於 Audience (對象),輸入
sts.amazonaws.com。 -
(選用) 新增任何標籤,例如可識別適用於此提供商的叢集的標籤。
-
選擇 Add provider (新增提供者)。
後續步驟:將 IAM 角色指派給 Kubernetes 服務帳戶