授予 Kubernetes IAM的使用者和角色存取權 APIs - Amazon EKS

協助改善此頁面

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

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

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

授予 Kubernetes IAM的使用者和角色存取權 APIs

您的叢集具有 Kubernetes API 端點。Kubectl 使用此 API。您可以使用兩種類型的身分對此API進行身分驗證:

  • AWS Identity and Access Management (IAM) 委託人 (角色或使用者) – 此類型需要對 進行身分驗證IAM。使用者可以 AWS 使用透過身分來源提供的登入資料,以IAM使用者身分或使用聯合身分登入 。如果您的管理員先前使用 IAM角色設定聯合身分,使用者只能使用聯合身分登入。當使用者使用聯合 AWS 來存取 時,他們間接擔任角色。當使用者使用此類身分時,您:

    • 可以指派他們 Kubernetes 許可,以便他們可以使用 Kubernetes 叢集上的 物件。如需如何將許可指派給IAM委託人以使其能夠存取的詳細資訊 Kubernetes 物件,請參閱 授權 IAM 使用者存取 Kubernetes 具有EKS存取項目

    • 可以指派IAM許可給他們,讓他們可以使用 Amazon API、 AWS CLI AWS CloudFormation AWS Management Console、 或 來使用您的 Amazon EKS EKS叢集及其資源eksctl。如需詳細資訊,請參閱《服務授權參考》中的 Amazon Elastic Kubernetes Service 定義的動作一節。

    • 節點透過擔任 IAM角色來加入您的叢集。驗證器 for Kubernetes 提供使用IAM主體存取叢集的功能,該功能會在 Amazon EKS控制平面上執行。 AWS IAM

  • 您自己的使用者 OpenID Connect (OIDC) 提供者 – 此類型需要向您的OIDC提供者進行身分驗證。如需設定自己的詳細資訊 OIDC 使用 Amazon EKS叢集的提供者,請參閱授予使用者對 的存取權 Kubernetes 使用外部 OIDC provider (提供者)。當使用者使用此類身分時,您:

    • 可以指派他們 Kubernetes 許可,以便他們可以使用 Kubernetes 叢集上的 物件。

    • 無法為其指派IAM許可,以便他們可以使用 Amazon API、 AWS CLI AWS CloudFormation AWS Management Console、 或 與您的 Amazon EKS EKS叢集及其資源搭配使用eksctl

您可以在叢集中使用這兩種類型的身分。無法停用IAM身分驗證方法。OIDC 驗證方法為選用。

將IAM身分與 Kubernetes 許可建立關聯

AWS IAM 驗證器 for Kubernetes 安裝在叢集的控制平面上。它可讓您允許存取的 AWS Identity and Access Management (IAM) 委託人 (角色和使用者) Kubernetes 叢集上的 資源。您可以允許IAM主體存取 Kubernetes 叢集上的 物件使用下列其中一種方法:

  • 建立存取項目 – 如果您的叢集是等於或晚於叢集的先決條件區段中列出的平台版本 Kubernetes 版本,建議您使用此選項。

    使用存取項目來管理 Kubernetes 叢集外部IAM主體的許可。您可以使用 AWS SDKs AWS CloudFormation、API AWS 命令列介面 和 EKS 新增和管理對叢集的存取 AWS Management Console。這意味著您可以使用建立叢集時使用的工具來管理使用者。

    若要開始使用,請依照變更身分驗證模式來使用存取項目,然後遷移現有的 aws-auth ConfigMap 項目來存取項目

  • 將項目新增至 aws-authConfigMap:如果您叢集的平台版本早於先決條件區段中列出的版本,則必須使用此選項。如果您叢集的平台版本等於或晚於叢集的先決條件區段中列出的平台版本 Kubernetes 版本,而且您已將項目新增至 ConfigMap,則建議您遷移這些項目以存取項目。不過,您無法遷移 Amazon EKS新增至 的項目ConfigMap,例如與受管節點群組或 Fargate 設定檔搭配使用之IAM角色的項目。如需詳細資訊,請參閱授予 Kubernetes IAM的使用者和角色存取權 APIs

    • 如果必須使用 aws-auth ConfigMap 選項,則可以使用 eksctl create iamidentitymapping 命令將項目新增至 ConfigMap。如需詳細資訊,請參閱 eksctl 文件中的管理IAM使用者和角色

設定叢集身分驗證模式

每個叢集都有自己的身分驗證模式。身分驗證模式會決定您可以使用哪些方法來允許IAM主體存取 Kubernetes 叢集上的 物件。身分驗證模式有 3 種。

重要

啟用存取項目方法後,就無法停用。

如果在建立叢集期間未啟用 ConfigMap方法,則無法在稍後啟用。在引入存取項目之前建立的所有叢集都已啟用 ConfigMap方法。

如果您將混合節點與叢集搭配使用,則必須使用 APIAPI_AND_CONFIG_MAP 叢集身分驗證模式。

叢集aws-authConfigMap內的

這是 Amazon EKS叢集的原始身分驗證模式。建立叢集的IAM主體是初始使用者,可以使用 存取叢集kubectl。初始使用者必須將其他使用者新增至 aws-auth ConfigMap 的清單中,並為這些使用者指派相應許可。這些其他使用者無法管理或移除初始使用者,因為 中沒有ConfigMap要管理的項目。

ConfigMap和 存取項目

透過此身分驗證模式,您可以使用兩種方法來將IAM主體新增至叢集。請注意,每個方法都會存放個別的項目;例如,如果您從 新增存取項目 AWS CLI,aws-authConfigMap則 不會更新。

僅存取項目

透過此身分驗證模式,您可以使用 EKS 、API AWS 命令列界面 AWS SDKs AWS CloudFormation,以及 AWS Management Console 管理IAM主體對叢集的存取。

每個存取項目都有一個類型,您可以使用存取範圍的組合將主體限制為特定命名空間,並使用存取政策來設定預先設定的可重複使用許可政策。或者,您可以使用 STANDARD 類型 和 Kubernetes RBAC 群組來指派自訂許可。

身分驗證方式 方法

ConfigMap (CONFIG_MAP)

aws-auth ConfigMap

EKS API 和 ConfigMap(API_AND_CONFIG_MAP)

API、 AWS 命令列界面 AWS SDKs AWS CloudFormation、 和 EKS 中的存取項目 AWS Management Console aws-auth ConfigMap

EKS API 僅限 (API)

API、 AWS 命令列界面 AWS SDKs AWS CloudFormation、 和 EKS 中的存取項目 AWS Management Console

注意

Amazon EKS Auto Mode 需要存取項目。