Die von Amazon EKS erstellten RBAC-Rollen und -Benutzer verstehen - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.

Die von Amazon EKS erstellten RBAC-Rollen und -Benutzer verstehen

Wenn Sie einen Kubernetes-Cluster erstellen, werden für das ordnungsgemäße Funktionieren von Kubernetes mehrere Kubernetes-Standardidentitäten in diesem Cluster erstellt. Amazon EKS erstellt Kubernetes-Identitäten für jede seiner Standardkomponenten. Die Identitäten stellen eine rollenbasierte Autorisierungskontrolle (RBAC) von Kubernetes für die Cluster-Komponenten bereit. Weitere Informationen finden Sie unter Using RBAC Authorization in der Kubernetes-Dokumentation.

Wenn Sie optionale Add-Ons zu Ihrem Cluster installieren, werden Ihrem Cluster möglicherweise zusätzliche Kubernetes-Identitäten hinzugefügt. Weitere Informationen zu Identitäten, die in diesem Thema nicht behandelt werden, finden Sie in der Dokumentation des Add-Ons.

Sie können die Liste der von Amazon EKS erstellten Kubernetes-Identitäten auf Ihrem Cluster mit dem AWS-Managementkonsole- oder kubectl-Befehlszeilen-Tool anzeigen. Alle Benutzeridentitäten werden in den kube-Prüfungsprotokollen angezeigt, die Ihnen über Amazon CloudWatch zur Verfügung stehen.

AWS-Managementkonsole

Voraussetzung

Der von Ihnen verwendete IAM-Prinzipal muss über die unter Erforderliche Berechtigungen beschriebenen Berechtigungen verfügen.

So zeigen Sie von Amazon EKS erstellte Identitäten mit dem AWS-Managementkonsole an

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie in der Liste Clusters (Cluster) den Cluster aus, der die anzuzeigenden Identitäten enthält.

  3. Wählen Sie die Registerkarte Resources (Ressourcen) aus.

  4. Wählen Sie unter Resource types (Ressourcentypen) die Option Authorization (Autorisierung) aus.

  5. Wählen Sie ClusterRoles, ClusterRoleBindings, Roles oder RoleBindings aus. Alle Ressourcen, denen eks vorangestellt ist, wurden von Amazon EKS erstellt. Weitere von Amazon EKS erstellte Identitätsressourcen sind:

    • Die ClusterRole und das ClusterRoleBinding mit dem Namen aws-node. Die aws-node-Ressourcen unterstützen das Amazon-VPC-CNI-Plugin für Kubernetes, das Amazon EKS auf allen Clustern installiert.

    • Eine ClusterRole mit dem Namen vpc-resource-controller-role und ein ClusterRoleBinding mit dem Namen vpc-resource-controller-rolebinding. Diese Ressourcen unterstützen den Amazon-VPC-Ressourcencontroller, den Amazon EKS auf allen Clustern installiert.

    Zusätzlich zu den Ressourcen, die Sie in der Konsole sehen, sind die folgenden speziellen Benutzeridentitäten in Ihrem Cluster vorhanden, obwohl sie in der Konfiguration des Clusters nicht sichtbar sind:

    • eks:cluster-bootstrap – Wird für kubectl-Vorgänge während des Cluster-Bootstraps verwendet.

    • eks:support-engineer – Wird für Cluster-Management-Operationen verwendet.

  6. Wählen Sie eine bestimmte Ressource aus, um Details dazu anzuzeigen. Standardmäßig werden Ihnen Informationen in der Strukturierten Ansicht angezeigt. In der oberen rechten Ecke der Detailseite können Sie die Raw view (Rohansicht) auswählen, um alle Informationen für die Ressource anzuzeigen.

Kubectl

Voraussetzung

Die Entität, die Sie zum Auflisten der Kubernetes-Ressourcen im Cluster verwenden (AWS Identity and Access Management (IAM) oder OpenID Connect (OIDC)), muss von IAM oder Ihrem OIDC-Identitätsanbieter authentifiziert werden. Der Entität müssen Berechtigungen zur Verwendung der Kubernetes-Verben get und list für die Role-, ClusterRole-, RoleBinding- und ClusterRoleBinding-Ressourcen in Ihrem Cluster gewährt werden, mit denen die Entität arbeiten soll. Weitere Informationen zum Gewähren von Zugriff auf IAM-Entitäten auf Ihren Cluster finden Sie unter Gewähren von Zugriff auf Kubernetes-APIs für IAM-Benutzer und Rollen. Weitere Informationen zum Gewähren von Zugriff auf Ihren Cluster durch Entitäten, die von Ihrem eigenen OIDC-Anbieter authentifiziert wurden, finden Sie unter Benutzern Zugriff auf Kubernetes mit einem externen OIDC-Anbieter gewähren.

