Configurer le contrôle des accès basé sur les rôles

Les étapes suivantes vous guideront dans la configuration du contrôle d'accès basé sur les rôles (RBAC, Role-Based Access Control) dans un espace Kf.

Avant de commencer

Veuillez suivre le guide GKE RBAC avant de passer aux étapes suivantes.

Configurer Identity and Access Management (IAM)

Outre les autorisations accordées via Kf RBAC, les utilisateurs, les groupes ou les comptes de service doivent également être authentifiés pour afficher les utilisateurs GKE au niveau du projet. Cette exigence est la même que pour la configuration de GKE RBAC. Les utilisateurs/groupes doivent donc disposer au minimum de l'autorisation IAM container.clusters.get dans le projet contenant le cluster. Cette autorisation est incluse dans le rôle container.clusterViewer et dans d'autres rôles avec davantage de privilèges. Pour en savoir plus, consultez la page Interaction avec Identity and Access Management.

Attribuez le rôle container.clusterViewer à un utilisateur ou à un groupe.

gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \
  --role="container.clusterViewer" \
  --member="${MEMBER}"

Exemples de valeurs de membres :

  • user:test-user@gmail.com
  • group:admins@example.com
  • serviceAccount:test123@example.domain.com

Gérer les abonnements d'un espace en tant que SpaceManager

Le rôle d'administrateur de cluster ou les membres dotés du rôle SpaceManager peuvent attribuer un rôle à un utilisateur, un groupe ou un compte de service.

kf set-space-role MEMBER -t [Group|ServiceAccount|User]

Le rôle d'administrateur de cluster ou les membres dotés du rôle SpaceManager peuvent aussi supprimer un membre d'un rôle.

kf unset-space-role MEMBER -t [Group|ServiceAccount|User]

Vous pouvez afficher les membres et leur rôle au sein d'un espace.

kf space-users

Par exemple :

Attribuez le rôle SpaceDeveloper à un utilisateur.

kf set-space-role alice@example.com SpaceDeveloper

Attribuez le rôle SpaceDeveloper à un groupe.

kf set-space-role devs@example.com SpaceDeveloper -t Group

Attribuez le rôle SpaceDeveloper à un compte de service.

kf set-space-role sa-dev@example.domain.com SpaceDeveloper -t ServiceAccount

Développement d'applications en tant que "SpaceDeveloper"

Les membres disposant du rôle SpaceDeveloper peuvent effectuer des opérations de développement d'applications Kf au sein d'un espace.

Pour transférer une application :

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

Pour afficher les journaux d'une application : posix-terminal kf logs app_name

Pour se connecter en SSH à un pod Kubernetes exécutant l'application : posix-terminal kf ssh app_name

Pour afficher les agents de service disponibles :

kf marketplace

Afficher des applications en tant que "SpaceManager" ou "SpaceAuditor"

Les membres disposant du rôle SpaceManager ou SpaceAuditor peuvent afficher les applications disponibles au sein de l'espace :

kf apps

Afficher les espaces Kf dans un cluster

Tous les rôles (SpaceManager, SpaceDeveloper et SpaceAuditor) peuvent afficher les espaces Kf disponibles dans un cluster :

kf spaces

Affichez les membres de l'espace et leur rôle au sein de l'espace.

kf space-users

Options contre l'usurpation d'identité

Pour vérifier l'autorisation d'un membre, un membre disposant de droits d'accès plus complets peut tester les autorisations d'un autre membre à l'aide des options contre l'usurpation d'identité : --as et --as-group.

Par exemple, en tant qu'administrateur de cluster, vous pouvez vérifier si un utilisateur (nom d'utilisateur : bob) est autorisé à transférer une application.

kf push APP_NAME --as bob

Vérifiez qu'un groupe (manager-group@example.com) est autorisé à attribuer des autorisations à d'autres membres.

kf set-space-role bob SpaceDeveloper --as-group manager-group@example.com