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 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 Rollentypen verwenden:

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:

  • Zulassungsrichtlinien: Weisen Sie Hauptkonten Rollen zu. Weitere Informationen finden Sie unter Zulassungsrichtlinie.
  • Ablehnungsrichtlinien: Verhindern Sie, dass Hauptkonten bestimmte IAM-Berechtigungen verwenden, unabhängig von den Rollen, die diesen Hauptkonten zugewiesen sind. 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 zuweist, die die entsprechenden Berechtigungen enthält.

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