Wenn Sie ein Google Cloud-Projekt erstellen, sind Sie der einzige Nutzer des Projekts. Andere Nutzer können standardmäßig weder auf Ihr Projekt noch auf dessen Ressourcen zugreifen. Dies gilt auch für Google Kubernetes Engine-Ressourcen (GKE). GKE unterstützt mehrere Optionen zum Verwalten des Zugriffs auf Ressourcen in Ihrem Projekt und dessen Clustern mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC).
Die Mechanismen haben teilweise dieselben Funktionen, gelten jedoch für unterschiedliche Ressourcentypen. Diese werden in den weiteren Abschnitten im Einzelnen erläutert. Vorab eine kurze Übersicht:
Kubernetes RBAC ist in Kubernetes eingebunden und gewährt Objekten in Kubernetes-Clustern detaillierte Berechtigungen. Berechtigungen sind im Cluster als ClusterRole- oder Role-Objekte vorhanden. Mit RoleBinding-Objekten werden RollenKubernetes-Nutzer, Google Cloud-Nutzer, IAM-Dienstkonten oderGoogle-Gruppen.
Wenn Sie überwiegend GKE verwenden und für jedes Objekt und jeden Vorgang innerhalb des Clusters detaillierte Berechtigungen benötigen, ist Kubernetes RBAC die beste Wahl.
IAM verwaltet Google Cloud-Ressourcen, einschließlich Cluster, und Objekttypen in Clustern. Berechtigungen werden den IAM-Hauptkonten zugewiesen.
Zum Erteilen von Berechtigungen für bestimmte Kubernetes-Objekte in IAM gibt es keinen Mechanismus. Sie können beispielsweise einen Nutzer allgemein zum Erstellen von CustomResourceDefinitions (CRDs) berechtigen, aber die Berechtigung nicht auf die Erstellung einer bestimmten CustomResourceDefinition oder eines speziellen Namespace oder Clusters im Projekt begrenzen. Eine IAM-Rolle gewährt Berechtigungen für alle Cluster im Projekt bzw. bei Anwendung der Rolle auf Ordnerebene für alle Cluster in allen untergeordneten Projekten.
Wenn Sie mehrere Google Cloud-Komponenten verwenden und keine speziellen Berechtigungen für Kubernetes verwalten müssen, ist IAM eine gute Wahl.
Kubernetes RBAC
Kubernetes unterstützt die rollenbasierte Zugriffssteuerung (RBAC). Sie können dadurch innerhalb des Kubernetes-Clusters Rollen mit detaillierten Berechtigungen erstellen. Eine Rolle kann für ein bestimmtes Kubernetes-Objekt oder einen Kubernetes-Objekttyp festgelegt werden. Sie definiert, welche Aktionen bzw. "Verben" der Rolle in Bezug auf dieses Objekt erteilt werden. RoleBinding-Objekte sind ebenfalls Kubernetes-Objekte. Damit werden Nutzern Rollen zugewiesen. Ein GKE-Nutzer kann Folgendes sein:
- Google Cloud-Nutzer
- IAM-Dienstkonto
- Kubernetes-Dienstkonto
- Google Workspace-Nutzer
- Google Workspace-Google-Gruppe
- Nutzer, die mit X509-Clientzertifikaten authentifiziert wurden
Weitere Informationen erhalten Sie unter Rollenbasierte Zugriffssteuerung.
IAM
Mit IAM können Sie Hauptkonten Rollen zuweisen. Eine Rolle ist eine Sammlung von Berechtigungen. Sie steuert den Zugriff des jeweiligen Hauptkontos auf eine oder mehrere Google Cloud-Ressourcen. Sie können die folgenden Arten von Rollen verwenden:
- Einfache Rollen bieten grobe Berechtigungen für den Inhaber, Mitbearbeiter und Betrachter.
- Vordefinierte Rollen wie etwa die vordefinierten Rollen für GKE gewähren detailliertere Zugriffsrechte als einfache Rollen und werden für viele gängige Anwendungsfälle genutzt.
- Benutzerdefinierte Rollen dienen zum Erstellen individueller Kombinationen von Berechtigungen.
Ein Hauptkonto kann Folgendes sein:
- Nutzerkonto
- Dienstkonto
- Google Workspace-Google-Gruppe
- Google Workspace-Domain
- Cloud Identity-Domain
IAM-Richtlinientypen
IAM unterstützt die folgenden Richtlinientypen:
- Richtlinien zulassen: Weisen Sie Hauptkonten Rollen zu. Weitere Informationen finden Sie unter Zulassungsrichtlinie.
- Ablehnungsrichtlinien: Verhindern, dass Hauptkonten bestimmte IAM-Berechtigungen verwenden, unabhängig von den Rollen, die diesen Hauptkonten gewährt wurden. Weitere Informationen finden Sie unter Ablehnungsrichtlinien.
Verwenden Sie Ablehnungsrichtlinien, um bestimmte Hauptkonten daran zu hindern, bestimmte Aktionen in Ihrem Projekt, Ordner oder Ihrer Organisation auszuführen, auch wenn eine IAM-Zulassungsrichtlinie diesen Hauptkonten eine Rolle mit den entsprechenden Berechtigungen zuweist.
IAM-Empfehlungen
Erwägen Sie die Verwendung der folgenden vordefinierten IAM-Rollen für gängige Szenarien:
- Kubernetes Engine-Clusterbetrachter (
roles/container.clusterViewer
): DevOps, Entwickler und Anwendungsentwickler, die nur eine Verbindung zum Cluster herstellen müssen. - Kubernetes Engine-Clusteradministrator (
roles/container.clusterAdmin
): Plattformadministratoren und Clusteroperatoren, die einen oder mehrere Cluster in einem Google Cloud-Projekt verwalten müssen.
Eine Liste der verfügbaren vordefinierten IAM-Rollen finden Sie unter Vordefinierte GKE-Rollen.
Erwägen Sie außerdem, ein benutzerdefiniertes IAM-Dienstkonto zu erstellen, das Ihre Knoten anstelle des Compute Engine-Standarddienstkontos verwenden sollen. Gewähren Sie dem benutzerdefinierten Dienstkonto die Mindestberechtigungen, die für das Funktionieren von GKE erforderlich sind. Eine Anleitung finden Sie unter IAM-Dienstkonten mit geringsten Berechtigungen verwenden.
IAM-Interaktion mit Kubernetes RBAC
IAM und Kubernetes RBAC unterstützen gemeinsam den Zugriff auf Ihren Cluster. RBAC steuert den Zugriff auf der Cluster- und Namespace-Ebene, während IAM auf Projektebene arbeitet. Eine Entität muss auf beiden Ebenen ausreichende Berechtigungen haben, um mit Ressourcen in Ihrem Cluster arbeiten zu können.
Nächste Schritte
- GKE-Sicherheitsübersicht
- Kubernetes RBAC verwenden
- IAM-Richtlinien für GKE erstellen
- Informationen zur Verwendung von IAM Conditions für Load-Balancer