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

協助改善此頁面

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

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

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

當您建立 Kubernetes 叢集時,會在該叢集上建立數個預設 Kubernetes 身分,以便 Kubernetes 能正常運作。Amazon EKS 會為其每個預設元件建立Kubernetes身分。身分識別為叢集元件提供以Kubernetes角色為基礎的授權控制 (RBAC)。如需詳細資訊,請參閱Kubernetes文件中的使用RBAC授權

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

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

AWS Management Console
先決條件

您使用的IAM主參與者必須具有中所述的權限所需的許可

若要檢視 Amazon EKS 建立的身分,請使用 AWS Management Console
  1. https://console.aws.amazon.com/eks/家裡 #/集群打開 Amazon EKS 控制台。

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

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

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

  5. 選擇ClusterRolesClusterRoleBindings、、角色RoleBindings。所有前面加上 eks 的資源都是由 Amazon 創建的。EKSAmazon EKS 建立的其他身分資源包括:

    • ClusterRole和命ClusterRoleBinding名的 AWS 節點。AWS 節點資源支持 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:用於叢集管理操作。

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

Kubectl
先決條件

您使用 ((IAM) 或AWS Identity and Access Management OpenID Connect (OIDC)) 列出叢集上Kubernetes資源的實體,必須經過身分識別提供者IAM或您的OIDC身分識別提供者驗證。必須授予實體在叢集上使用 RoleClusterRoleRoleBinding 的 Kubernetes getlist 動詞以及 ClusterRoleBinding 資源的許可,以便與實體互相搭配使用。如需授與IAM實體叢集存取權的詳細資訊,請參閱授與IAM使用者和角色對 Kubernetes 的存取權 APIs。如需有關授予經由您的 OIDC 提供者驗證之實體叢集存取權的詳細資訊,請參閱授予使用者使用外部OIDC提供者Kubernetes的存取權

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

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

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

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

ClusterRoles— 範圍限定於您的叢集,因此授予角色的任何權限ClusterRoles都會套用至叢集上任何Kubernetes命名空間中的資源。

下列命令會傳回叢集KubernetesClusterRoles上EKS建立的所有 Amazon。

kubectl get clusterroles | grep eks

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

若要查看 a 的規格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為您的叢集。

下列命令會傳回叢集KubernetesClusterRoleBindings上EKS建立的所有 Amazon。

kubectl get clusterrolebindings | grep eks

除了輸出中傳回的 ClusterRoleBindings 之外,還存在以下 ClusterRoleBindings

若要查看 a 的規格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 命名空間內。所有 Amazon EKS 創建的kube-system範圍Roles都限於命名空間。

下列命令會傳回叢集KubernetesRoles上EKS建立的所有 Amazon。

kubectl get roles -n kube-system | grep eks

若要查看 a 的規格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。所有 Amazon EKS 創建的kube-system範圍RoleBindings都限於命名空間。

下列命令會傳回叢集KubernetesRoleBindings上EKS建立的所有 Amazon。

kubectl get rolebindings -n kube-system | grep eks

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