本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將存取政策與存取項目建立關聯
您可以向類型為 STANDARD
的存取項目指派一個或多個存取政策。Amazon EKS 會自動授予其他類型的存取項目許可,以便在叢集中正常運作。Amazon EKS 存取政策包括 Kubernetes 許可,而非 IAM 許可。在將存取政策與存取項目建立關聯之前,請確定您已熟悉 Kubernetes 每個存取政策中包含的許可。如需詳細資訊,請參閱存取政策許可。如果沒有任何存取政策符合您的需求,請勿將存取政策與存取項目建立關聯。相反地,請指定存取項目的一或多個群組名稱,並建立和管理 Kubernetes 角色型存取控制物件。如需詳細資訊,請參閱建立存取項目。
-
現有的存取項目。若要建立服務角色,請參閱建立存取項目。
-
具有下列許可的 AWS Identity and Access Management
UpdateAccessEntry
角色或使用者:ListAccessEntries
、DescribeAccessEntry
、ListAccessPolicies
、、AssociateAccessPolicy
和DisassociateAccessPolicy
。如需詳細資訊,請參閱《服務授權參考》中的 Amazon Elastic Kubernetes Service 定義的動作一節。
在將存取政策與存取項目關聯之前,請考量以下要求:
-
每個存取項目可以關聯多個存取政策,但只能將每個政策與一個存取項目關聯一次。如果您關聯多個存取政策,則存取項目的 IAM 主體具有所有包含在所有相關存取政策中的所有許可。
-
您可以將存取政策範圍限制為叢集上的所有資源,或指定一或多個 的名稱 Kubernetes 命名空間。您可以將萬用字元用於命名空間名稱。例如,如果要將存取政策的適用範圍限定為以
dev-
開頭的所有命名空間,則可以指定dev-*
作為命名空間名稱。確認叢集上存在相應命名空間,並且拼字與叢集上的實際命名空間名稱相符。Amazon EKS 不會確認叢集上命名空間的拼寫或存在。 -
將存取政策關聯到存取項目後,您可以變更存取政策的存取範圍。如果您已將存取政策範圍設為 Kubernetes 命名空間,您可以視需要新增和移除關聯命名空間。
-
如果您將存取政策與指定群組名稱的存取項目建立關聯,則 IAM 主體會擁有所有關聯存取政策中的所有許可。它也具有任何 Kubernetes
Role
或在任何 中指定的ClusterRole
物件 KubernetesRole
和指定群組名稱的RoleBinding
物件。 -
如果您執行
kubectl auth can-i --list
命令,則不會看到任何 Kubernetes 與您執行 命令時使用的 IAM 主體存取項目相關聯的存取政策所指派的許可。命令只會顯示 Kubernetes 如果您已在 中授予許可 KubernetesRole
或您繫結至您為存取項目指定的群組名稱或使用者名稱的ClusterRole
物件。 -
如果您模擬 Kubernetes 與 互動時的使用者或群組 Kubernetes 叢集上的物件,例如搭配
--as
或 使用username
kubectl
命令--as-group
,您正在強制使用 Kubernetes RBAC 授權。因此,IAM 主體沒有與存取項目相關聯的任何存取政策指派的許可。唯一 Kubernetes IAM 主體模擬的使用者或群組具有的 許可是 Kubernetes 您已在 中授予它們的 許可 Kubernetesgroup-name
Role
或您已繫結至群組名稱或使用者名稱的ClusterRole
物件。若要讓您的 IAM 主體在相關聯的存取政策中擁有許可,請勿模擬 Kubernetes 使用者或群組。IAM 主體仍會擁有您在 中授予他們的任何許可 KubernetesRole
或您繫結至您為存取項目指定的群組名稱或使用者名稱的ClusterRole
物件。如需詳細資訊,請參閱中的使用者模擬Kubernetes 文件中)。
您可以使用 AWS Management Console 或 AWS CLI 將存取政策與存取項目建立關聯。
AWS Management Console
-
開啟 Amazon EKS 主控台
。 -
選擇要將存取政策關聯到的存取項目所在的叢集的名稱。
-
選擇存取索引標籤。
-
如果存取項目的類型為標準,您可以關聯或取消關聯 Amazon EKS 存取政策。如果您的存取項目類型不是標準項目,則無法使用此選項。
-
選擇關聯存取政策。
-
針對政策名稱,選取具有您希望 IAM 主體擁有之許可的政策。若要查看每個政策包含的許可,請參閱 存取政策許可。
-
對於存取範圍,選擇存取範圍。如果您選擇叢集,則存取政策中的許可會授予所有資源的 IAM 主體 Kubernetes 命名空間。如果您選擇 Kubernetes 然後,您可以選擇新增命名空間。在出現的名稱空間欄位中,您可以輸入 Kubernetes 叢集上的命名空間。如果您希望 IAM 主體擁有多個命名空間的許可,則可以輸入多個命名空間。
-
選擇新增存取政策。
AWS CLI
-
在您的裝置
2.12.3
or AWS CloudShell 上安裝和設定的 AWS 命令列介面 (AWS CLI) 版本1.27.160
或更新版本。若要檢查您目前的版本,請使用aws --version | cut -d / -f2 | cut -d ' ' -f1
。套件管理員apt-get
,例如yum
、 或 Homebrew for macOS 通常是最新版本 AWS CLI 後面的幾個版本。若要安裝最新版本,請參閱 AWS 命令列介面使用者指南中的使用 aws 設定安裝 和 快速組態。 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config安裝在 in AWS CLI 中的 AWS CloudShell 版本也可能是最新版本後面的幾個版本。若要更新它,請參閱 AWS CLI 使用者指南中的將 Word 安裝到您的主目錄。 AWS CloudShell -
檢視可用的存取政策。
aws eks list-access-policies --output table
範例輸出如下。
--------------------------------------------------------------------------------------------------------- | ListAccessPolicies | +-------------------------------------------------------------------------------------------------------+ || accessPolicies || |+---------------------------------------------------------------------+-------------------------------+| || arn | name || |+---------------------------------------------------------------------+-------------------------------+| || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSAdminPolicy | AmazonEKSAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy | AmazonEKSClusterAdminPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSEditPolicy | AmazonEKSEditPolicy || || {arn-aws}eks::aws:cluster-access-policy/AmazonEKSViewPolicy | AmazonEKSViewPolicy || |+---------------------------------------------------------------------+-------------------------------+|
若要查看每個政策包含的許可,請參閱 存取政策許可。
-
檢視現有的存取項目。Replace (取代)
my-cluster
您的叢集名稱。aws eks list-access-entries --cluster-name my-cluster
範例輸出如下。
{ "accessEntries": [ "arn:aws: iam::111122223333:role/my-role", "arn:aws: iam::111122223333:user/my-user" ] }
-
將存取政策與存取項目關聯。以下範例將
AmazonEKSViewPolicy
存取政策與一個存取項目關聯。每當my-role
IAM 角色嘗試存取 Kubernetes 叢集上的物件,Amazon EKS 會授權角色使用政策中的許可來存取 Kubernetes 中的物件my-namespace1
以及my-namespace2
Kubernetes 僅限命名空間。Replace (取代)my-cluster
使用叢集的名稱111122223333
使用 AWS 您的帳戶 ID,以及my-role
使用您希望 Amazon EKS 授權存取的 IAM 角色名稱 Kubernetes 叢集物件。aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1,my-namespace2 --policy-arn arn:aws: eks::aws:cluster-access-policy/AmazonEKSViewPolicy
如果您希望 IAM 主體擁有全叢集的許可,請將 取代
type=namespace,namespaces=
為my-namespace1
,my-namespace2
type=cluster
。如果要將多個存取政策關聯到該存取項目,請多次執行該命令,並每次使用不同的存取政策。每個關聯的存取政策都有自身的適用範圍。注意
如果您稍後想要變更關聯的存取政策的適用範圍,請再次執行先前的命令並指定新的適用範圍。例如,如果您想要移除
my-namespace2
,您只能使用 再次執行命令type=namespace,namespaces=
。如果您想要將範圍從 變更為my-namespace1
namespace
cluster
,則可以再次使用 執行命令type=cluster
,移除type=namespace,namespaces=
。my-namespace1
,my-namespace2
-
確定哪些存取政策與某個存取項目關聯。
aws eks list-associated-access-policies --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role
範例輸出如下。
{ "clusterName": "my-cluster", "principalArn": "arn:aws: iam::111122223333", "associatedAccessPolicies": [ { "policyArn": "arn:aws: eks::aws:cluster-access-policy/AmazonEKSViewPolicy", "accessScope": { "type": "cluster", "namespaces": [] }, "associatedAt": "2023-04-17T15:25:21.675000-04:00", "modifiedAt": "2023-04-17T15:25:21.675000-04:00" }, { "policyArn": "arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminPolicy", "accessScope": { "type": "namespace", "namespaces": [ "my-namespace1", "my-namespace2" ] }, "associatedAt": "2023-04-17T15:02:06.511000-04:00", "modifiedAt": "2023-04-17T15:02:06.511000-04:00" } ] }
在上一個範例中,此存取項目的 IAM 主體具有叢集上所有命名空間的檢視許可,以及兩個 的管理員許可 Kubernetes 命名空間。
-
將存取政策與存取項目取消關聯。在此範例中,
AmazonEKSAdminPolicy
政策與存取項目取消關聯。IAM 主體會保留 中物件的AmazonEKSViewPolicy
存取政策許可my-namespace1
以及my-namespace2
不過,由於存取政策未與存取項目取消關聯。aws eks disassociate-access-policy --cluster-name my-cluster --principal-arn arn:aws: iam::111122223333:role/my-role \ --policy-arn arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminPolicy
存取政策許可
存取政策rules
包含 Kubernetes verbs
(許可) 和 resources
。存取政策不包含 IAM 許可或資源。類似於 Kubernetes Role
和 ClusterRole
物件,存取政策僅包含 allow
rules
。您無法修改存取政策的內容。您無法建立自己的存取政策。如果存取政策中的許可不符合您的需求,請建立 Kubernetes RBAC 物件並指定存取項目的群組名稱。如需詳細資訊,請參閱建立存取項目。存取政策中包含的許可類似於 中的許可 Kubernetes 面向使用者的叢集角色。如需詳細資訊,請參閱中的面向使用者的角色
選擇任意存取政策以查看其內容。每個存取政策中每個表的每一行都是一項單獨規則。
此存取政策包含將 IAM 主體的大多數許可授予 資源的許可。與存取項目相關聯時,其存取範圍通常為一或多個 Kubernetes 命名空間。如果您想要 IAM 主體讓管理員存取叢集上的所有資源,請改為將 AmazonEKSClusterAdminPolicyWordAmazonEKSClusterAdminPolicy Word 存取政策與您的存取項目建立關聯。
ARN – arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminPolicy
Kubernetes API 群組 | Kubernetes 資源 | Kubernetes 動詞 (許可) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此存取政策包含授予 IAM 主體管理員存取叢集的許可。與存取項目相關聯時,其存取範圍通常是叢集,而不是 Kubernetes 命名空間。如果您希望 IAM 主體具有更有限的管理範圍,請考慮改為將 AmazonEKSAdmin 政策AmazonEKSAdmin 政策存取政策與存取項目建立關聯。
ARN – arn:aws: eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy
Kubernetes API 群組 | Kubernetes nonResourceURLsWord | Kubernetes 資源 | Kubernetes 動詞 (許可) |
---|---|---|---|
|
|
|
|
|
|
此存取政策包含許可,授予 IAM 主體列出/檢視叢集中所有資源的存取權。請注意,這包含 Kubernetes 秘密。
ARN – arn:aws: eks::aws:cluster-access-policy/AmazonEKSAdminViewPolicy
Kubernetes API 群組 | Kubernetes 資源 | Kubernetes 動詞 (許可) |
---|---|---|
|
|
|
此存取政策包含允許 IAM 主體編輯大部分 Kubernetes 的費用。
ARN – arn:aws: eks::aws:cluster-access-policy/AmazonEKSEditPolicy
Kubernetes API 群組 | Kubernetes 資源 | Kubernetes 動詞 (許可) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
此存取政策包含允許 IAM 主體檢視大多數 Kubernetes 的費用。
ARN – arn:aws: eks::aws:cluster-access-policy/AmazonEKSViewPolicy
Kubernetes API 群組 | Kubernetes 資源 | Kubernetes 動詞 (許可) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
存取政策更新
檢視有關存取政策更新 (自引進以來) 的詳細資訊。如需此頁面變更的自動提醒,請訂閱 中的 RSS 摘要文件歷史紀錄。
變更 | 描述 | 日期 |
---|---|---|
加 |
新增新政策以擴展檢視存取,包括 Secrets 等資源。 |
2024 年 4 月 23 日 |
引進存取政策。 |
Amazon EKS 引入了存取政策。 |
2023 年 5 月 29 日 |