View a markdown version of this page

Kubernetes RBAC in Amazon EKS absichern - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Kubernetes RBAC in Amazon EKS absichern

Die rollenbasierte Zugriffskontrolle (RBAC) von Kubernetes steuert, welche Aktionen Identitäten innerhalb eines Clusters ausführen können. Viele Clusterkomponenten, darunter CSI-Treiber und andere Add-Ons, die als DaemonSets installiert wurden, benötigen umfassende Zugriffsrechte, um zu funktionieren. Durch die Überprüfung und Festlegung des Gültigkeitsbereichs dieser Berechtigungen wird der potenzielle Umfang eines unbeabsichtigten Zugriffs reduziert.

In diesem Thema werden die Überlegungen zu Berechtigungen für gängige Clusterkomponenten und die empfohlenen Kontrollen beschrieben.

DaemonSet Berechtigungen für Dienstkonten

DaemonSet Pods werden auf jedem Knoten im Cluster ausgeführt, sodass ihre Dienstkonto-Token und die RBAC-Berechtigungen, die diese Token gewähren, auf jedem Knoten vorhanden sind.

Ein nicht autorisierter Prozess auf einem Knoten kann möglicherweise auf die Dienstkonto-Token anderer Pods zugreifen, die auf demselben Knoten ausgeführt werden, einschließlich DaemonSet Pods. Die RBAC-Berechtigungen, die DaemonSet Dienstkonten gewährt werden, sind auf jedem Knoten im Cluster identisch.

Zu den Komponenten, die üblicherweise eingesetzt werden, gehören DaemonSets :

  • CSI-Knotentreiber (ebs-csi-node,efs-csi-node,mountpoint-s3-csi-node)

  • Das Amazon VPC CNI-Plugin () aws-node

  • kube-proxy

Wenn ein DaemonSet Pod über AWS IAM-Anmeldeinformationen über EKS Pod Identity oder IAM Roles for Service Accounts (IRSA) verfügt, kann ein Prozess, der Zugriff von außerhalb seines Containers auf demselben Knoten erhält, auch auf diese Anmeldeinformationen zugreifen. Dadurch wird der Wirkungsbereich über Kubernetes RBAC hinaus auf alle AWS API-Berechtigungen ausgedehnt, die der IAM-Rolle eines Benutzers gewährt wurden. DaemonSet

Wichtig

Gehen Sie bei der Überprüfung der Berechtigungen davon aus, dass die Kubernetes-RBAC-Berechtigungen und die IAM-Berechtigungen jedes DaemonSet Dienstkontos von jedem Knoten im Cluster aus zugänglich sind.

RBAC-Geltungsbereich des CSI-Treibers

CSI-Treiber verfügen in der Regel über umfangreiche RBAC-Zuschüsse, da sie mit Knoten, persistenten Volumes und Speichern interagieren. APIs

Berechtigungen für Knotenobjekte

CSI-Treiber benötigen möglicherweise RBAC-Berechtigungen, um Knotenobjekte zu ändern, um Funktionen wie das Entfernen von Verunreinigungen oder andere Aufgaben zur Knotenverwaltung zu unterstützen. Aufgrund von Kubernetes-RBAC-Einschränkungen gelten diese Berechtigungen für alle Node-Objekte im Cluster, nicht nur für den lokalen Knoten, auf dem der Treiber ausgeführt wird.

Für den EBS-CSI-Treiber bietet das Helm-Diagramm einen Parameter (node.serviceAccount.disableMutation), der dem Dienstkonto die Berechtigung zum Ändern des Knotens entzieht. ebs-csi-node Wenn Sie diese Option aktivieren, wird die Funktion zum Entfernen von Verunreinigungen deaktiviert.

Offenlegung von Dienstkonto-Token

CSI-Treiber-Pods können projizierte Dienstkonto-Tokens zur Authentifizierung verwenden. Auf einem Knoten, auf den ein nicht autorisierter Prozess Zugriff von außerhalb seines Containers erlangt hat, kann auf diese Token über das Container-Dateisystem oder die Kubelet-API zugegriffen werden. Wenn das Dienstkonto über EKS Pod Identity oder IRSA auch einer IAM-Rolle zugeordnet ist, kann ein offengelegtes Token verwendet werden, um IAM-Anmeldeinformationen abzurufen. AWS

Richten Sie RBAC auf die geringsten Rechte ein

  • Überprüfen Sie die ClusterRoles an CSI gebundenen Treiber- und DaemonSet Dienstkonten. Entfernen Sie Berechtigungen, die für Ihre Workloads nicht erforderlich sind.

  • Stellen Sie den EBS-CSI-Treiber node.serviceAccount.disableMutation auf ein, true wenn Sie die Funktion zum Entfernen von Verunreinigungen nicht verwenden.

  • Wird verwendetkubectl auth can-i --list --as=system:serviceaccount:NAMESPACE:SERVICE_ACCOUNT, um effektive Berechtigungen zu überprüfen.

Setzen Sie die Pod-Sicherheitsstandards durch

Wenden Sie die Kubernetes-Pod-Sicherheitsstandards mithilfe des integrierten Pod Security Admission Controllers oder einer Policy-Engine an. Erzwingen Sie mindestens das baseline Profil clusterweit und das Profil für restricted Workload-Namespaces. Dadurch wird die Möglichkeit eingeschränkt, privilegierte Container außerhalb von System-Namespaces zu erstellen.

Netzwerkrichtlinien verwenden

Wenden Sie Netzwerkrichtlinien an, um den Ausgang von CSI-Treibern und DaemonSet Pods nur auf die Endpunkte zu beschränken, die sie benötigen (z. B. den Kubernetes-API-Server und die Dienstendpunkte). AWS Dadurch wird der Umfang der möglichen Maßnahmen reduziert.

Überwachen Sie die RBAC-Aktivität

Aktivieren Sie die Kubernetes-Auditprotokollierung und überwachen Sie unerwartete API-Aufrufe von Dienstkonten. DaemonSet Suchen Sie nach:

  • Knotenänderungen von CSI-Treiberdienstkonten

  • Pod-Erstellung in System-Namespaces

  • Ungewöhnlich get oder ruft Secrets auf list

Weitere Informationen finden Sie unter Protokolle der Kontrollebene an CloudWatch Logs senden.