了解 Amazon EKS建立RBAC的角色和使用者 - Amazon EKS

協助改善此頁面

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

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

了解 Amazon EKS建立RBAC的角色和使用者

當您建立 Kubernetes 叢集,數個預設 Kubernetes 身分是在該叢集上建立的,以正確運作 Kubernetes。 Amazon EKS建立 Kubernetes 每個預設元件的身分。身分提供 Kubernetes 叢集元件的角色型授權控制 (RBAC)。如需詳細資訊,請參閱中的使用RBAC授權 Kubernetes 文件中)。

當您將選用附加元件安裝至叢集時,額外的 Kubernetes 身分可能會新增至叢集。如需有關本主題未討論之身分的詳細資訊,請參閱附加元件的文件。

您可以檢視EKS建立的 Amazon 清單 Kubernetes 使用 AWS Management Console 或 kubectl命令列工具在叢集上識別身分。所有使用者身分都會顯示在透過 Amazon 提供給您的kube稽核日誌中 CloudWatch。

AWS Management Console
先決條件

您使用的IAM主體必須具有 中所述的許可所需的許可

若要使用 檢視 Amazon EKS建立的身分 AWS Management Console
  1. 開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS主控台。

  2. Clusters (叢集) 清單中,選擇包含您要檢視之身分的叢集。

  3. 選擇 Resources (資源) 標籤。

  4. Resource types (資源類型) 下選擇 Authorization (授權)。

  5. 選擇、ClusterRolesClusterRoleBindings角色 RoleBindings。所有以 eks 開頭的資源都是由 Amazon 建立EKS。Amazon EKS建立的其他身分資源包括:

    • ClusterRoleClusterRoleBinding名為 aws-node 的 。aws-node 資源支援 Amazon VPC CNI plugin for Kubernetes,Amazon 會EKS安裝在所有叢集上。

    • ClusterRole 名為 vpc-resource-controller-roleClusterRoleBinding名為 的 vpc-resource-controller-rolebinding。這些資源支援 Amazon VPC 資源控制器 ,Amazon 會EKS安裝在所有叢集上。

    除了您在主控台中看到的資源之外,您的叢集上還存在下列特殊使用者身分,但在叢集的組態中不會顯示出來:

    • eks:cluster-bootstrap:用於叢集引導期間的 kubectl 操作。

    • eks:support-engineer:用於叢集管理操作。

  6. 選擇特定資源以檢視其相關詳細資訊。依預設,您可以在 Structured view (結構化檢視) 中檢視資訊。您可以在詳細資訊頁面的右上角,選擇 Raw view (原始檢視) 以查看資源的所有資訊。

Kubectl
先決條件

您使用 (AWS Identity and Access Management (IAM) 或 OpenID Connect (OIDC)) 列出 Kubernetes 叢集上的 資源必須由 IAM或您的 驗證 OIDC 身分提供者。必須授予實體使用 的許可 Kubernetes getlist 動詞,用於您希望實體使用之叢集上的 RoleBinding、、 Role ClusterRoleClusterRoleBinding 資源。如需授予IAM實體存取叢集的詳細資訊,請參閱 授與IAM使用者和角色對 Kubernetes 的存取權 APIs。如需授予自行驗證之實體的詳細資訊 OIDC 供應商存取叢集,請參閱 授予使用者使用外部OIDC提供者Kubernetes的存取權

若要使用 檢視 Amazon EKS建立的身分 kubectl

執行您要查看的資源類型的命令。所有以 eks 開頭的傳回資源都是由 Amazon 建立EKS。除了命令輸出中傳回的資源之外,您的叢集上還存在下列特殊使用者身分,但在叢集的組態中不會顯示出來:

  • eks:cluster-bootstrap:用於叢集引導期間的 kubectl 操作。

  • eks:support-engineer:用於叢集管理操作。

ClusterRolesClusterRoles 已涵蓋在您的叢集中,因此授予角色的任何許可都適用於任何 Kubernetes 叢集上的命名空間。

下列命令會傳回所有EKS建立的 Amazon Kubernetes ClusterRoles 在您的叢集上。

kubectl get clusterroles | grep eks

除了前面帶有 的輸出中傳回的 ClusterRoles 之外,還存在以下 ClusterRoles

若要查看 的規格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

若要查看 的規格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建立的 Amazon Roles 都會範圍涵蓋在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]

RoleBindingsRoleBindings 範圍為 Kubernetes 命名空間。所有EKS建立的 Amazon RoleBindings 都會範圍涵蓋在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 eks:k8s-metrics -n kube-system

範例輸出如下。

Name: eks:k8s-metrics Labels: <none> Annotations: <none> Role: Kind: Role Name: eks:k8s-metrics Subjects: Kind Name Namespace ---- ---- --------- User eks:k8s-metrics