Übersicht über die rollenbasierte Zugriffssteuerung

Kf bietet eine Reihe von Kubernetes-Rollen, mit denen mehrere Teams Kf-Cluster gemeinsam nutzen können. Auf dieser Seite werden die Rollen und Best Practices für deren Verwendung beschrieben.

Wann werden Kf-Rollen verwendet?

Mit Kf-Rollen können mehrere Teams einen Kubernetes-Cluster mit aktiviertem Kf teilen. Die Rollen ermöglichen den Zugriff auf einzelne Kf Spaces.

Verwenden Sie Kf-Rollen, um den Zugriff auf einen Cluster freizugeben, wenn Folgendes zutrifft:

  • Der Cluster wird von vertrauenswürdigen Teams verwendet.
  • Für Arbeitslasten im Cluster gelten dieselben Annahmen in Bezug auf das Sicherheitsniveau der Umgebung.
  • Der Cluster befindet sich in einem Google Cloud-Projekt, das streng kontrolliert wird.

Kf-Rollen tun Folgendes nicht:

Kf-Rollen

In folgenden Abschnitten werden die von Kf bereitgestellten Kubernetes RBAC-Rollen und ihre Interaktion mit dem Kubernetes Engine (GKE) IAM von Google beschrieben.

Vordefinierte Rollen

Kf bietet mehrere vordefinierte Kubernetes-Rollen, mit denen Sie Zugriff auf verschiedene Subjekte mit unterschiedlichen Rollen gewähren können. Jede vordefinierte Rolle kann an ein Thema innerhalb eines Kubernetes-Namespace gebunden werden, der von einem Kf-Bereich verwaltet wird.

Wenn ein Subjekt an eine Rolle in einem Kubernetes-Namespace gebunden ist, ist sein Zugriff auf Objekte beschränkt, die im Namespace vorhanden sind und mit zu den in der Rolle aufgeführten Berechtigungen passen. In Kf sind verschiedene Ressourcen auf Clusterebene definiert. Kf achtet auf Änderungen an Subjekten im Namespace und gewährt zusätzliche, eingeschränkte Rollen im Clusterbereich.

Rolle Titel Beschreibung Umfang
space-auditor Bereichs-Auditor Gewährt Lesezugriff auf einen Bereich. Space
space-developer Bereichsentwickler Ermöglicht Anwendungsentwicklern, Anwendungen in einem Bereich bereitzustellen und zu verwalten. Space
space-manager Space-Manager Ermöglicht die Administration und die Möglichkeit, Prüfer, Entwickler und Manager in einem Bereich (Space) zu verwalten. Space
SPACE_NAME-manager Dynamischer Space-Manager Ermöglicht Schreibzugriff auf ein einzelnes Space-Objekt, das automatisch allen Subjekten mit der Rolle space-manager im benannten Bereich gewährt wird. Cluster
kf-cluster-reader Clusterleser Gewährt Lesezugriff auf clusterbezogene Kf-Objekte, die automatisch allen space-auditor-, space-developer- und space-manager-Rollen zugewiesen werden. Cluster

Informationen zu den Richtlinienregeln für die einzelnen vordefinierten Rollen finden Sie in der Referenzdokumentation zu Kf-Rollen.

IAM-Rollen

Kf-Rollen ermöglichen die Zugriffssteuerung für Objekte in einem Kubernetes-Cluster. Jeder Person muss auch eine IAM-Rolle zur Authentifizierung beim Cluster zugewiesen werden:

  • Plattformadministratoren muss die IAM-Rolle roles/container.admin zugewiesen werden. Dadurch können sie Kf installieren, aktualisieren und löschen sowie clusterbezogene Kf-Objekte wie Spaces oder ClusterServiceBrokers erstellen und löschen.

  • Kf-Endnutzern sollte die IAM-Rolle roles/container.viewer zugewiesen werden. Mit dieser Rolle können sie sich bei einem Cluster mit eingeschränkten Berechtigungen authentifizieren, die mithilfe von Kf-Rollen erweitert werden können.

IAM bietet zusätzliche vordefinierte Rollen für GKE zur Lösung komplexerer Anwendungsfälle:

Role Title Description Lowest resource
roles/container.admin Kubernetes Engine Admin

Provides access to full management of clusters and their Kubernetes API objects.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.cloudKmsKeyUser Kubernetes Engine KMS Crypto Key User Allow the Kubernetes Engine service agent in the cluster project to call KMS with user provided crypto keys to sign payloads.
roles/container.clusterAdmin Kubernetes Engine Cluster Admin

Provides access to management of clusters.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterViewer Kubernetes Engine Cluster Viewer

Provides access to get and list GKE clusters.

roles/container.defaultNodeServiceAccount Kubernetes Engine Default Node Service Account Least privilege role to use as the default service account for GKE Nodes.
roles/container.developer Kubernetes Engine Developer

Provides access to Kubernetes API objects inside clusters.

  • Project
roles/container.hostServiceAgentUser Kubernetes Engine Host Service Agent User

Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project.

roles/container.viewer Kubernetes Engine Viewer

Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects.

  • Project

Cloud Foundry-Rollen zu Kf zuordnen

Cloud Foundry-Rollen ähneln den vordefinierten Rollen von Kf. Cloud Foundry bietet zwei grundsätzliche Rollentypen:

  • Rollen, die vom Benutzerkonto- und Authentifizierungssystem (UAA, User Account and Authentication)-Subsystem zugewiesen wurden und differenzierte OAuth-Bereiche bereitstellen, die für alle Cloud Foundry API-Endpunkte gültig sind.
  • Rollen, die in der Cloud Controller API (CAPI) gewährt wurden und einen detaillierten Zugriff auf API-Ressourcen ermöglichen

UAA-Rollen

Die von der UAA bereitgestellten Rollen ähneln den projektbezogenen IAM-Rollen:

  • Admin-Nutzer in Cloud Foundry können für alle Cloud Foundry-Organisationen und -Bereiche administrative Aktivitäten ausführen. Die Rolle ist der IAM-Rolle roles/container.admin sehr ähnlich.
  • Nutzer mit Administrator-Lesezugriff in Cloud Foundry können auf alle Cloud Foundry API-Endpunkte zugreifen. Die Rolle ist der IAM-Rolle roles/container.admin sehr ähnlich.
  • Globale Prüfer von Cloud Foundry haben Lesezugriff auf alle Cloud Foundry API-Endpunkte mit Ausnahme von Secrets. Es gibt keine entsprechende IAM-Rolle, aber Sie können eine benutzerdefinierte Rolle mit ähnlichen Berechtigungen erstellen.

Cloud Controller API-Rollen

Die CAPI-Rollen entsprechen den in einem Cluster Mitgliedern zugewiesenen Kf-Rollen, die die IAM-Rolle roles/container.viewer für das eigene Projekt haben:

  • Space-Prüfer in Cloud Foundry haben Lesezugriff auf Ressourcen in einem CF-Bereich. Die Rolle ist der Kf-Rolle space-auditor sehr ähnlich.
  • Space-Entwickler in Cloud Foundry haben die Möglichkeit, Anwendungen in einem CF-Bereich bereitzustellen und zu verwalten. Die Rolle ist der Kf-Rolle space-developer sehr ähnlich.
  • Space Manager in Cloud Foundry können Einstellungen für den CF-Bereich ändern und Nutzern Rollen zuweisen. Die Rolle ist der Kf-Rolle space-manager sehr ähnlich.

Nächste Schritte