Zugriffssteuerung


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 -Kubernetes-Nutzern, Google Cloud-Nutzern, IAM-Dienstkonten oder Google Groups Rollen erteilt.

    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 Rollen definieren und diese Hauptkonten zuweisen. Eine Rolle ist eine Sammlung von Berechtigungen. Sie steuert den Zugriff des jeweiligen Hauptkontos auf eine oder mehrere Google Cloud-Ressourcen. Rollen lassen sich grob in drei Kategorien unterteilen:

Ein Hauptkonto kann Folgendes sein:

  • Nutzerkonto
  • Dienstkonto
  • Google Workspace-Google-Gruppe
  • Google Workspace-Domain
  • Cloud Identity-Domain

Mit einer IAM-Richtlinie werden einem oder mehreren Google Cloud-Hauptkonten eine Reihe von Berechtigungen zugewiesen.

Sie können mithilfe von IAM auch Dienstkonten erstellen und konfigurieren. Dies sind Google Cloud-Konten, die Ihrem Projekt zugewiesen sind und in Ihrem Namen Aufgaben ausführen können. Rollen und Berechtigungen werden Dienstkonten auf die gleiche Weise wie menschlichen Nutzern zugewiesen.

Dienstkonten bieten auch andere Funktionen. Weitere Informationen finden Sie unter IAM-Richtlinien erstellen.

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.

Darüber hinaus sollten Sie ein benutzerdefiniertes IAM-Dienstkonto erstellen, das Ihre Knoten anstelle des Compute Engine-Standarddienstkontos verwenden sollen. Gewähren Sie dem benutzerdefinierten Dienstkonto die Mindestberechtigungen, die GKE benötigt, damit GKE funktioniert. 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