協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予 IAM 使用者和角色對 Kubernetes APIs存取權
您的叢集具有 Kubernetes API 端點。Kubectl 會使用此 API。您可以使用兩種類型的身分來驗證此 API:
-
AWS Identity and Access Management (IAM) 主體 (角色或使用者) – 此類型需要對 IAM 進行身分驗證。使用者可以 AWS 使用透過身分來源提供的憑證,以 IAM 使用者身分或使用聯合
身分登入 。如果管理員先前已設定使用 IAM 角色的聯合身分,則使用者只能夠以聯合身分登入。當使用者使用聯合 AWS 存取 時,他們間接擔任角色。當使用者使用此類身分時,您: -
可以為其指派 Kubernetes 許可,從而讓其能夠使用您叢集上的 Kubernetes 物件。如需如何向 IAM 主體指派許可以便相應主體能夠存取您叢集上的 Kubernetes 物件的詳細資訊,請參閱 使用 EKS 存取項目授予 IAM 使用者 Kubernetes 的存取權。
-
可以指派 IAM 許可給他們,讓他們可以使用 Amazon EKS API、 AWS CLI AWS 管理主控台、 AWS CloudFormation 或 與您的 Amazon EKS 叢集及其資源搭配使用
eksctl。如需詳細資訊,請參閱《服務授權參考》中的 Amazon Elastic Kubernetes Service 定義的動作一節。 -
節點透過承擔 IAM 角色來加入叢集。適用於 Kubernetes 的AWS IAM 驗證器
在 Amazon EKS 控制平面上執行,讓使用者能夠使用 IAM 主體存取您的叢集。
-
-
您自己的 OpenID Connect (OIDC) 提供商中的使用者:此類型需要向 OIDC
提供商進行身分驗證。如需向 Amazon EKS 叢集設定您自己的 OIDC 提供商的詳細資訊,請參閱 透過外部 OIDC 提供商授予使用者存取 Kubernetes 的權限。當使用者使用此類身分時,您: -
可以為其指派 Kubernetes 許可,從而讓其能夠使用您叢集上的 Kubernetes 物件。
-
無法為他們指派 IAM 許可,讓他們可以使用 Amazon EKS API、 AWS CLI AWS 管理主控台、 AWS CloudFormation 或 來使用您的 Amazon EKS 叢集及其資源
eksctl。
-
您可以在叢集中使用這兩種類型的身分。IAM 身分驗證方法無法停用。OIDC 身分驗證方法為選用。
建立 IAM 身分與 Kubernetes 許可的關聯
適用於 Kubernetes 的AWS IAM 驗證器
-
建立存取項目:如果叢集版本等於或高於叢集 Kubernetes 版本先決條件部分中列出的平台版本,則建議您使用此選項。
使用存取項目,從叢集外部管理 IAM 主體的 Kubernetes 許可。您可以使用 EKS API、 AWS 命令列界面、 AWS SDKs、 AWS CloudFormation 和 來新增和管理對叢集的存取 AWS 管理主控台。這意味著您可以使用建立叢集時使用的工具來管理使用者。
若要開始使用,請依照變更身分驗證模式來使用存取項目,然後遷移現有的 aws-auth ConfigMap 項目來存取項目。
-
新增項目到
aws-authConfigMap:如果叢集的平台版本低於先決條件部分中列出的版本,則必須使用此選項。如果叢集的平台版本等於或高於叢集 Kubernetes 版本先決條件部分中列出的平台版本,並且您已將項目新增至ConfigMap,則建議您將這些項目移轉到存取項目。但是,您無法移轉 Amazon EKS 新增至ConfigMap的項目,例如用於受管節點群組或 Fargate 設定檔的 IAM 角色項目。如需詳細資訊,請參閱授予 IAM 使用者和角色對 Kubernetes APIs存取權。-
如果必須使用
aws-authConfigMap選項,則可以使用eksctl create iamidentitymapping命令將項目新增至ConfigMap。如需詳細資訊,請參閱eksctl文件中的 Manage IAM users and roles一節。
-
設定叢集驗證模式
每個叢集都有自己的身分驗證模式。身分驗證模式決定您可以使用哪些方法來允許 IAM 主體存取叢集上的 Kubernetes 物件。身分驗證模式有 3 種。
重要
啟用存取項目方法後,即無法將其停用。
如果在叢集建立期間未啟用 ConfigMap 方法,則稍後無法啟用。在引入存取項目之前建立的所有叢集均已啟用 ConfigMap 方法。
如果您搭配叢集使用混合節點,則必須使用 API 或 API_AND_CONFIG_MAP 叢集身分驗證模式。
- 叢集內的
aws-authConfigMap -
這是 Amazon EKS 叢集的原始身分驗證模式。建立叢集的 IAM 主體是可以使用
kubectl存取叢集的初始使用者。初始使用者必須將其他使用者新增至aws-authConfigMap的清單中,並為這些使用者指派相應許可。其他使用者無法管理或移除初始使用者,因為ConfigMap中沒有要管理的項目。 -
ConfigMap和存取項目 -
使用這種身分驗證模式時,您可以使用這兩種方法將 IAM 主體新增至叢集。請注意,每個方法都會存放個別的項目;例如,如果您從 AWS CLI 新增存取項目,
aws-authConfigMap則不會更新 。 - 僅存取項目
-
透過此身分驗證模式,您可以使用 EKS API、 AWS 命令列界面、 AWS SDKs、 AWS CloudFormation 和 AWS 管理主控台 來管理 IAM 主體對叢集的存取。
每個存取項目都有一個類型,您可以使用存取範圍的組合將主體限制為特定命名空間,並使用存取政策來設定預先設定的可重複使用許可政策。您也可以使用 STANDARD 類型和 Kubernetes RBAC 群組來指派自訂許可。
| 身分驗證方式 | 方法 |
|---|---|
|
僅 |
|
|
EKS API 和 |
EKS API、 AWS 命令列界面、 AWS SDKs、 AWS CloudFormation 和 AWS 管理主控台 中的存取項目 |
|
僅 EKS API ( |
EKS API、 AWS 命令列界面、 AWS SDKs、 AWS CloudFormation 和 中的存取項目 AWS 管理主控台 |
注意
Amazon EKS 自動模式需要存取項目。