Créer des stratégies IAM Cloud

Cette page explique comment créer des stratégies IAM Cloud (Cloud Identity and Access Management) pour gérer les autorisations dans Google Kubernetes Engine.

Présentation

Chaque appel d'API Google Cloud Platform (GCP), GKE et Kubernetes nécessite que le compte à l'origine de la requête dispose des autorisations nécessaires. Par défaut, personne, à l'exception de vous-même et des autres utilisateurs autorisés par des stratégies au niveau du répertoire et de l'organisation, ne peut accéder à votre projet ou à ses ressources sans être authentifié et autorisé. Vous pouvez utiliser Cloud IAM pour déterminer quels utilisateurs peuvent accéder à votre projet et ce qu’ils sont autorisés à y faire.

Pour accorder à des utilisateurs et à des comptes de service l'accès à votre projet GCP, vous devez les ajouter en tant que membres de l'équipe du projet. Ensuite, vous devez attribuer des rôles. Les rôles déterminent les ressources GCP auxquelles un compte est autorisé à accéder et les opérations qu'il peut effectuer.

Dans GKE, vous utilisez Cloud IAM pour gérer les utilisateurs et les comptes de service autorisés à accéder à vos clusters et à y effectuer des opérations.

Avant de commencer

Pour préparer ce que nous allons réaliser, procédez comme suit :

  • Assurez-vous d'avoir activé l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Assurez-vous d'avoir installé le SDK Cloud.
  • Définissez votre ID de projet par défaut :
    gcloud config set project [PROJECT_ID]
  • Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si vous utilisez des clusters régionaux, définissez votre région de calcul par défaut :
    gcloud config set compute/region [COMPUTE_REGION]
  • Installez la dernière mise à jour de gcloud :
    gcloud components update

Interaction avec le contrôle d'accès basé sur les rôles

Le système de contrôle d'accès basé sur les rôles natif de Kubernetes gère également l'accès à votre cluster. RBAC (Role-Based Access Control) contrôle l'accès au niveau du cluster et de l'espace de noms, tandis que Cloud IAM fonctionne au niveau du projet.

Cloud IAM et le contrôle RBAC peuvent fonctionner de concert, et une entité doit disposer d'autorisations suffisantes, dans les deux cadres, pour travailler sur les ressources du cluster.

Rôles Cloud IAM

Dans les sections suivantes, vous trouverez la description des rôles Cloud IAM disponibles dans GCP.

Rôles GKE prédéfinis

Cloud IAM fournit des rôles prédéfinis qui accordent l'accès à des ressources GCP spécifiques et empêchent les accès non autorisés aux autres ressources.

Cloud IAM propose les rôles prédéfinis suivants pour GKE :

Pour en savoir plus sur les autorisations accordées par chaque rôle GKE, consultez la section Autorisations accordées par les rôles Cloud IAM.

Rôles Cloud IAM primitifs

Les rôles Cloud IAM primitifs accordent aux utilisateurs un accès global, au niveau du projet, à toutes les ressources GCP. Pour sécuriser votre projet et vos clusters, utilisez autant que possible des rôles prédéfinis.

Pour en savoir plus sur les rôles primitifs, reportez-vous à la section Rôles primitifs de la documentation Cloud IAM.

Rôle Utilisateur du compte de service

Le rôle Utilisateur du compte de service accorde aux utilisateurs le droit d'effectuer certaines tâches à l'aide d'un compte de service GCP. Dans GKE, les utilisateurs ayant besoin de créer ou de mettre à jour des clusters peuvent avoir besoin de ce rôle. Vous pouvez associer le rôle Utilisateur du compte de service à d'autres rôles en fonction du niveau d'accès nécessaire pour une entité.

Par exemple, si un utilisateur doté du rôle Administrateur de cluster doit créer un cluster, il doit accéder au compte de service des nœuds de cluster. Attribuer le rôle Utilisateur de compte de service sur la stratégie IAM Cloud de ce compte de service garantit que l'utilisateur est autorisé à utiliser le compte de service :

gcloud iam service-accounts add-iam-policy-binding \
  [SA_NAME]@[PROJECT_ID].iam.gserviceaccount.com \
  --member=user:[USER] \
  --role=roles/iam.serviceAccountUser
Rôle Titre Description Autorisations Ressource la plus basse

Rôle Utilisateur de l'agent de service hôte

Le rôle Utilisateur de l'agent de service hôte n'est utilisé que dans les clusters de VPC partagé.

Rôle Titre Description Autorisations Ressource la plus basse

Rôles personnalisés

Si les rôles prédéfinis ne répondent pas à vos besoins, vous pouvez créer des rôles personnalisés avec les autorisations que vous définissez.

Pour apprendre à créer et à attribuer des rôles personnalisés, reportez-vous à la page Créer et gérer des rôles personnalisés.

Autorisations accordées par les rôles Cloud IAM

Vous pouvez afficher les autorisations accordées par chaque rôle à l'aide de l'outil de ligne de commande gcloud ou de la console GCP.

gcloud

Pour afficher les autorisations accordées par un rôle spécifique, exécutez la commande suivante. [ROLE] correspond à n'importe quel rôle Cloud IAM. Les rôles GKE sont précédés par roles/container. :

gcloud iam roles describe roles/[ROLE]

Exemple :

gcloud iam roles describe roles/container.admin

Console

Pour afficher les autorisations accordées par un rôle spécifique, procédez comme suit :

  1. Accédez à la section Rôles du menu IAM de la console GCP.

    Accéder au menu IAM

  2. Dans le champ Filtrer le tableau, saisissez "GKE"

  3. Sélectionnez le rôle souhaité.

Gérer les stratégies IAM Cloud

Pour apprendre à gérer les rôles et les autorisations Cloud IAM pour les utilisateurs, consultez la page Attribuer, modifier et révoquer les accès des membres du projet dans la documentation Cloud IAM.

Pour les comptes de service, référez-vous à la page Attribuer des rôles aux comptes de service.

Exemples

Voici quelques exemples de la manière dont Cloud IAM fonctionne avec GKE :

  • Un nouvel employé vient de rejoindre une entreprise. Il doit être ajouté au projet GCP, mais il a uniquement besoin d'afficher les clusters du projet et les autres ressources GCP. Le propriétaire du projet lui attribue le rôle Lecteur au niveau du projet, qui contient l'autorisation compute.projects.get nécessaire pour afficher les projets et leurs ressources.
  • L'employé travaille dans une division opérationnelle et doit mettre à jour un cluster à l'aide de gcloud ou de la console Google Cloud Platform. Cette opération nécessite l'autorisation container.clusters.update. Par conséquent, le propriétaire du projet lui attribue le rôle Administrateur de cluster. L'employé bénéficie désormais des rôles Administrateur de cluster et Lecteur.
  • L'employé doit rechercher les causes de problèmes rencontrés avec un objet de déploiement. Il doit exécuter kubectl get pods pour voir les pods qui s'exécutent sur le cluster. L'employé possède déjà le rôle Lecteur, qui accorde donc cette autorisation.
  • L'employé doit créer un cluster. Le propriétaire du projet lui attribue le rôle Utilisateur du compte de service afin que son compte puisse accéder au compte de service par défaut de GKE.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Kubernetes Engine