Présentation du contrôle des accès


Par défaut, tous les projets Google Cloud comportent un seul utilisateur : le créateur du projet. 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.

Sachez que si vous exécutez une application sur une instance de machine virtuelle (VM) et que l'application doit accéder à Compute Engine ou à d'autres API Google Cloud, vous pouvez utiliser des comptes de service au lieu des identifiants utilisateur pour authentifier l'application.

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 IAM (Identity and Access Management).

Le terme "membre d'équipe" peut désigner un utilisateur spécifique disposant d'un compte Google valide, un groupe Google, un compte de service ou un domaine Google Workspace. Lorsque vous ajoutez un membre d'équipe à un projet ou à une ressource, vous spécifiez les rôles à lui attribuer. IAM propose trois types de rôles : les rôles prédéfinis, les rôles de base et les rôles personnalisés.

Les ressources héritent des stratégies de leurs ressources parentes dans la hiérarchie de ressources Google Cloud. 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.

Titre 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 ainsi que le rôle d'administrateur d'instances afin que le 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 avant de pouvoir utiliser des 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 réseau Compute Engine.

Si le membre gère des instances de VM configurées pour s'exécuter via un compte de service, vous devez également lui accorder le rôle roles/iam.serviceAccountUser 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 offre un contrôle complet sur les ressources Compute Engine. Si l'utilisateur gère des instances de VM 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 API auxquelles un rôle spécifique donne accès, consultez la documentation sur les 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 de VPC partagé Administrateur de Compute Lecteur de Compute Administrateur de l'équilibrage de charge
Créer ou supprimer des instances de VM *
Bénéficier d'un accès SSH aux instances de VM * *
Lister ou obtenir des instances de VM
Créer ou supprimer des images, des disques et des instantanés
Lister ou obtenir des images
Créer ou supprimer des groupes d'instances *
Lister ou obtenir des groupes d'instances
Créer et gérer des équilibreurs de charge
Créer et gérer des VPN
Afficher les ressources des réseaux/sous-réseaux
Afficher les règles de pare-feu
Créer et gérer des pare-feu et des certificats SSL pour les pare-feu,
pour les certificats SSL
Créer et gérer des projets hôtes VPC partagés
Utiliser des réseaux et des sous-réseaux dans un projet hôte VPC partagé
Créer et gérer des réseaux et des sous-réseaux

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

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

Rôles IAM de base

Les rôles IAM de base 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 autant que possible. Néanmoins, dans certains cas, lorsque le service IAM n'est pas encore disponible, il est possible que vous deviez attribuer les autorisations appropriées à l'aide d'un rôle de base.

Titre 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 (impossible de les modifier).

Pour en savoir plus sur ces rôles, consultez la documentation concernant les rôles de base.

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

Stratégies 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 des stratégies IAM à ces ressources. Une stratégie IAM vous permet de gérer des rôles IAM sur ces ressources au lieu ou en complément des rôles que vous gérez au niveau du projet. Vous êtes ainsi libre d'appliquer le principe du moindre privilège, 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 IAM aux ressources Compute Engine, les organisations disposent des possibilités suivantes :

  • Accorder aux utilisateurs l'accès à un sous-ensemble spécifique de ressources. Supposons qu'Alice ait à gérer un sous-ensemble d'instances d'un projet. En définissant des stratégies IAM au niveau de l'instance, vous ne lui accordez 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 à accorder l'accès. Les administrateurs peuvent autoriser d'autres personnes à accéder à des instances, des disques et des images 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. Sans stratégies IAM définies pour les ressources Compute Engine, Bob ne peut pas partager cette image avec ses collègues, sauf s'il devient propriétaire du projet, étant donné qu'il doit modifier la stratégie IAM du projet pour activer le partage.

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 concernant la hiérarchie des stratégies IAM.

Règles d'administration

Si vous êtes un membre Google Workspace, 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. Elle est étroitement liée à un compte Google Workspace. Dès lors qu'une ressource Organisation est créée pour un domaine Google Workspace, tous les projets Google Cloud 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 Google Cloud. Pour Compute Engine, vous pouvez implémenter 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 sur les organisations pour en savoir plus sur ce type de ressource.

Consultez la documentation sur les règles d'administration pour en savoir plus sur ces règles.

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

Si vous voulez permettre à un utilisateur de se connecter à une instance de VM à 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 la 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 VM 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 que l'application doit s'authentifier auprès d'autres API Google Cloud, vous pouvez créer des comptes de service et leur attribuer des rôles IAM spécifiques pour qu'ils s'authentifient auprès des autres API Google Cloud 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.

Pour en savoir plus, consultez la documentation concernant les comptes de service.

Étapes suivantes