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.
Verwaltung des Cluster-Zugriffs
Effektives Zugriffsmanagement ist entscheidend für die Aufrechterhaltung der Sicherheit und Integrität Ihrer Amazon EKS-Cluster. In diesem Handbuch werden verschiedene Optionen für das EKS-Zugriffsmanagement untersucht, wobei der Schwerpunkt auf der Verwendung von AWS IAM Identity Center (früher AWS SSO) liegt. Wir werden verschiedene Ansätze vergleichen, ihre Kompromisse erörtern und bekannte Einschränkungen und Überlegungen hervorheben.
EKS-Zugriffsverwaltungsoptionen
Anmerkung
ConfigMapDie basierte Zugriffsverwaltung (aws-auth ConfigMap) ist veraltet und wurde durch die Cluster Access Management (CAM) -API ersetzt. Implementieren Sie für neue EKS-Cluster die CAM-API zur Verwaltung des Clusterzugriffs. Migrieren Sie für bestehende Cluster, die aws-auth verwenden ConfigMap, auf die CAM-API.
Option 1: AWS IAM Identity Center mit Cluster Access Management (CAM) -API
-
Zentralisierte Benutzer- und Berechtigungsverwaltung
-
Integration mit bestehenden Identitätsanbietern (z. B. Microsoft AD, Okta PingId und mehr)
-
Die CAM-API verwendet Access Entries, um AWS IAM-Prinzipale (Benutzer oder Rollen) mit dem EKS-Cluster zu verknüpfen. Diese Einträge funktionieren mit den verwalteten Identitäten von IAM Identity Center und ermöglichen es Administratoren, den Clusterzugriff für in Identity Center definierte Benutzer und Gruppen zu kontrollieren.
Ablauf der EKS-Cluster-Authentifizierung:

