Contrôle des accès basé sur les rôles

Kf fournit un ensemble de rôles Kubernetes qui permettent à plusieurs équipes de partager un cluster Kf. Cette page décrit les rôles et les bonnes pratiques à suivre lors de leur utilisation.

Quand utiliser les rôles Kf ?

Les rôles Kf permettent à plusieurs équipes de partager un cluster Kubernetes sur lequel Kf est installé. Les rôles permettent d'accéder à des espaces Kf.

Utilisez les rôles Kf pour partager l'accès à un cluster si les conditions suivantes sont remplies :

  • Le cluster est utilisé par les équipes de confiance.
  • Les charges de travail sur le cluster partagent les mêmes hypothèses concernant le niveau de sécurité fourni par l'environnement.
  • Le cluster existe dans un projet Google Cloud qui est étroitement contrôlé.

Les rôles Kf ne serviront pas à :

Rôles Kf

Les sections suivantes décrivent les rôles RBAC Kubernetes disponibles avec Kf et leur interaction avec les rôles IAM de Google Kubernetes Engine (GKE).

Rôles prédéfinis

Kf met à disposition plusieurs rôles Kubernetes prédéfinis pour vous aider à accéder à différents sujets exécutant des rôles différents. Chaque rôle prédéfini peut être lié à un sujet d'un espace de noms Kubernetes géré par un espace Kf.

Lorsqu'un sujet est associé à un rôle dans un espace de noms Kubernetes, son accès est limité aux objets qui existent dans l'espace de noms correspondant aux autorisations répertoriées dans le rôle. Dans Kf, certaines ressources sont définies au niveau du cluster. Kf surveille les modifications apportées aux sujets de l'espace de noms et accorde des rôles supplémentaires, limités au niveau du cluster.

Rôle Titre Description Champ d'application
space-auditor Auditeur de l'espace Donne l'accès en lecture seule à un espace. Espace
space-developer Développeur de l'espace Permet aux développeurs d'applications de déployer et de gérer des applications dans un espace. Espace
space-manager Gestionnaire de l'espace Autorise l'administration et la gestion d'auditeurs, de développeurs et de responsables dans un espace. Espace
SPACE_NAME-manager Gestionnaire de l'espace dynamique Fournit un accès en écriture à un seul objet Space, automatiquement accordé à tous les sujets auxquels le rôle space-manager est attribué dans l'espace nommé. Cluster
kf-cluster-reader Lecteur de cluster Donne un accès en lecture seule aux objets Kf à l'échelle du cluster, automatiquement accordé à tous les space-auditor, space-developer et space-manager. Cluster

Pour en savoir plus sur les règles qui composent chaque rôle prédéfini, consultez la documentation de référence sur les rôles Kf.

Rôles IAM

Les rôles Kf permettent de contrôler les accès aux objets d'un cluster Kubernetes. Il convient également d'attribuer un rôle IAM aux sujets afin de permettre l'authentification auprès du cluster.

  • Les administrateurs de la plate-forme doivent disposer du rôle IAM roles/container.admin. Cela leur permettra d'installer, de mettre à niveau et de supprimer Kf, ainsi que de créer et de supprimer des objets Kf définis à l'échelle du cluster, tels que Spaces ou ClusterServiceBrokers.

  • Les utilisateurs Kf end-users doivent disposer du rôle IAM roles/container.viewer. Ce rôle leur permet de s'authentifier auprès d'un cluster avec des autorisations limitées pouvant être étendues à l'aide des rôles Kf.

IAM met à disposition des rôles prédéfinis supplémentaires pour permettre à GKE de résoudre des cas d'utilisation plus avancés :

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

Mapper des rôles Cloud Foundry avec Kf

Cloud Foundry présente des rôles semblables aux rôles prédéfinis de Kf. Cloud Foundry possède deux types de rôles principaux :

  • Rôles attribués par le sous-système de comptes utilisateur et d'authentification (UAA) qui fournissent des champs d'application OAuth détaillés applicables à tous les points de terminaison de l'API Cloud Foundry.
  • Rôles attribués dans l'API Cloud Controller (CAPI) qui permettent un accès précis aux ressources de l'API.

Rôles UAA

Les rôles fournis par le sous-système UAA s'apparentent davantage aux rôles IAM à l'échelle du projet :

  • Les administrateurs de Cloud Foundry peuvent effectuer des activités administratives pour toutes les organisations et tous les espaces de Cloud Foundry. Le rôle s'apparente davantage au rôle IAM roles/container.admin.
  • Les administrateurs en lecture seule dans Cloud Foundry peuvent accéder à tous les points de terminaison de l'API Cloud Foundry. Le rôle s'apparente davantage au rôle IAM roles/container.admin.
  • Les auditeurs globaux de Cloud Foundry disposent d'un accès en lecture à tous les points de terminaison de l'API Cloud Foundry, à l'exception des secrets. Il n'existe pas de rôle IAM équivalent, mais vous pouvez créer un rôle personnalisé présentant des autorisations similaires.

Rôles de l'API Cloud Controller

Les rôles fournis par CAPI s'apparentent davantage aux rôles Kf attribués dans un cluster aux sujets qui disposent du rôle IAM roles/container.viewer sur le projet propriétaire :

  • Les auditeurs de l'espace dans Cloud Foundry disposent d'un accès en lecture aux ressources dans un espace CF. Le rôle s'apparente davantage au rôle Kf space-auditor.
  • Les développeurs de l'espace de Cloud Foundry ont la possibilité de déployer et de gérer des applications dans un espace CF. Le rôle s'apparente davantage au rôle Kf space-developer.
  • Les gestionnaires de l'espace dans Cloud Foundry peuvent modifier les paramètres de l'espace CF et attribuer des utilisateurs aux rôles. Le rôle s'apparente davantage au rôle Kf space-manager.

Étape suivante