Présentation du contrôle des accès

Par défaut, tous les projets Google Cloud Platform sont configurés avec un seul utilisateur : le créateur du projet d'origine. Aucune autre personne n'a accès au projet (et par conséquent aux ressources Compute Engine) tant qu'un utilisateur n'est pas ajouté comme membre de l'équipe du projet ou associé à une ressource spécifique. Cette page décrit les différentes façons d'ajouter des utilisateurs à votre projet et de définir le contrôle des accès pour vos ressources Compute Engine.

En outre, si vous exécutez des applications sur une instance de machine virtuelle (VM) et si l'application a besoin d'accéder à Compute Engine ou à d'autres API Google Cloud Platform, vous pouvez utiliser les comptes de service au lieu des identifiants pour authentifier vos applications.

Options de contrôle des accès pour les utilisateurs

Pour permettre à des utilisateurs de créer et de gérer vos ressources Compute Engine, vous pouvez les ajouter en tant que membres d'une équipe à votre projet ou à des ressources spécifiques, et leur accorder des autorisations à l'aide de rôles Cloud IAM (Cloud Identity and Access Management, gestion de l'authentification et des accès).

Un membre d'équipe peut correspondre à utilisateur spécifique disposant d'un compte Google valide, un groupe Google, un compte de service ou un domaine G Suite. Lorsque vous ajoutez un membre d'équipe à un projet ou à une ressource, vous spécifiez les rôles à lui attribuer. Cloud IAM propose trois types de rôles : les rôles prédéfinis, primitifs et personnalisés.

Les ressources héritent des stratégies de leurs ressources parentes dans la hiérarchie des ressources GCP. La stratégie applicable à une ressource combine la stratégie définie pour celle-ci et la stratégie héritée de la ressource parente.

Rôles Compute Engine prédéfinis

Les rôles prédéfinis accordent un ensemble d'autorisations associées. Compute Engine offre les rôles prédéfinis ci-dessous.

Nom du rôle Capacités Utilisateur cible
Utilisateur d'images Compute Engine

Ce rôle permet de répertorier et d'utiliser les images d'un autre projet. Accordez-le avec un autre rôle à un membre afin que ce dernier puisse utiliser les images d'un autre projet pour créer une ressource. Par exemple, vous pouvez attribuer ce rôle avec le rôle d'administrateur d'instances de sorte qu'un membre puisse utiliser les images d'un autre projet pour créer des instances de VM et des disques persistants.

Si vous définissez des groupes d'instances gérés ou si vous utilisez Deployment Manager pour créer des instances de VM, vous devrez peut-être attribuer ce rôle au compte de service des API Google du projet afin de pouvoir utiliser les images d'autres projets.

  • Comptes de service
  • Administrateurs système
  • Développeurs
Administrateur d'instances Compute Engine (v1)

Ce rôle permet de contrôler totalement les instances, groupes d'instances, disques, instantanés et images Compute Engine. Il offre un accès en lecture seule à toutes les ressources du réseau Compute Engine.

Si le membre gère des instances de machines virtuelles configurées pour s'exécuter en tant que compte de service, vous devez également lui accorder le rôle d'utilisateur du compte de service afin qu'il puisse attribuer des comptes de service aux instances de VM.

  • Administrateurs système
  • Développeurs
Administrateur de Compute Engine

Ce rôle permet de contrôler totalement les ressources Compute Engine. Si l'utilisateur gère des instances de machines virtuelles configurées pour s'exécuter en tant que compte de service, vous devez également lui accorder le rôle roles/iam.serviceAccountUser.

  • Administrateurs système
  • Développeurs
Administrateur du réseau Compute Engine

Ce rôle permet de créer, modifier et supprimer des ressources réseau, à l'exception des règles de pare-feu et des certificats SSL. Le rôle d'administrateur du réseau offre un accès en lecture seule aux règles de pare-feu, aux certificats SSL et aux instances (pour afficher leurs adresses IP éphémères). Il ne permet pas aux membres de créer, de démarrer, d'arrêter ou de supprimer des instances.

Administrateurs réseau
Administrateur de sécurité Compute Engine

Ce rôle permet de créer, modifier et supprimer des règles de pare-feu et des certificats SSL.

Administrateurs de sécurité
Administrateur de l'équilibreur de charge Compute Enginebêta

Ce rôle permet de créer, modifier et supprimer des équilibreurs de charge ainsi que les ressources associées.

Administrateurs de l'équilibrage de charge
Utilisateur du compte de service Compute Engine

Ce rôle permet de créer des instances utilisant des comptes de service ainsi que d'associer un disque et de définir des métadonnées pour une instance qui est déjà configurée pour s'exécuter en tant que compte de service.

Ce rôle ne doit pas être attribué seul, car il n'offre aucun accès à l'API Compute Engine. Vous devez l'accorder avec un autre rôle tel que le rôle d'administrateur d'instances.

  • Administrateurs système
  • Développeurs
Lecteur de Compute Engine

Ce rôle offre un accès en lecture seule permettant d'obtenir et de répertorier les ressources Compute Engine, mais pas de lire les données stockées sur celles-ci. Par exemple, un compte doté de ce rôle est en mesure de répertorier tous les disques d'un projet, mais ne peut pas lire les données qu'ils contiennent.

Administrateurs système
Utilisateur du réseau Compute Engine

Ce rôle permet d'utiliser un réseau VPC partagé. Plus spécifiquement, vous devez l'attribuer aux propriétaires de service qui doivent utiliser les ressources du projet hôte. Une fois que vous l'avez accordé, les propriétaires de service peuvent utiliser les sous-réseaux et les réseaux appartenant au projet hôte. Par exemple, un utilisateur du réseau est en mesure de créer une instance de VM appartenant à un réseau hôte VPC partagé. Toutefois, il ne peut ni supprimer, ni créer des réseaux dans le projet hôte.

  • Administrateurs système
  • Développeurs
Lecteur du réseau Compute Engine

Ce rôle offre un accès en lecture seule à toutes les ressources réseau. Par exemple, si vous disposez d'un logiciel qui inspecte votre configuration réseau, vous pouvez accorder le rôle de lecteur du réseau au compte de service de ce logiciel.

  • Administrateurs réseau
  • Administrateurs système
  • Développeurs
  • Comptes de service
Administrateur de stockage Compute Enginebêta

Ce rôle permet de créer, modifier et supprimer des disques, des images et des instantanés.

Par exemple, si une personne au sein de votre entreprise gère des images et si vous ne souhaitez pas qu'elle dispose du rôle d'éditeur pour le projet, vous pouvez attribuer ce rôle à son compte.

  • Administrateurs système
  • Développeurs
Administrateur du VPC partagé Compute Engine

Ce rôle permet d'administrer les projets hôtes VPC partagés, d'activer ces derniers et d'associer les projets de service au réseau des projets hôtes. Il ne peut être accordé qu'au niveau de l'organisation.

Créateurs de projets

Pour afficher la liste des méthodes d'API auxquelles un rôle spécifique donne accès, consultez la documentation relative aux rôles IAM de Compute Engine.

Matrice des rôles prédéfinis

Le tableau ci-dessous permet de comparer en détail les autorisations accordées par chaque rôle Compute Engine.

Capacité Administrateur d'instances (v1) Utilisateur d'images Utilisateur du réseau Lecteur de réseau Administrateur réseau Administrateur de sécurité Administrateur de l'espace de stockage Administrateur du VPC partagé Administrateur de Compute Lecteur de Compute Administrateur de l'équilibrage de charge
Créer ou supprimer des instances de VM Oui* Non Non Non Non Non Non Non Oui Non Non
Bénéficier d'un accès SSH aux instances de VM Oui* Non Non Non Non Non Non Non Oui* Non Non
Répertorier ou obtenir des instances de VM Oui Non Non Oui Oui Non Non Non Oui Oui Oui
Créer ou supprimer des images, des disques et des instantanés Oui Non Non Non Non Non Oui Non Oui Oui Non
Répertorier ou obtenir des images Oui Oui Non Non Non Non Oui Non Oui Oui Non
Créer ou supprimer des groupes d'instances Oui* Non Non Non Non Non Non Non Oui Non Oui
Répertorier ou obtenir des groupes d'instances Oui Non Non Oui Oui Non Non Non Oui Oui Oui
Créer et gérer des équilibreurs de charge Non Non Non Non Oui Non Non Non Oui Non Oui
Créer et gérer des VPN Non Non Non Non Oui Non Non Non Oui Non Non
Afficher les ressources des réseaux/sous-réseaux Oui Non Oui Oui Oui Non Non Non Oui Oui Oui
Afficher les règles de pare-feu Oui Non Oui Oui Oui Oui Non Non Oui Oui Non
Créer et gérer des pare-feu et des certificats SSL Non Non Non Non Non Oui Non Non Oui Non Non pour les pare-feu, oui pour les certificats SSL
Créer et gérer des projets hôtes VPC partagés Non Non Non Non Non Non Non Oui Oui Non Non
Utiliser des réseaux et des sous-réseaux dans un projet hôte VPC partagé Non Non Oui Non Non Non Non Non Oui Non Non
Créer et gérer des réseaux et des sous-réseaux Non Non Non Non Oui Non Non Non Oui Non Non

* Si l'instance de VM peut s'exécuter en tant que compte de service, attribuez également le rôle d'utilisateur de compte de service.

Pour afficher la liste des méthodes d'API auxquelles un rôle spécifique donne accès, consultez la documentation relative aux rôles IAM de Compute Engine.

Rôles Cloud IAM primitifs

Les rôles Cloud IAM primitifs sont directement mappés aux anciens rôles de propriétaire, d'éditeur et de lecteur de projet. Nous vous recommandons d'utiliser des rôles prédéfinis dans la mesure du possible. Toutefois, dans le cas où le service Cloud IAM n'est toujours pas disponible, vous devrez peut-être attribuer les autorisations appropriées à l'aide d'un rôle primitif.

Nom du rôle Autorisations
Owner Tous les droits du lecteur et de l'éditeur, ainsi que la possibilité de modifier les paramètres de facturation, de gérer le contrôle des accès et de supprimer un projet.
Editor Tous les droits du lecteur, ainsi que la possibilité de créer, modifier et supprimer des ressources.
Viewer Accès en lecture seule à toutes les ressources (interdiction de les modifier).

Pour en savoir plus sur ces rôles, consultez la documentation relative aux rôles primitifs.

Si les rôles prédéfinis ou primitifs ne répondent pas à vos besoins, vous pouvez créer des rôles personnalisés.

Stratégies Cloud IAM applicables aux ressources Compute Engine

Vous pouvez accorder l'accès aux ressources Compute Engine (telles que les instances de VM, les images et les disques) en associant directement à ces dernières les stratégies IAM Cloud. Une stratégie IAM Cloud vous permet de gérer les rôles Cloud IAM relatifs aux ressources au lieu de ceux définis au niveau du projet. Vous pouvez également gérer l'ensemble de ces rôles en parallèle. Vous êtes ainsi libre d'appliquer le principe du moindre droit qui consiste à restreindre l'accès aux seules ressources spécifiques dont les collaborateurs ont besoin pour effectuer leur travail.

En appliquant des stratégies Cloud IAM aux ressources Compute Engine, les organisations peuvent :

  • accorder aux utilisateurs l'accès à un sous-ensemble spécifique de ressources. Supposons qu'Alice doive gérer un sous-ensemble d'instances d'un projet. En définissant des stratégies Cloud IAM au niveau de l'instance, vous ne lui attribuez le rôle compute.instanceAdmin.v1 que pour ces instances. Si vous lui accordez le même rôle pour le projet, elle pourra modifier toutes les instances du projet.
  • autoriser les administrateurs des instances, des disques et des images à accorder à d'autres personnes l'accès à ces ressources sans disposer des autorisations de propriétaires de projet. Supposons que Bob soit un développeur disposant du rôle compute.storageAdmin pour une image spécifique. Il peut partager l'image avec ses collègues en leur accordant le rôle compute.imageUser pour celle-ci. Si vous n'appliquez pas les stratégies Cloud IAM aux ressources Compute Engine, Bob ne pourra partager l'image que s'il est propriétaire du projet, étant donné qu'il doit modifier la stratégie Cloud IAM de ce dernier.

Les ressources héritent également des stratégies de leurs ressources parentes. Si vous définissez une stratégie au niveau du projet, elle est héritée par toutes les ressources enfants. La stratégie applicable à une ressource combine la stratégie définie pour celle-ci et la stratégie héritée des niveaux supérieurs de la hiérarchie. Pour en savoir plus, consultez la section relative à la hiérarchie des stratégies IAM Cloud.

Règles d'administration

Si vous êtes un membre G Suite, votre projet fait peut-être partie d'une ressource Organisation. Une ressource Organisation correspond au nœud racine de la hiérarchie des ressources Google Cloud Platform. Elle est étroitement liée à un compte G Suite. Dès lors qu'une ressource Organisation est créée pour un domaine G Suite, tous les projets Google Cloud Platform créés par les membres du domaine appartiennent à la ressource.

Une organisation peut mettre en œuvre des règles d'administration qui limitent les configurations autorisées dans l'ensemble de la hiérarchie des ressources du cloud. Pour Compute Engine, vous pouvez mettre en œuvre les règles suivantes :

Pour définir des règles d'administration, vous devez disposer du rôle orgpolicy.policyAdmin pour l'organisation. Vous pouvez également définir des règles de remplacement propres à un projet qui s'appliqueront en cas d'exception.

Reportez-vous à la documentation relative aux organisations pour en savoir plus sur ce sujet.

Consultez la documentation relative aux règles d'administration pour en savoir plus sur ces dernières.

Accorder aux utilisateurs un accès SSH aux instances de VM

Si vous voulez permettre à un utilisateur de se connecter à une instance de machine virtuelle à l'aide de SSH, mais ne souhaitez pas qu'il puisse gérer les ressources Compute Engine, ajoutez la clé publique de l'utilisateur au projet. Vous pouvez également ajouter la clé publique à une instance spécifique. De cette manière, vous éviterez d'ajouter l'utilisateur en tant que membre du projet, tout en lui permettant d'accéder à des instances spécifiques.

Pour en savoir plus sur SSH et sur la gestion des clés associées, consultez l'article de présentation des clés SSH.

Notez que si vous accordez le rôle roles/compute.instanceAdmin.v1 à un membre d'un projet, il peut automatiquement se connecter aux instances à l'aide de SSH à condition que l'instance ne soit pas configurée pour s'exécuter en tant que compte de service. Si l'instance est configurée pour s'exécuter en tant que compte de service, vous devez également attribuer le rôle roles/iam.serviceAccountUser pour que le membre puisse se connecter à l'instance.

Si vous ajoutez un membre en tant que propriétaire ou éditeur de projet, il dispose automatiquement d'un accès SSH aux instances de machines virtuelles du projet.

Contrôle des accès pour les applications s'exécutant sur des instances de VM

Si vous exécutez le code d'une application sur des instances et si cette dernière doit s'authentifier auprès d'autres API Google Cloud Platform, vous pouvez créer des comptes de service et leur attribuer des rôles Cloud IAM spécifiques pour qu'ils s'authentifient auprès des autres API en votre nom. Un compte de service est un compte spécial auquel aucun identifiant utilisateur n'est associé. Il est parfaitement adapté aux interactions de serveur à serveur.

Consultez la documentation relative aux comptes de service pour en savoir plus sur ces derniers.

Étapes suivantes

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

Envoyer des commentaires concernant…

Documentation Compute Engine