Lorsque vous ajoutez un membre à votre projet, vous pouvez utiliser une stratégie Identity and Access Management (IAM) pour attribuer à ce membre un ou plusieurs rôles IAM. Chaque rôle IAM contient des autorisations qui accordent au membre l'accès à des ressources spécifiques.
Compute Engine dispose d'un ensemble de rôles IAM prédéfinis, qui sont décrits sur cette page. Vous pouvez également créer des rôles personnalisés contenant des sous-ensembles d'autorisations qui correspondent exactement à vos besoins.
Pour connaître les autorisations requises pour chaque méthode, consultez la documentation de référence de l'API Compute Engine :
- Documentation de référence de l'API Compute Engine (v1)
- Documentation de référence de l'API Compute Engine (bêta)
Pour en savoir plus sur les autorisations d'accès, consultez les pages suivantes.
- Pour savoir comment définir des stratégies IAM au niveau d'un projet, consultez la page Accorder, modifier et révoquer les accès à des ressources dans la documentation IAM.
- Pour apprendre à définir des stratégies sur des ressources Compute Engine spécifiques, consultez la page Gérer l'accès aux ressources Compute Engine.
- Pour savoir comment attribuer des rôles à un compte de service Compute Engine, consultez la page Créer et activer des comptes de service pour les instances.
Qu'est-ce qu'IAM ?
Google Cloud propose IAM, qui vous permet d'attribuer un accès précis à des ressources spécifiques deGoogle Cloud et empêche tout accès non souhaité à d'autres ressources. IAM vous permet d'adopter le principe de sécurité du moindre privilège afin de n'accorder que l'accès nécessaire à vos ressources.
En définissant des stratégies IAM, vous pouvez contrôler qui (identité) dispose de quelles autorisations d'accès (rôles) pour quelles ressources. Ces stratégies permettent d'attribuer un ou plusieurs rôles spécifiques à un membre du projet, et ainsi d'accorder à cette identité certaines autorisations. Par exemple, pour une ressource donnée (comme un projet), vous pouvez attribuer le rôle roles/compute.networkAdmin
à un compte Google. Celui-ci peut contrôler les ressources réseau du projet, mais pas les autres ressources, comme les instances et les disques. Vous pouvez également utiliser IAM pour gérer les anciens rôles de la consoleGoogle Cloud accordés aux membres de l'équipe de projet.
Rôle serviceAccountUser
Lorsqu'il est associé à roles/compute.instanceAdmin.v1
, le rôle roles/iam.serviceAccountUser
permet aux membres de créer et de gérer des instances qui utilisent un compte de service. Plus précisément, l'attribution de roles/iam.serviceAccountUser
et de roles/compute.instanceAdmin.v1
permet aux membres de :
- créer une instance qui s'exéctue en tant que compte de service ;
- associer un disque persistant à une instance qui s'exécute en tant que compte de service ;
- définir des métadonnées sur une instance qui s'exécute en tant que compte de service ;
- se connecter via SSH à une instance qui s'exécute en tant que compte de service ;
- reconfigurer une instance à exécuter en tant que compte de service.
Vous pouvez accorder le rôle roles/iam.serviceAccountUser
de deux façons différentes :
Recommandation. Accordez le rôle à un membre sur un compte de service spécifique. Cela permet à un membre d'accéder au compte de service pour lequel il dispose du rôle
iam.serviceAccountUser
, mais l'empêche d'accéder à d'autres comptes de service pour lesquels le membre n'est pas uniam.serviceAccountUser
.Accordez le rôle à un membre au niveau du projet. Le membre a accès à tous les comptes de service du projet, y compris à ceux créés par la suite.
Si le concept ne vous est pas familier, lisez ces informations sur les comptes de service.
Google Cloud Autorisation de la console
Pour utiliser <a href="https://console.cloud.google.com/" target="console" track-type="inline link" referrerpolicy="no-referrer-when-downgrade">Google Cloud console</a> afin d'accéder aux ressources Compute Engine, vous devez disposer d'un rôle comportant l'autorisation suivante sur le projet:
compute.projects.get
Se connecter à une instance en tant qu'instanceAdmin
Une fois que vous avez accordé le rôle roles/compute.instanceAdmin.v1
à un membre du projet, celui-ci peut se connecter à des instances de machine virtuelle (VM) à l'aide des outils standards Google Cloud, tels que la gcloud CLI ou SSH dans le navigateur.
Lorsqu'un membre utilise la gcloud CLI ou SSH dans le navigateur, l'outil utilisé génère automatiquement une paire de clés publique/privée et ajoute la clé publique aux métadonnées du projet. Si le membre ne dispose pas des autorisations nécessaires pour modifier les métadonnées du projet, l'outil ajoute la clé publique du membre aux métadonnées de l'instance.
Si le membre souhaite utiliser une paire de clés existante, il peut ajouter manuellement sa clé publique aux métadonnées de l'instance. Apprenez-en plus sur l'ajout de clés SSH à une instance.
IAM avec des comptes de service
Créez des comptes de service personnalisés, puis accordez-leur des rôles IAM pour limiter l'accès de vos instances. Utilisez les rôles IAM avec des comptes de service personnalisés pour :
- Limitez l'accès de vos instances aux API Google Cloud à l'aide de rôles IAM précis.
- attribuer à chaque instance ou ensemble d'instances une identité unique ;
- limiter l'accès à votre compte de service par défaut.
En savoir plus sur les comptes de service
Groupes d'instances gérés et IAM
Les groupes d'instances gérés (MIG) sont des ressources qui effectuent des actions au nom de l'utilisateur sans nécessiter d'intervention directe. Par exemple, le MIG peut ajouter des VM au groupe ou en supprimer.
Toutes les opérations réalisées par Compute Engine dans le MIG sont concrètement effectuées par l'agent de service des API Google, qui dispose d'une adresse e-mail au format suivant : PROJECT_ID@cloudservices.gserviceaccount.com
Par défaut, l'agent de service des API Google dispose du rôle Éditeur (roles/editor
) au niveau du projet, lequel accorde des droits suffisants pour créer des ressources en fonction de la configuration du MIG. Si vous personnalisez l'accès de l'agent de service des API Google, attribuez-lui le rôle Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1
) et, éventuellement, le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser
). Le rôle Utilisateur du compte de service n'est requis que si le MIG crée des VM pouvant s'exécuter via un compte de service.
Notez que l'agent de service des API Google est également utilisé par d'autres processus, y compris Deployment Manager.
Lorsque vous créez un MIG ou mettez à jour son modèle d'instance, Compute Engine vérifie que l'agent de service des API Google dispose du rôle et des autorisations suivants :
- Rôle Utilisateur du compte de service, qui est important si vous envisagez de créer des instances pouvant s'exécuter via un compte de service
- Autorisations pour toutes les ressources référencées dans les modèles d'instance, telles que des images, disques, réseaux VPC et sous-réseaux
Rôles IAM prédéfinis Compute Engine
Avec IAM, chaque méthode d'API Compute Engine nécessite que l'identité effectuant la requête API dispose des autorisations appropriées pour utiliser la ressource. Pour accorder des autorisations, vous devez définir des stratégies qui attribuent des rôles à un membre (utilisateur, groupe ou compte de service) du projet.
En plus des rôles de base (lecteur, éditeur et propriétaire) et des rôles personnalisés, vous pouvez attribuer les rôles prédéfinis Compute Engine suivants aux membres du projet :
Vous avez la possibilité d'accorder plusieurs rôles à un membre du projet sur la même ressource. Par exemple, si votre équipe réseau gère également les règles de pare-feu, vous pouvez attribuer les rôles roles/compute.networkAdmin
et roles/compute.securityAdmin
au groupe Google de l'équipe réseau.
Les tableaux suivants décrivent les rôles IAM prédéfinis Compute Engine, ainsi que les autorisations qu'ils contiennent. Chaque rôle comporte un ensemble d'autorisations adaptées à une tâche spécifique. Par exemple, les rôles d'administrateur d'instances accordent des autorisations permettant de gérer les instances, les rôles réseau contiennent des autorisations permettant de gérer les ressources liées au réseau et les rôles de sécurité attribuent des autorisations permettant de gérer les ressources liées à la sécurité, telles que les pare-feu et les certificats SSL.
Compute Admin role
Details | Permissions |
---|---|
Compute Admin( Full control of all Compute Engine resources.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
Lowest-level resources where you can grant this role:
|
|
Compute Future Reservation Admin role
Details | Permissions |
---|---|
Compute Future Reservation Admin Beta(
|
|
Compute Future Reservation User role
Details | Permissions |
---|---|
Compute Future Reservation User Beta(
|
|
Compute Future Reservation Viewer role
Details | Permissions |
---|---|
Compute Future Reservation Viewer Beta(
|
|
Compute Image User role
Details | Permissions |
---|---|
Compute Image User( Permission to list and read images without having other permissions on the image. Granting this role at the project level gives users the ability to list all images in the project and create resources, such as instances and persistent disks, based on images in the project. Lowest-level resources where you can grant this role:
|
|
Compute Instance Admin (beta) role
Details | Permissions |
---|---|
Compute Instance Admin (beta)( Permissions to create, modify, and delete virtual machine instances. This includes permissions to create, modify, and delete disks, and also to configure Shielded VM settings.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
For example, if your company has someone who manages groups of virtual machine instances but does not manage network or security settings and does not manage instances that run as service accounts, you can grant this role on the organization, folder, or project that contains the instances, or you can grant it on individual instances. Lowest-level resources where you can grant this role:
|
|
Compute Instance Admin (v1) role
Details | Permissions |
---|---|
Compute Instance Admin (v1)( Full control of Compute Engine instances, instance groups, disks, snapshots, and images. Read access to all Compute Engine networking resources. If you grant a user this role only at an instance level, then that user cannot create new instances. |
|
Compute Load Balancer Admin role
Details | Permissions |
---|---|
Compute Load Balancer Admin( Permissions to create, modify, and delete load balancers and associate resources. For example, if your company has a load balancing team that manages load balancers, SSL certificates for load balancers, SSL policies, and other load balancing resources, and a separate networking team that manages the rest of the networking resources, then grant this role to the load balancing team's group. Lowest-level resources where you can grant this role:
|
|
Compute Load Balancer Services User role
Details | Permissions |
---|---|
Compute Load Balancer Services User( Permissions to use services from a load balancer in other projects. |
|
Compute Network Admin role
Details | Permissions |
---|---|
Compute Network Admin( Permissions to create, modify, and delete networking resources, except for firewall rules and SSL certificates. The network admin role allows read-only access to firewall rules, SSL certificates, and instances (to view their ephemeral IP addresses). The network admin role does not allow a user to create, start, stop, or delete instances.
For example, if your company has a security team that manages firewalls
and SSL certificates and a networking team that manages the rest of the
networking resources, then grant this role to the networking team's group.
Or, if you have a combined team that manages both security and networking,
then grant this role as well as the
Lowest-level resources where you can grant this role:
|
|
Compute Network User role
Details | Permissions |
---|---|
Compute Network User( Provides access to a shared VPC network Once granted, service owners can use VPC networks and subnets that belong to the host project. For example, a network user can create a VM instance that belongs to a host project network but they cannot delete or create new networks in the host project. Lowest-level resources where you can grant this role:
|
|
Compute Network Viewer role
Details | Permissions |
---|---|
Compute Network Viewer( Read-only access to all networking resources For example, if you have software that inspects your network configuration, you could grant this role to that software's service account. Lowest-level resources where you can grant this role:
|
|
Compute Organization Firewall Policy Admin role
Details | Permissions |
---|---|
Compute Organization Firewall Policy Admin( Full control of Compute Engine Organization Firewall Policies. |
|
Compute Organization Firewall Policy User role
Details | Permissions |
---|---|
Compute Organization Firewall Policy User( View or use Compute Engine Firewall Policies to associate with the organization or folders. |
|
Compute Organization Security Policy Admin role
Details | Permissions |
---|---|
Compute Organization Security Policy Admin( Full control of Compute Engine Organization Security Policies. |
|
Compute Organization Security Policy User role
Details | Permissions |
---|---|
Compute Organization Security Policy User( View or use Compute Engine Security Policies to associate with the organization or folders. |
|
Compute Organization Resource Admin role
Details | Permissions |
---|---|
Compute Organization Resource Admin( Full control of Compute Engine Firewall Policy associations to the organization or folders. |
|
Compute OS Admin Login role
Details | Permissions |
---|---|
Compute OS Admin Login( Access to log in to a Compute Engine instance as an administrator user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login role
Details | Permissions |
---|---|
Compute OS Login( Access to log in to a Compute Engine instance as a standard user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login External User role
Details | Permissions |
---|---|
Compute OS Login External User( Available only at the organization level. Access for an external user to set OS Login information associated with this organization. This role does not grant access to instances. External users must be granted one of the required OS Login roles in order to allow access to instances using SSH. Lowest-level resources where you can grant this role:
|
|
Compute packet mirroring admin role
Details | Permissions |
---|---|
Compute packet mirroring admin( Specify resources to be mirrored. |
|
Compute packet mirroring user role
Details | Permissions |
---|---|
Compute packet mirroring user( Use Compute Engine packet mirrorings. |
|
Compute Public IP Admin role
Details | Permissions |
---|---|
Compute Public IP Admin( Full control of public IP address management for Compute Engine. |
|
Compute Security Admin role
Details | Permissions |
---|---|
Compute Security Admin( Permissions to create, modify, and delete firewall rules and SSL certificates, and also to configure Shielded VM settings. For example, if your company has a security team that manages firewalls and SSL certificates and a networking team that manages the rest of the networking resources, then grant this role to the security team's group. Lowest-level resources where you can grant this role:
|
|
Compute Sole Tenant Viewer role
Details | Permissions |
---|---|
Compute Sole Tenant Viewer( Permissions to view sole tenancy node groups |
|
Compute Storage Admin role
Details | Permissions |
---|---|
Compute Storage Admin( Permissions to create, modify, and delete disks, images, and snapshots. For example, if your company has someone who manages project images and you don't want them to have the editor role on the project, then grant this role to their account on the project. Lowest-level resources where you can grant this role:
|
|
Compute Viewer role
Details | Permissions |
---|---|
Compute Viewer( Read-only access to get and list Compute Engine resources, without being able to read the data stored on them. For example, an account with this role could inventory all of the disks in a project, but it could not read any of the data on those disks. Lowest-level resources where you can grant this role:
|
|
Compute Shared VPC Admin role
Details | Permissions |
---|---|
Compute Shared VPC Admin( Permissions to administer shared VPC host projects, specifically enabling the host projects and associating shared VPC service projects to the host project's network. At the organization level, this role can only be granted by an organization admin.
Google Cloud recommends that the Shared VPC Admin be the owner of the shared VPC host project. The
Shared VPC Admin is responsible for granting the Compute Network User role
( Lowest-level resources where you can grant this role:
|
|
OS Config Admin role
Details | Permissions |
---|---|
OS Config Admin Beta( Full access to OS Config resources |
|
GuestPolicy Admin role
Details | Permissions |
---|---|
GuestPolicy Admin Beta( Full admin access to GuestPolicies |
|
GuestPolicy Editor role
Details | Permissions |
---|---|
GuestPolicy Editor Beta( Editor of GuestPolicy resources |
|
GuestPolicy Viewer role
Details | Permissions |
---|---|
GuestPolicy Viewer Beta( Viewer of GuestPolicy resources |
|
InstanceOSPoliciesCompliance Viewer role
Details | Permissions |
---|---|
InstanceOSPoliciesCompliance Viewer Beta( Viewer of OS Policies Compliance of VM instances |
|
OS Inventory Viewer role
Details | Permissions |
---|---|
OS Inventory Viewer( Viewer of OS Inventories |
|
OSPolicyAssignment Admin role
Details | Permissions |
---|---|
OSPolicyAssignment Admin( Full admin access to OS Policy Assignments |
|
OSPolicyAssignment Editor role
Details | Permissions |
---|---|
OSPolicyAssignment Editor( Editor of OS Policy Assignments |
|
OSPolicyAssignmentReport Viewer role
Details | Permissions |
---|---|
OSPolicyAssignmentReport Viewer( Viewer of OS policy assignment reports for VM instances |
|
OSPolicyAssignment Viewer role
Details | Permissions |
---|---|
OSPolicyAssignment Viewer( Viewer of OS Policy Assignments |
|
PatchDeployment Admin role
Details | Permissions |
---|---|
PatchDeployment Admin( Full admin access to PatchDeployments |
|
PatchDeployment Viewer role
Details | Permissions |
---|---|
PatchDeployment Viewer( Viewer of PatchDeployment resources |
|
Patch Job Executor role
Details | Permissions |
---|---|
Patch Job Executor( Access to execute Patch Jobs. |
|
Patch Job Viewer role
Details | Permissions |
---|---|
Patch Job Viewer( Get and list Patch Jobs. |
|
PolicyOrchestrator Admin role
Details | Permissions |
---|---|
PolicyOrchestrator Admin Beta( Admin of PolicyOrchestrator resources |
|
PolicyOrchestrator Viewer role
Details | Permissions |
---|---|
PolicyOrchestrator Viewer Beta( Viewer of PolicyOrchestrator resources |
|
Project Feature Settings Editor role
Details | Permissions |
---|---|
Project Feature Settings Editor( Read/write access to project feature settings |
|
Project Feature Settings Viewer role
Details | Permissions |
---|---|
Project Feature Settings Viewer( Read access to project feature settings |
|
Upgrade Report Viewer role
Details | Permissions |
---|---|
Upgrade Report Viewer Beta( Provides read-only access to VM Manager Upgrade Reports |
|
OS Config Viewer role
Details | Permissions |
---|---|
OS Config Viewer Beta( Readonly access to OS Config resources |
|
OS VulnerabilityReport Viewer role
Details | Permissions |
---|---|
OS VulnerabilityReport Viewer( Viewer of OS VulnerabilityReports |
|
DNS Administrator role
Details | Permissions |
---|---|
DNS Administrator( Provides read-write access to all Cloud DNS resources. Lowest-level resources where you can grant this role:
|
|
DNS Peer role
Details | Permissions |
---|---|
DNS Peer( Access to target networks with DNS peering zones |
|
DNS Reader role
Details | Permissions |
---|---|
DNS Reader( Provides read-only access to all Cloud DNS resources. Lowest-level resources where you can grant this role:
|
|
Service Account Admin role
Details | Permissions |
---|---|
Service Account Admin( Create and manage service accounts. Lowest-level resources where you can grant this role:
|
|
Create Service Accounts role
Details | Permissions |
---|---|
Create Service Accounts( Access to create service accounts. |
|
Delete Service Accounts role
Details | Permissions |
---|---|
Delete Service Accounts( Access to delete service accounts. |
|
Service Account Key Admin role
Details | Permissions |
---|---|
Service Account Key Admin( Create and manage (and rotate) service account keys. Lowest-level resources where you can grant this role:
|
|
Service Account OpenID Connect Identity Token Creator role
Details | Permissions |
---|---|
Service Account OpenID Connect Identity Token Creator( Create OpenID Connect (OIDC) identity tokens |
|
Service Account Token Creator role
Details | Permissions |
---|---|
Service Account Token Creator( Impersonate service accounts (create OAuth2 access tokens, sign blobs or JWTs, etc). Lowest-level resources where you can grant this role:
|
|
Service Account User role
Details | Permissions |
---|---|
Service Account User( Run operations as the service account. Lowest-level resources where you can grant this role:
|
|
View Service Accounts role
Details | Permissions |
---|---|
View Service Accounts( Read access to service accounts, metadata, and keys. |
|
Workload Identity User role
Details | Permissions |
---|---|
Workload Identity User( Impersonate service accounts from federated workloads. |
|
Étapes suivantes
- Apprenez-en plus sur IAM.
- Découvrez comment créer et gérer des rôles IAM personnalisés.
- Accordez des rôles IAM aux utilisateurs du projet.
- Accordez des rôles IAM pour des ressources Compute Engine spécifiques.
- Accordez des rôles IAM à des comptes de service.