Configurer Google Groupes pour RBAC


Cette page vous explique comment configurer des Google Groupes pour qu'ils fonctionnent avec le contrôle des accès basé sur les rôles Kubernetes (RBAC) dans vos clusters Google Kubernetes Engine (GKE).

Présentation

Google Groupes pour RBAC vous permet d'attribuer des autorisations RBAC aux membres Google Groupes dans Google Workspace. Vos administrateurs Google Workspace gèrent les utilisateurs et les groupes complètement en dehors de GKE ou de la console Google Cloud. Les administrateurs de cluster n'ont donc pas besoin d'informations détaillées sur les utilisateurs.

L'utilisation de Google Groupes pour RBAC vous permet également d'intégrer vos pratiques de gestion des comptes utilisateur existantes, telles que la révocation d'accès lorsqu'un utilisateur quitte votre organisation.

Pour utiliser Google Groupes pour RBAC, procédez comme suit :

  1. Remplissez les conditions requises.
  2. Configurer vos groupes Google Groupes
  3. Activez Google Groupes pour RBAC sur un cluster.
  4. Définissez et attribuez des autorisations RBAC aux groupes Google Groupes.

Conditions requises

Pour utiliser Google Groupes pour RBAC, vous devez avoir accès à Google Workspace ou à n'importe quelle édition de Cloud Identity.

Lorsque vous créez des groupes et ajoutez des utilisateurs en tant que membres, veillez à connaître les limites applicables aux groupes Google Groupes.

Limite

  • Avec Google Groupes pour RBAC, GKE n'accepte dans le groupe de sécurité que les utilisateurs qui appartiennent à un maximum de 2 000 groupes, en incluant les adhésions imbriquées.

Configurer vos groupes Google Groupes

La procédure suivante vous montre comment configurer un groupe dans Google Groupes qui fonctionne avec RBAC :

  1. Dans votre domaine, créez un groupe nommé gke-security-groups. Le nom gke-security-groups est requis. Assurez-vous que le groupe dispose de l'autorisation Afficher les membres pour les Membres du groupe. Pour en savoir plus, consultez la page Définir des autorisations pour gérer les membres et le contenu.

  2. S'ils n'existent pas déjà, créez des groupes qui représentent des ensembles d'utilisateurs devant disposer d'autorisations différentes sur vos clusters, tels que des développeurs et des administrateurs de cluster. Chaque groupe doit disposer de l'autorisation Afficher les membres pour les membres du groupe.

  3. Ajoutez vos groupes au groupe gke-security-groups en tant que groupes imbriqués. N'ajoutez pas d'utilisateurs individuels en tant que membres de gke-security-groups.

Pour en savoir plus sur la gestion des groupes Google Groupes, consultez le centre d'aide Google Groupes.

Pour vérifier si un utilisateur spécifique peut effectuer une action sur une ressource de cluster, GKE vérifie si l'utilisateur est membre d'un groupe ayant accès à cette ressource et si ce groupe est imbriqué dans le groupe gke-security-groups.

Les informations sur l'appartenance à un groupe Google Groupes sont mises en cache pendant une courte période. La propagation des modifications d'appartenance à un groupe pour tous vos clusters peut prendre quelques minutes. En plus de la latence des modifications apportées aux groupes, la mise en cache standard des identifiants utilisateur sur le cluster dure environ une heure.

Activer Google Groupes pour RBAC sur les clusters

Vous pouvez activer Google Groupes pour RBAC sur les clusters GKE Standard et Autopilot nouveaux et existants à l'aide de Google Cloud CLI ou de Google Cloud Console.

Créer un cluster

gcloud

Standard

Pour créer un cluster standard et activer Google Groupes pour RBAC, exécutez la commande suivante :

gcloud container clusters create CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du nouveau cluster
  • COMPUTE_REGION : région Compute Engine du nouveau cluster. Pour les clusters zonaux, utilisez --zone=COMPUTE_ZONE.
  • DOMAIN : nom de domaine du groupe gke-security-groups que vous avez créé.

Autopilot

Pour créer un cluster Autopilot et activer Google Groupes pour RBAC, exécutez la commande suivante :

gcloud container clusters create-auto CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Console

Pour créer un cluster et activer la fonctionnalité Google Groupes pour RBAC, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Cliquez sur Configurer pour le mode de cluster que vous souhaitez utiliser.

  4. Pour les clusters Autopilot, développez la section Options avancées pour localiser les options Sécurité.

  5. Pour les clusters Standard, dans la section Cluster, cliquez sur Sécurité.

  6. Cochez la case Activer Google Groupes pour RBAC.

  7. Renseignez le champ Groupe de sécurité avec gke-security-groups@DOMAIN.

  8. Cliquez sur Create (Créer).

Mettre à jour un cluster existant

gcloud

Pour mettre à jour un cluster existant afin d'activer Google Groupes pour RBAC, exécutez la commande suivante :

gcloud container clusters update CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster.
  • COMPUTE_REGION : région Compute Engine du cluster. Pour les clusters zonaux, utilisez --zone=COMPUTE_ZONE.
  • DOMAIN : nom de domaine du groupe gke-security-groups que vous avez créé.

Console

