協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理存取項目
必要條件
-
熟悉 Amazon EKS 叢集的叢集存取選項。如需詳細資訊,請參閱 授予 Kubernetes API 的存取權 。
-
現有 Amazon EKS 叢集。若要部署叢集,請參閱 Amazon EKS 入門。若要使用存取項目和變更叢集的身分驗證模式,叢集的平台版本必須與下表所列版本相同或更新,或是晚於表格中列出版本的 Kubernetes 版本。
Kubernetes 版本 平台版本 1.30
eks.2
1.29
eks.1
1.28
eks.6
1.27
eks.10
1.26
eks.11
1.25
eks.12
1.24
eks.15
1.23
eks.17
若要檢查目前的 Kubernetes 和平台版本,您可以使用叢集名稱取代以下命令中的
my-cluster
,然後執行修改後的命令:aws eks describe-cluster --name
。my-cluster
--query 'cluster.{"Kubernetes Version": version, "Platform Version": platformVersion}'重要
在 Amazon EKS 將叢集更新至表中列出的平台版本後,Amazon EKS 會為最初建立叢集的 IAM 主體,建立一個具有叢集管理員許可的存取項目。如果您不希望該 IAM 主體擁有叢集的管理員許可,請移除 Amazon EKS 建立的存取項目。
對於平台版本早於上表所列平台版本的叢集,叢集建立者始終為叢集管理員。您無法從建立叢集的 IAM 使用者或角色中移除叢集管理員許可。
-
對叢集具有以下許可的 IAM 主體:
CreateAccessEntry
、ListAccessEntries
、DescribeAccessEntry
、DeleteAccessEntry
和UpdateAccessEntry
。如需 Amazon EKS 許可的詳細資訊,請參閱《服務授權參考》中的 Amazon Elastic Kubernetes Service 定義的動作一節。 -
要為其建立存取項目的現有 IAM 主體,或要更新或刪除的現有存取項目。
設定存取項目
若要開始使用存取項目,您必須將叢集的身分驗證模式變更為 API_AND_CONFIG_MAP
或 API
模式。這會新增用於存取項目的 API。
建立存取項目
考量事項
在建立存取項目之前,請考慮以下事項:
-
存取項目包含一個 (且僅一個) 現有 IAM 主體的 Amazon Resource Name (ARN)。一個 IAM 主體不能包含在多個存取項目中。對於您指定的 ARN 的其他考量:
-
IAM 最佳實務建議使用具有短期憑證的 IAM 角色存取叢集,而不是使用具有長期憑證的 IAM 使用者進行存取。如需詳細資訊,請參閱 IAM 使用者指南中的要求人類使用者與身分識別提供者的聯合以 AWS 使用臨時登入資料存取。
-
如果 ARN 用於 IAM 角色,則它可以包含路徑。
aws-auth
ConfigMap
項目中的 ARN 則不能包含路徑。例如, ARN 可以是arn:aws:iam::
或111122223333
:role/development/apps/
my-role
arn:aws:iam::
。111122223333
:role/my-role
-
如果存取項目的類型不是
STANDARD
(請參閱下一個關於類型的考量),ARN 必須與叢集 AWS 帳戶 所在的相同。如果類型為STANDARD
,則 ARN 可以與叢集所在 AWS 帳戶 的帳戶相同或不同。 -
建立存取項目後,您無法變更該 IAM 主體。
-
如果您刪除具有此 ARN 的 IAM 主體,則存取項目並不會自動刪除。建議您刪除帶有您刪除之 IAM 主體的 ARN 的存取項目。如果您在不刪除存取項目的情況下重新建立 IAM 主體,則即使它具有相同的 ARN,存取項目也將無法運作。這是因為即使 ARN 對於重新建立的 IAM 主體是相同的,
roleID
或userID
(您可以使用aws sts get-caller-identity
AWS CLI 命令看到) 對於重新建立的 IAM 主體而言,與原始 IAM 主體不同。即使您看不到存取項目的 IAM 主體roleID
或userID
,Amazon EKS 也會將其與存取項目一起儲存。
-
-
每個存取項目都有一個類型。您可以指定
EC2 Linux
(針對搭配 Linux 或保登機自我管理節點使用的 IAM 角色)、EC2 Windows
(適用於搭配 Windows 自我管理節點使用的 IAM 角色)、FARGATE_LINUX
(適用於搭配使用的 IAM 角色 AWS Fargate (Fargate)) 或做為類型。STANDARD
如果您不指定類型,則 Amazon EKS 會自動將類型設為STANDARD
。無需為用於受管節點群組或 Fargate 描述檔的 IAM 角色建立存取項目,因為無論叢集位於哪個平台版本,Amazon EKS 都會將這些角色的項目新增至aws-auth
ConfigMap
。建立存取項目後,您無法變更類型。
-
如果某個存取項目的類型為
STANDARD
,則可以為其指定一個使用者名稱。如果您沒有指定使用者名稱的值,Amazon EKS 會根據存取項目的類型以及您指定的 IAM 主體是 IAM 角色還是 IAM 使用者,設定下列其中一個值。除非您有特定原因需要自己指定使用者名稱,否則建議您不要指定使用者名稱,而是讓 Amazon EKS 自動為您產生該使用者名稱。如果您自己指定使用者名稱:-
該名稱不能以
system:
、eks:
、aws:
、amazon:
或iam:
開頭。 -
如果該使用者名稱用於 IAM 角色,則建議您在末尾新增
{{SessionName}}
。如果您添加{{SessionName}}
到您的用戶名,用戶名必須在 {{SessionName}} 之前包含冒號。假設此角色時,假設角色時指定的工作階段名稱會自動傳遞至叢集,並會出現在 CloudTrail 記錄檔中。例如,使用者名稱不能為john{{SessionName}}
。使用者名稱必須為:john{{SessionName}}
或jo:hn{{SessionName}}
。冒號只需位於{{SessionName}}
之前。以下資料表中 Amazon EKS 產生的使用者名稱包含 ARN。由於 ARN 包含冒號,因此它符合此項要求。如果使用者名稱中不包含{{SessionName}}
,則不需要冒號。
IAM 主體類型 Type Amazon EKS 自動設定的使用者名稱值 使用者 STANDARD
使用者的 ARN。範例:
arn:aws:iam::
111122223333
:user/my-user
角色 STANDARD
角色被擔任時的 STS ARN。Amazon EKS 將
{{SessionName}}
附加到角色。範例:
arn:aws:sts::
111122223333
:assumed-role/my-role
/{{SessionName}}如果您指定的角色的 ARN 包含路徑,則 Amazon EKS 會將其從產生的使用者名稱中移除。
角色 EC2 Linux
或EC2 Windows
system:node:{{EC2PrivateDNSName}}
角色 FARGATE_LINUX
system:node:{{SessionName}}
建立存取項目後,您可以對使用者名稱進行變更。
-
-
如果某個存取項目的類型為
STANDARD
,且您希望使用 Kubernetes RBAC 授權,則可以在該存取項目中新增一個或多個群組名稱。建立存取項目後,您可以新增和移除群組名稱。為了使 IAM 主體能夠存取叢集上的 Kubernetes 物件,您必須建立和管理 Kubernetes 角色型授權 (RBAC) 物件。在叢集上建立將群組名稱指定為kind: Group
的subject
的 KubernetesRoleBinding
或ClusterRoleBinding
物件。Kubernetes 授權 IAM 主體存取您在 KubernetesRole
或ClusterRole
物件中 (也在繫結的roleRef
中) 指定的任何叢集物件。如果您指定群組名稱,則建議您熟悉 Kubernetes 角色型授權 (RBAC) 物件。如需詳細資訊,請參閱 Kubernetes 文件中的使用 RBAC 授權。 重要
Amazon EKS 不會確認叢集上存在的任何 Kubernetes RBAC 物件是否包含您指定的任何群組名稱。
您可以將 Amazon EKS 存取政策關聯到存取項目,而不是讓 Kubernetes 授權 IAM 主體存取叢集上的 Kubernetes 物件。Amazon EKS 授權 IAM 主體使用存取政策中的許可存取叢集上的 Kubernetes 物件。您可以將存取政策的許可範圍限定為您指定的 Kubernetes 命名空間。使用存取政策無需您管理 Kubernetes RBAC 物件。如需詳細資訊,請參閱 將存取政策與存取項目關聯和取消關聯。
-
如果您建立類型為
EC2 Linux
或EC2 Windows
的存取項目,則建立該存取項目的 IAM 主體必須具有iam:PassRole
許可。如需詳細資訊,請參閱《IAM 使用者指南》中的 Granting a user permissions to pass a role to an AWS 服務 一節。 -
與標準 IAM 行為類似,存取項目的建立和更新採用最終一致模式,在初始 API 呼叫成功返回後可能需要幾秒鐘才能生效。您設計的應用程式必須能夠處理這些可能的延遲問題。建議您不要在應用程式的關鍵、高可用性程式碼路徑中包含存取項目建立或更新動作。而應在不常運作的、單獨的初始化或設定常式中進行 更改。另外,在生產工作流程套用這些變更之前,請務必確認變更已傳播完畢。
-
存取項目不支援服務連結的角色。您無法建立主參與者 ARN 是服務連結角色的存取項目。您可以依據服務連結角色的 ARN 來識別服務連結角色,格
arn:aws:iam::*:role/aws-service-role/*
式為。
您可以使用 AWS Management Console 或建立存取項目 AWS CLI。
更新存取項目
您可以使用 AWS Management Console 或更新存取項目 AWS CLI。
刪除存取項目
如果您發現某個存取項目被錯誤刪除,則您可以隨時重新建立。如果您要刪除的存取項目與任何存取政策關聯,則這些關聯將自動刪除。在刪除存取項目之前,您不必取消其與存取政策的關聯。
您可以使用 AWS Management Console 或刪除存取項目 AWS CLI。