為叢集建立 IAM OIDC 供應商
您的叢集具有與其相關聯的 OpenID Connect (OIDC) 發行者 URL。若要將 AWS Identity and Access Management (IAM) 角色用於服務帳戶,叢集的 OIDC 發行者 URL 必須有 IAM OIDC 提供者。
先決條件
現有 Amazon EKS 叢集。若要部署叢集,請參閱 Amazon EKS 入門。
已在裝置或 AWS CloudShell 上安裝和設定 AWS CLI 版本 2.11.3
或更新版本,或是 1.27.93
或更新版本。您可以使用 aws --version | cut -d / -f2 | cut -d ' ' -f1
來檢查您的目前版本。如 yum
、apt-get
或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI 落後數個版本之多。若要安裝最新版本,請參閱《AWS Command Line Interface 使用者指南》中的安裝、更新和解除安裝 AWS CLI以及使用 aws configure
的快速組態。AWS CloudShell 中安裝的 AWS CLI 版本也可能比最新版本落後數個版本。若要更新,請參閱 AWS CloudShell User Guide (《 使用者指南》) 中的 Installing AWS CLI to your home directory (安裝 至您的主目錄)。
已在裝置或 AWS CloudShell 上安裝 kubectl
命令列工具。版本可以與您的叢集 Kubernetes 版本相同,或是為最多比該版本更舊一版或更新一版的次要版本。例如,如果您的叢集版本為 1.25
,則可以搭配使用 kubectl
1.24
、1.25
或 1.26
版。若要安裝或升級 kubectl
,請參閱 安裝或更新 kubectl。
包含叢集組態的現有 kubectl
config
檔案。若要建立 kubectl
config
檔案,請參閱建立或更新 Amazon EKS 叢集的 kubeconfig 檔案。
您可以使用 eksctl
或 AWS Management Console 為叢集建立 IAM OIDC 提供者。
- eksctl
-
先決條件
已在裝置或 AWS CloudShell 上安裝版本 0.138.0
或更新版本的 eksctl
命令列工具。若要安裝或更新 eksctl
,請參閱 安裝或更新 eksctl。
使用 eksctl
為您的叢集建立 IAM OIDC 身分提供者
-
判斷您是否擁有叢集的現有 IAM OIDC 供應商。
擷取叢集的 OIDC 供應商 ID 並將其存放在變數中。
oidc_id=$(aws eks describe-cluster --name my-cluster
--query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
判斷您的帳戶中是否已經有擁有叢集 ID 的 IAM OIDC 供應商。
aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4
如果有輸出傳回,表示您已經有叢集 IAM OIDC 提供者,可以略過下一步驟。如果未傳回任何輸出,則您必須為叢集建立 IAM OIDC 供應商。
-
使用下列命令為您的叢集建立 IAM OIDC 身分提供者。使用您自己的值取代 my-cluster
。
eksctl utils associate-iam-oidc-provider --cluster my-cluster
--approve
- AWS Management Console
-
使用 AWS Management Console為您的叢集建立 IAM OIDC 身分提供者
-
在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters。
在左側窗格中,選取 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 (新增供應商)。
-
對於 Provider type (供應商類型),選取 OpenID Connect。
-
對於 Provider URL (供應商 URL),輸入叢集的 OIDC 供應商 URL,然後選擇 Get thumbprint (取得指紋)。
-
對於 Audience (對象),輸入 sts.amazonaws.com
,然後選擇 Add provider (新增提供商)。
下一步驟
設定要擔任 IAM 角色的 Kubernetes 服務帳戶