-
Principals (menschliche Benutzer) oder automatisierte Prozesse authentifizieren sich über AWS IAM, indem sie die entsprechenden AWS-Kontoberechtigungen vorlegen. In diesem Schritt werden sie dem entsprechenden AWS IAM-Prinzipal (Rolle oder Benutzer) zugeordnet.
-
Als Nächstes ordnet ein EKS-Zugriffseintrag diesen IAM-Prinzipal einem Kubernetes-RBAC-Prinzipal (Benutzer oder Gruppe) zu, indem eine entsprechende Zugriffsrichtlinie definiert wird, die nur Kubernetes-Berechtigungen enthält.
-
Wenn ein Kubernetes-Endbenutzer versucht, auf einen Cluster zuzugreifen, wird seine Authentifizierungsanfrage von aws-iam-authenticator oder der AWS EKS-CLI verarbeitet und anhand des Clusterkontextes in der kubeconfig-Datei validiert.
-
Schließlich überprüft der EKS-Autorisierer die mit dem Zugriffseintrag des authentifizierten Benutzers verknüpften Berechtigungen und gewährt oder verweigert den Zugriff entsprechend.
-
Die API verwendet Amazon EKS-spezifische Zugriffsrichtlinien, um die Autorisierungsebene für jeden Access-Eintrag zu definieren. Diese Richtlinien können Rollen und Berechtigungen zugeordnet werden, die in IAM Identity Center eingerichtet wurden, wodurch eine konsistente Zugriffskontrolle für alle AWS-Services und EKS-Cluster gewährleistet wird.
-
Vorteile gegenüber einer ConfigMap basierten Zugriffsverwaltung:
-
Geringeres Risiko von Fehlkonfigurationen: Direktes API-basiertes Management beseitigt häufige Fehler im Zusammenhang mit manueller Bearbeitung. ConfigMap Dies trägt dazu bei, versehentliche Löschungen oder Syntaxfehler zu verhindern, die Benutzer vom Cluster ausschließen könnten.
-
Verbessertes Prinzip der geringsten Rechte: Macht die Cluster-Admin-Rechte für die Identität des Clustererstellers überflüssig und ermöglicht eine detailliertere und angemessenere Zuweisung von Berechtigungen. Sie können sich dafür entscheiden, diese Berechtigung für Break-Glass-Anwendungsfälle hinzuzufügen.
-
Verbessertes Sicherheitsmodell: Bietet eine integrierte Überprüfung von Zugriffseinträgen, bevor sie angewendet werden. Darüber hinaus bietet es eine engere Integration mit AWS IAM für die Authentifizierung.
-
Optimierter Betrieb: Bietet eine intuitivere Möglichkeit, Berechtigungen mithilfe von AWS-nativen Tools zu verwalten.
Bewährte Methoden:
-
Verwenden Sie AWS Organizations, um mehrere Konten zu verwalten und Richtlinien zur Servicekontrolle anzuwenden (SCPs).
-
Implementieren Sie das Prinzip der geringsten Rechte, indem Sie spezifische Berechtigungssätze für verschiedene EKS-Rollen (z. B. Administrator, Entwickler, schreibgeschützt) erstellen.
-
Verwenden Sie die attributebasierte Zugriffskontrolle (ABAC), um Pods basierend auf Benutzerattributen dynamisch Berechtigungen zuzuweisen.
-
Prüfen und überprüfen Sie die Zugriffsberechtigungen regelmäßig.
Überlegungen/Einschränkungen:
-
Von Identity Center ARNs generierte Rollen haben zufällige Suffixe, was ihre Verwendung in statischen Konfigurationen erschwert.
-
Eingeschränkte Unterstützung für detaillierte Berechtigungen auf Kubernetes-Ressourcenebene. Für benutzerdefinierte Kubernetes-RBAC-Rollen ist eine zusätzliche Konfiguration erforderlich. Erwägen Sie, neben Kubernetes-nativem RBAC auch Kyverno für die erweiterte Rechteverwaltung in EKS-Clustern zu verwenden.
Option 2: AWS IAM ist Users/Roles Kubernetes-Gruppen zugeordnet
Vorteile:
-
Präzise Kontrolle über IAM-Berechtigungen.
-
Vorhersehbare und statische Rolle ARNs
Nachteile:
-
Erhöhter Verwaltungsaufwand für Benutzerkonten
-
Mangel an zentralisiertem Identitätsmanagement
-
Potenzielle Verbreitung von IAM-Entitäten
Bewährte Verfahren:
-
Verwenden Sie IAM-Rollen anstelle von IAM-Benutzern, um die Sicherheit und Verwaltbarkeit zu verbessern
-
Implementieren Sie eine Benennungskonvention für Rollen, um Konsistenz und einfache Verwaltung zu gewährleisten
-
Verwenden Sie die IAM-Richtlinienbedingungen, um den Zugriff anhand von Tags oder anderen Attributen einzuschränken.
-
Wechseln Sie die Zugriffsschlüssel regelmäßig und überprüfen Sie die Berechtigungen.
Überlegungen/Einschränkungen:
-
Probleme mit der Skalierbarkeit bei der Verwaltung einer großen Anzahl von Benutzern oder Rollen
-
Keine integrierten Single-Sign-On-Funktionen
Option 3: OIDC-Anbieter
Vorteile:
-
Integration mit bestehenden Identitätsmanagementsystemen
-
Reduzierter Verwaltungsaufwand für Benutzerkonten
Nachteile:
-
Zusätzliche Komplexität der Konfiguration
-
Potenziell erhöhte Latenz bei der Authentifizierung
-
Abhängigkeit von einem externen Identitätsanbieter
Bewährte Verfahren:
-
Konfigurieren Sie den OIDC-Anbieter sorgfältig, um eine sichere Token-Validierung zu gewährleisten.
-
Verwenden Sie kurzlebige Token und implementieren Sie Mechanismen zur Token-Aktualisierung.
-
Prüfen und aktualisieren Sie regelmäßig die OIDC-Konfigurationen.
In diesem Leitfaden finden Sie eine Referenzimplementierung zur Integration externer Single Sign-On-Anbieter mit Amazon EKS
Überlegungen/Einschränkungen:
-
Eingeschränkte native Integration mit AWS-Services im Vergleich zu IAM.
-
Die Aussteller-URL des OIDC-Anbieters muss öffentlich zugänglich sein, damit EKS die Signaturschlüssel ermitteln kann.
AWS EKS Pod Identity im Vergleich zu IRSA für Workloads
Amazon EKS bietet zwei Möglichkeiten, AWS IAM-Berechtigungen für Workloads zu gewähren, die in Amazon EKS-Clustern ausgeführt werden: IAM-Rollen für Dienstkonten (IRSA) und EKS-Pod-Identitäten.
Sowohl IRSA- als auch EKS-Pod-Identitäten bieten die Vorteile des Zugriffs mit den geringsten Rechten, der Isolierung von Anmeldeinformationen und der Überprüfbarkeit, aber EKS Pod Identity ist die empfohlene Methode, um Berechtigungen für Workloads zu erteilen.
Ausführliche Anleitungen zu Identität und Anmeldeinformationen für EKS-Pods finden Sie im Abschnitt Identitäten und Anmeldeinformationen unter Bewährte Sicherheitsmethoden.
Empfehlung
Kombinieren Sie IAM Identity Center mit der CAM-API
-
Vereinfachtes Management: Durch die Verwendung der Cluster Access Management API in Verbindung mit IAM Identity Center können Administratoren den EKS-Clusterzugriff zusammen mit anderen AWS-Services verwalten, sodass sie nicht zwischen verschiedenen Schnittstellen wechseln oder ConfigMaps manuell bearbeiten müssen.
-
Verwenden Sie Zugriffseinträge, um die Kubernetes-Berechtigungen von IAM-Prinzipalen von außerhalb des Clusters zu verwalten. Sie können den Zugriff auf den Cluster mithilfe der EKS-API, der AWS-Befehlszeilenschnittstelle, AWS SDKs CloudFormation, AWS und der AWS-Managementkonsole hinzufügen und verwalten. Für die Benutzerverwaltung können also die gleichen Tools verwendet werden wie für die Clustererstellung.
-
Granulare Kubernetes-Berechtigungen können angewendet werden, indem Kubernetes-Benutzern oder -Gruppen IAM-Prinzipalen zugeordnet werden, die mit SSO-Identitäten über Zugriffseinträge und Zugriffsrichtlinien verknüpft sind.
-
Folgen Sie zunächst den Anweisungen Authentifizierungsmodus zur Verwendung von Zugriffseinträgen ändern und anschließend Vorhandene aws-auth-Einträge zu Zugriffseinträgen migrieren. ConfigMap