Zugriffssteuerung

In diesem Dokument werden die Unterschiede zwischen der Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) und der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes in Google Kubernetes Engine beschrieben, damit Sie den Zugriff auf Ressourcen in Ihrem Projekt verwalten können. In diesem Dokument wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:

Dieses Dokument richtet sich an Sicherheitsexperten, die den Zugriff auf Berechtigungen steuern und die Unterschiede und Überschneidungen zwischen IAM und RBAC verstehen möchten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir inGoogle Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Zugriff auf GKE-Ressourcen verwalten

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 die darin enthaltenen Objekttypen. 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. Wenn sie einem Hauptkonto zugewiesen wird, kann dieses Hauptkonto auf eine oder mehrere Google Cloud Ressourcen zugreifen. Weitere Informationen zu Identitäten, Rollen und anderer IAM-Terminologie finden Sie in der IAM-Übersicht.

In GKE kann ein Hauptkonto Folgendes sein:

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

Weitere Informationen zur Verwendung von IAM zur Zugriffssteuerung in GKE finden Sie unter IAM-Zulassungsrichtlinien erstellen.

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:

Eine Liste der verfügbaren vordefinierten IAM-Rollen finden Sie unter Vordefinierte GKE-Rollen.

GKE verwendet IAM-Dienstkonten, die an Ihre Knoten angehängt sind, um Systemaufgaben wie Logging und Monitoring auszuführen. Diese Knoten-Dienstkonten müssen in Ihrem Projekt mindestens die Rolle Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) haben. Standardmäßig verwendet GKE das Compute Engine-Standarddienstkonto, das automatisch in Ihrem Projekt erstellt wird, als Knotendienstkonto.

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