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 :
- Remplissez les conditions requises.
- Configurer vos groupes Google Groupes
- Activez Google Groupes pour RBAC sur un cluster.
- 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 :
Dans votre domaine, créez un groupe nommé
gke-security-groups
. Le nomgke-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.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.
Ajoutez vos groupes au groupe
gke-security-groups
en tant que groupes imbriqués. N'ajoutez pas d'utilisateurs individuels en tant que membres degke-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 clusterCOMPUTE_REGION
: région Compute Engine du nouveau cluster. Pour les clusters zonaux, utilisez--zone=COMPUTE_ZONE
.DOMAIN
: nom de domaine du groupegke-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 :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Cliquez sur Configurer pour le mode de cluster que vous souhaitez utiliser.
Pour les clusters Autopilot, développez la section Options avancées pour localiser les options Sécurité.
Pour les clusters Standard, dans la section Cluster, cliquez sur Sécurité.
Cochez la case Activer Google Groupes pour RBAC.
Renseignez le champ Groupe de sécurité avec
gke-security-groups@DOMAIN
.Cliquez sur 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 groupegke-security-groups
que vous avez créé.
Console
Pour mettre à jour un cluster existant afin d'activer Google Groupes pour RBAC, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom du cluster que vous souhaitez mettre à jour.
Dans l'onglet Détails, identifiez la section Sécurité.
Dans le champ Google Groupes pour RBAC, cliquez sur edit Modifier Google Groupes pour RBAC.
Cochez la case Activer Google Groupes pour RBAC.
Renseignez le champ Groupe de sécurité avec
gke-security-groups@DOMAIN
.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 gcloud CLI ou la console Google Cloud.
Vérifier à l'aide de gcloud CLI
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 exemplegke-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 exemplegke-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
Activez la journalisation de l'accès aux données pour votre projet Google Cloud. Pour activer la journalisation, procédez comme suit :
Accédez à la page Journaux d'audit de la console Google Cloud.
Dans le tableau, sélectionnez API Kubernetes Engine.
Dans le menu Type de journal, sélectionnez :
- Lecture administrateur
- Lecture de données
- Écriture de données
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.
Exécutez une commande à l'aide de
kubectl
dans le cluster, comme suit :kubectl create ns helloworld
Saisissez une requête personnalisée sur la page Explorateur de journaux. Pour exécuter la requête, procédez comme suit :
Accédez à la page Explorateur de journaux dans Google Cloud Console.
Cliquez sur la flèche dans le champ Aperçu de la requête en haut de la page.
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 clusterEMAIL_ADDRESS
: adresse e-mail enregistrée de votre compte Google.
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.
Sélectionnez le cluster que vous souhaitez examiner.
Cliquez sur Développer les champs imbriqués.
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.
- Les groupes sont membres de
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.