So zeigen Sie von Amazon EKS erstellte Identitäten mit dem kubectl an

Führen Sie den Region aus, die Sie anzeigen möchten. Alle zurückgegebenen Ressourcen, denen eks vorangestellt ist, wurden von Amazon EKS erstellt. Zusätzlich zu den Ressourcen, die in der Ausgabe der Befehle zurückgegeben werden, sind die folgenden speziellen Benutzeridentitäten in Ihrem Cluster vorhanden, obwohl sie in der Konfiguration des Clusters nicht sichtbar sind:

  • eks:cluster-bootstrap – Wird für kubectl-Vorgänge während des Cluster-Bootstraps verwendet.

  • eks:support-engineer – Wird für Cluster-Management-Operationen verwendet.

ClusterRolesClusterRoles sind auf Ihren Cluster beschränkt, d. h. jede Berechtigung, die einer Rolle gewährt wird, gilt für Ressourcen in jedem -Namespace des Clusters.

Der folgende Befehl gibt alle von Amazon EKS erstellten Kubernetes ClusterRoles in Ihrem Cluster zurück.

kubectl get clusterroles | grep eks

Zusätzlich zu dem in der Ausgabe zurückgegebenen ClusterRoles, dem etwas vorangestellt ist, sind die folgenden ClusterRoles vorhanden.

Um die Spezifikation für ein ClusterRole anzuzeigen, ersetzen Sie eks:k8s-metrics im folgenden Befehl durch eine ClusterRole, die in der Ausgabe des vorherigen Befehls zurückgegeben wird. Das folgende Beispiel gibt die Spezifikation für die eks:k8s-metrics ClusterRole zurück.

kubectl describe clusterrole eks:k8s-metrics

Eine Beispielausgabe sieht wie folgt aus.

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]

ClusterRoleBindingsClusterRoleBindings sind auf Ihren Cluster beschränkt.

Der folgende Befehl gibt alle von Amazon EKS erstellten Kubernetes ClusterRoleBindings in Ihrem Cluster zurück.

kubectl get clusterrolebindings | grep eks

Zusätzlich zu dem in der Ausgabe zurückgegebenen ClusterRoleBindings, sind die folgenden ClusterRoleBindings vorhanden.

Um die Spezifikation für ein ClusterRoleBinding anzuzeigen, ersetzen Sie eks:k8s-metrics im folgenden Befehl durch eine ClusterRoleBinding, die in der Ausgabe des vorherigen Befehls zurückgegeben wird. Das folgende Beispiel gibt die Spezifikation für die eks:k8s-metrics ClusterRoleBinding zurück.

kubectl describe clusterrolebinding eks:k8s-metrics

Eine Beispielausgabe sieht wie folgt aus.

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

RollenRoles sind auf einen Kubernetes-Namespace beschränkt. Alle mit Roles erstellten Amazon EKS sind auf den kube-system-Namespace beschränkt.

Der folgende Befehl gibt alle von Amazon EKS erstellten Kubernetes Roles in Ihrem Cluster zurück.

kubectl get roles -n kube-system | grep eks

Um die Spezifikation für ein Role anzuzeigen, ersetzen Sie eks:k8s-metrics im folgenden Befehl durch den Namen eines Role, das in der Ausgabe des vorherigen Befehls zurückgegeben wird. Das folgende Beispiel gibt die Spezifikation für die eks:k8s-metrics Role zurück.

kubectl describe role eks:k8s-metrics -n kube-system

Eine Beispielausgabe sieht wie folgt aus.

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 sind auf einen Kubernetes-Namespace beschränkt. Alle mit RoleBindings erstellten Amazon EKS sind auf den kube-system-Namespace beschränkt.

Der folgende Befehl gibt alle von Amazon EKS erstellten Kubernetes RoleBindings in Ihrem Cluster zurück.

kubectl get rolebindings -n kube-system | grep eks

Um die Spezifikation für ein RoleBinding anzuzeigen, ersetzen Sie eks:k8s-metrics im folgenden Befehl durch eine RoleBinding, die in der Ausgabe des vorherigen Befehls zurückgegeben wird. Das folgende Beispiel gibt die Spezifikation für die eks:k8s-metrics RoleBinding zurück.

kubectl describe rolebinding eks:k8s-metrics -n kube-system

Eine Beispielausgabe sieht wie folgt aus.

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