Pour mettre à jour un cluster existant afin d'activer Google Groupes pour RBAC, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez mettre à jour.

  3. Dans l'onglet Détails, identifiez la section Sécurité.

  4. Dans le champ Google Groupes pour RBAC, cliquez sur Modifier Google Groupes pour RBAC.

  5. Cochez la case Activer Google Groupes pour RBAC.

  6. Renseignez le champ Groupe de sécurité avec gke-security-groups@DOMAIN.

  7. Cliquez sur Enregistrer les modifications.

Définir et attribuer des autorisations

Après avoir créé et configuré Google Groupes pour RBAC, utilisez les rôles et les liaisons de rôles pour définir les autorisations RBAC et attribuer ces autorisations aux groupes Google Groupes qui sont membres du groupe gke-security-groups. Pour obtenir des instructions, consultez la section Définir et attribuer des autorisations.

Vérifier la configuration de Google Groupes pour RBAC

Les sections suivantes vous expliquent comment vérifier votre configuration Google Groupes pour RBAC en utilisant la CLI gcloud ou la console Google Cloud.

Vérifier à l'aide de la CLI gcloud

Exécutez une commande kubectl can-i pour vérifier si vous pouvez effectuer une action spécifique sur une ressource Kubernetes particulière. Vous pouvez utiliser cette méthode pour automatiser le test des accès RBAC dans le cadre de votre workflow CI/CD. Par exemple, les commandes suivantes testent l'accès de get aux ressources pods dans le projet dev espace de noms:

kubectl auth can-i get pods \
    --namespace=dev \
    --as=USER \
    --as-group=GROUP

Remplacez les éléments suivants :

  • USER: nom de l'utilisateur dont l'identité est à emprunter, par exemple gke-user@example.com. L'utilisateur spécifié doit faire partie du groupe pour lequel vous testez l'accès.
  • GROUP: nom du groupe dont l'identité est à emprunter, par exemple gke-dev-users@example.com.

Si USER a accès, le résultat est yes. Sinon, le résultat est no.

Vérifier à l'aide de la console Google Cloud

Vous pouvez également vérifier l'accès RBAC en exécutant une commande kubectl sur votre cluster et en vérifiant vos journaux.

Avant de commencer

Avant de commencer, vérifiez les points suivants :

  • Vous n'avez pas interagi avec le cluster que vous souhaitez tester (par exemple, vous n'avez pas exécuté de commandes kubectl) pendant au moins une heure. L'authentification est mise en cache pendant une heure. Veuillez laisser les identifiants mis en cache expirer pour vous assurer que la requête est enregistrée à ce moment-là.
  • Vous êtes membre d'au moins un des groupes membres du groupe gke-security-groups, ce qui garantit la journalisation de certaines informations relatives aux groupes Google Groupes.

Activer les journaux et exécuter une commande de test

  1. Activez la journalisation de l'accès aux données pour votre projet Google Cloud. Pour activer la journalisation, procédez comme suit :

    1. Accédez à la page Journaux d'audit de la console Google Cloud.

      Accéder aux journaux d'audit

    2. Dans le tableau, sélectionnez API Kubernetes Engine.

    3. Dans le menu Type de journal, sélectionnez :

      • Lecture administrateur
      • Lecture de données
      • Écriture de données
    4. Cliquez sur Enregistrer.

    Pour en savoir plus sur l'activation des journaux d'audit, consultez la section Configurer des journaux d'accès aux données avec Cloud Console.

  2. Exécutez une commande à l'aide de kubectl dans le cluster, comme suit :

    kubectl create ns helloworld
    
  3. Saisissez une requête personnalisée sur la page Explorateur de journaux. Pour exécuter la requête, procédez comme suit :

    1. Accédez à la page Explorateur de journaux dans Google Cloud Console.

      Accéder à l'explorateur de journaux

    2. Cliquez sur la flèche dans le champ Aperçu de la requête en haut de la page.

    3. Dans la liste déroulante qui s'affiche, spécifiez la requête suivante :

      resource.type="k8s_cluster"
      resource.labels.location="CLUSTER_LOCATION"
      resource.labels.cluster_name="CLUSTER_NAME"
      protoPayload.resourceName="authorization.k8s.io/v1beta1/subjectaccessreviews"
      protoPayload.response.spec.user="EMAIL_ADDRESS"
      

      Remplacez les éléments suivants :

      • CLUSTER_LOCATION : région ou zone de votre cluster.
      • CLUSTER_NAME : nom du cluster
      • EMAIL_ADDRESS : adresse e-mail enregistrée de votre compte Google.
    4. Sélectionnez Exécuter la requête. Au moins un résultat doit s'afficher. Si le résultat n'apparaît pas, essayez d'augmenter la période.

    5. Sélectionnez le cluster que vous souhaitez examiner.

    6. Cliquez sur Développer les champs imbriqués.

    7. Le champ protoPayload.request.spec.group contient les groupes pour lesquels :

      • Les groupes sont membres de gke-security-group.
      • Vous êtes membre du groupe.

      Cette liste doit correspondre à l'ensemble des groupes dont vous êtes membre. Si aucun groupe n'apparaît, il y a peut-être un problème avec la configuration des groupes.

  4. Si vous le souhaitez, vous pouvez restaurer la journalisation des accès aux données avec les paramètres précédents pour éviter des frais supplémentaires.

Étape suivante