協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 Amazon EKS建立RBAC的角色和使用者
當您建立 Kubernetes 叢集,數個預設 Kubernetes 身分是在該叢集上建立的,以正確運作 Kubernetes。 Amazon EKS建立 Kubernetes 每個預設元件的身分。身分提供 Kubernetes 叢集元件的角色型授權控制 (RBAC)。如需詳細資訊,請參閱中的使用RBAC授權
當您將選用附加元件安裝至叢集時,額外的 Kubernetes 身分可能會新增至叢集。如需有關本主題未討論之身分的詳細資訊,請參閱附加元件的文件。
您可以檢視EKS建立的 Amazon 清單 Kubernetes 使用 AWS Management Console 或 kubectl
命令列工具在叢集上識別身分。所有使用者身分都會顯示在透過 Amazon 提供給您的kube
稽核日誌中 CloudWatch。
- AWS Management Console
-
先決條件
若要使用 檢視 Amazon EKS建立的身分 AWS Management Console
開啟位於 https://console.aws.amazon.com/eks/home#/clusters
的 Amazon EKS主控台。 -
在 Clusters (叢集) 清單中,選擇包含您要檢視之身分的叢集。
-
選擇 Resources (資源) 標籤。
-
在 Resource types (資源類型) 下選擇 Authorization (授權)。
-
選擇、ClusterRoles、ClusterRoleBindings、角色 或 RoleBindings。所有以 eks 開頭的資源都是由 Amazon 建立EKS。Amazon EKS建立的其他身分資源包括:
ClusterRole 和ClusterRoleBinding名為 aws-node 的 。aws-node 資源支援 Amazon VPC CNI plugin for Kubernetes,Amazon 會EKS安裝在所有叢集上。
-
ClusterRole 名為 vpc-resource-controller-role和ClusterRoleBinding名為 的 vpc-resource-controller-rolebinding。這些資源支援 Amazon VPC 資源控制器
,Amazon 會EKS安裝在所有叢集上。
除了您在主控台中看到的資源之外,您的叢集上還存在下列特殊使用者身分,但在叢集的組態中不會顯示出來:
-
eks:cluster-bootstrap
:用於叢集引導期間的kubectl
操作。 -
eks:support-engineer
:用於叢集管理操作。
-
選擇特定資源以檢視其相關詳細資訊。依預設,您可以在 Structured view (結構化檢視) 中檢視資訊。您可以在詳細資訊頁面的右上角,選擇 Raw view (原始檢視) 以查看資源的所有資訊。
- Kubectl
-
先決條件
您使用 (AWS Identity and Access Management (IAM) 或 OpenID Connect (OIDC)) 列出 Kubernetes 叢集上的 資源必須由 IAM或您的 驗證 OIDC 身分提供者。必須授予實體使用 的許可 Kubernetes
get
和list
動詞,用於您希望實體使用之叢集上的RoleBinding
、、Role
ClusterRole
和ClusterRoleBinding
資源。如需授予IAM實體存取叢集的詳細資訊,請參閱 授與IAM使用者和角色對 Kubernetes 的存取權 APIs。如需授予自行驗證之實體的詳細資訊 OIDC 供應商存取叢集,請參閱 授予使用者使用外部OIDC提供者Kubernetes的存取權。若要使用 檢視 Amazon EKS建立的身分
kubectl
執行您要查看的資源類型的命令。所有以 eks 開頭的傳回資源都是由 Amazon 建立EKS。除了命令輸出中傳回的資源之外,您的叢集上還存在下列特殊使用者身分,但在叢集的組態中不會顯示出來:
-
eks:cluster-bootstrap
:用於叢集引導期間的kubectl
操作。 -
eks:support-engineer
:用於叢集管理操作。
ClusterRoles –
ClusterRoles
已涵蓋在您的叢集中,因此授予角色的任何許可都適用於任何 Kubernetes 叢集上的命名空間。下列命令會傳回所有EKS建立的 Amazon Kubernetes
ClusterRoles
在您的叢集上。kubectl get clusterroles | grep eks
除了前面帶有 的輸出中傳回的
ClusterRoles
之外,還存在以下ClusterRoles
。-
aws-node
– 這ClusterRole
支援 Amazon VPC CNI plugin for Kubernetes,Amazon 會EKS安裝在所有叢集上。 -
vpc-resource-controller-role
– 這ClusterRole
支援 Amazon VPC 資源控制器,Amazon 會EKS安裝在所有叢集上。
若要查看 的規格
ClusterRole
,請取代eks:k8s-metrics
在下列命令中,在上一個命令的輸出中ClusterRole
傳回 。下列範例會傳回 的規格eks:k8s-metrics
ClusterRole
.kubectl describe clusterrole
eks:k8s-metrics
範例輸出如下。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- [/metrics] [] [get] endpoints [] [] [list] nodes [] [] [list] pods [] [] [list] deployments.apps [] [] [list]
ClusterRoleBindings -
ClusterRoleBindings
已涵蓋在您的叢集。下列命令會傳回所有EKS建立的 Amazon Kubernetes
ClusterRoleBindings
在您的叢集上。kubectl get clusterrolebindings | grep eks
除了輸出中傳回的
ClusterRoleBindings
之外,還存在以下ClusterRoleBindings
。-
aws-node
– 這ClusterRoleBinding
支援 Amazon VPC CNI plugin for Kubernetes,Amazon 會EKS安裝在所有叢集上。 -
vpc-resource-controller-rolebinding
– 這ClusterRoleBinding
支援 Amazon VPC 資源控制器,Amazon 會EKS安裝在所有叢集上。
若要查看 的規格
ClusterRoleBinding
,請取代eks:k8s-metrics
在下列命令中,在上一個命令的輸出中ClusterRoleBinding
傳回 。下列範例會傳回 的規格eks:k8s-metrics
ClusterRoleBinding
.kubectl describe clusterrolebinding
eks:k8s-metrics
範例輸出如下。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: ClusterRole Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics
角色 –
Roles
範圍為 Kubernetes 命名空間。所有EKS建立的 AmazonRoles
都會範圍涵蓋在kube-system
命名空間中。下列命令會傳回所有EKS建立的 Amazon Kubernetes
Roles
在您的叢集上。kubectl get roles -n kube-system | grep eks
若要查看 的規格
Role
,請取代eks:k8s-metrics
在下列命令中,使用在上一個命令的輸出中Role
傳回的 名稱。下列範例會傳回 的規格eks:k8s-metrics
Role
.kubectl describe role
eks:k8s-metrics
-n kube-system範例輸出如下。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> PolicyRule: Resources Non-Resource URLs Resource Names Verbs --------- ----------------- -------------- ----- daemonsets.apps [] [aws-node] [get] deployments.apps [] [vpc-resource-controller] [get]
RoleBindings –
RoleBindings
範圍為 Kubernetes 命名空間。所有EKS建立的 AmazonRoleBindings
都會範圍涵蓋在kube-system
命名空間中。下列命令會傳回所有EKS建立的 Amazon Kubernetes
RoleBindings
在您的叢集上。kubectl get rolebindings -n kube-system | grep eks
若要查看 的規格
RoleBinding
,請取代eks:k8s-metrics
在下列命令中,在上一個命令的輸出中RoleBinding
傳回 。下列範例會傳回 的規格eks:k8s-metrics
RoleBinding
.kubectl describe rolebinding
-n kube-systemeks:k8s-metrics
範例輸出如下。
Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: Role Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics
-