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
Empfohlene Kontrollen
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.disableMutationauf ein,truewenn Sie die Funktion zum Entfernen von Verunreinigungen nicht verwenden. -
Wird verwendet
kubectl 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-Sicherheitsstandardsbaseline 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
getoder ruft Secrets auflist
Weitere Informationen finden Sie unter Protokolle der Kontrollebene an CloudWatch Logs senden.