Ce document explique comment créer une instance de machine virtuelle (VM) configurée pour utiliser un compte de service géré par l'utilisateur. Un compte de service est un type particulier de compte généralement utilisé par une application ou une charge de travail de calcul pour effectuer des appels d'API autorisés.
Les comptes de service sont nécessaires dans les cas où une charge de travail, telle qu'une application personnalisée, doit accéder à des ressources Trusted Cloud by S3NS ou effectuer des actions sans intervention de l'utilisateur final. Pour en savoir plus sur l'utilisation des comptes de service, consultez Bonnes pratiques d'utilisation des comptes de service.
Si vous avez des applications qui doivent appeler les API Trusted Cloud by S3NS , Google vous recommande d'associer un compte de service géré par l'utilisateur à la VM sur laquelle l'application ou la charge de travail est en cours d'exécution. Ensuite, vous accordez au compte de service des rôles IAM, qui permettent au compte de service et, par extension, aux applications exécutées sur la VM, d'accéder aux ressourcesTrusted Cloud by S3NS .
Avant de commencer
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Trusted Cloud by S3NS .
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez Google Cloud CLI en exécutant la commande suivante :
gcloud init
- Set a default region and zone.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez les Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Pour en savoir plus, consultez Set up authentication for a local development environment.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Trusted Cloud .
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des VM utilisant des comptes de service, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
) -
Créer des comptes de service (
roles/iam.serviceAccountCreator
) -
Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer des VM utilisant des comptes de service. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer des VM utilisant des comptes de service :
-
Pour créer des comptes de service : toutes les autorisations du rôle
iam.serviceAccountCreator
-
Pour accorder des autorisations au compte de service : toutes les autorisations du rôle
resourcemanager.projectIamAdmin
-
Pour créer des machines virtuelles :
compute.instances.create
sur le projet- Pour créer la VM à l'aide d'une image personnalisée :
compute.images.useReadOnly
sur l'image - Pour créer la VM à l'aide d'un instantané :
compute.snapshots.useReadOnly
sur l'instantané - Pour créer la VM à l'aide d'un modèle d'instance :
compute.instanceTemplates.useReadOnly
sur le modèle d'instance - Pour attribuer un ancien réseau à la VM :
compute.networks.use
sur le projet - Pour spécifier une adresse IP statique pour la VM :
compute.addresses.use
sur le projet - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau :
compute.networks.useExternalIp
sur le projet - Pour spécifier un sous-réseau pour la VM :
compute.subnetworks.use
sur le projet ou sur le sous-réseau choisi - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC :
compute.subnetworks.useExternalIp
sur le projet ou sur le sous-réseau choisi - Pour définir les métadonnées d'instance de VM pour la VM :
compute.instances.setMetadata
sur le projet - Pour définir des tags pour la VM :
compute.instances.setTags
sur la VM - Pour définir des libellés pour la VM :
compute.instances.setLabels
sur la VM - Pour définir un compte de service à utiliser avec la VM :
compute.instances.setServiceAccount
sur la VM - Pour créer un disque pour la VM :
compute.disks.create
sur le projet - Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture :
compute.disks.use
sur le disque - Pour associer un disque existant en mode lecture seule :
compute.disks.useReadOnly
sur le disque
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Présentation
Il est recommandé de configurer les comptes de service de vos VM comme suit :
- Créez un compte de service géré par l'utilisateur plutôt que d'utiliser le compte de service Compute Engine par défaut, et accordez-lui des rôles IAM pour les ressources et les opérations dont il a besoin.
- Associez le compte de service à votre VM.
- Définissez le champ d'application Cloud Platform (
https://www.googleapis.com/auth/cloud-platform
) sur votre VM. Cela permet au compte de service de la VM d'appeler les API Trusted Cloud by S3NS qu'il est autorisé à utiliser.- Si vous spécifiez le compte de service à l'aide de la console Trusted Cloud , définissez le niveau d'niveau d'accès du compte de service sur Autoriser l'accès complet à toutes les API Cloud.
- Si vous spécifiez le compte de service à l'aide de Google Cloud CLI ou de l'API Compute Engine, vous pouvez utiliser le paramètre
scopes
pour définir le niveau d'accès.
Configurer un compte de service
Créez un compte de service et attribuez-lui les rôles IAM requis. Attribuez autant de rôles IAM que nécessaire. Vous pouvez modifier les rôles IAM de votre compte de service si nécessaire.
Nous vous recommandons de limiter les privilèges des comptes de service et de vérifier régulièrement les autorisations de vos comptes de service pour vous assurer qu'elles sont à jour.
Utilisez l'une des méthodes suivantes pour configurer le compte de service.
Console
- Select your project.
-
In the Service account name field, enter a name. The Trusted Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the required roles to the service account.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
In the Service account users role field, enter the identifier for the principal that will attach the service account to other resources, such as Compute Engine instances.
This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
-
Click Done to finish creating the service account.
In the Trusted Cloud console, go to the Create service account page.
Go to Create service accountgcloud
- Select your project.
-
In the Service account name field, enter a name. The Trusted Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the required roles to the service account.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click
Add another role and add each additional role. - Click Continue.
-
In the Service account users role field, enter the identifier for the principal that will attach the service account to other resources, such as Compute Engine instances.
This is typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
-
Click Done to finish creating the service account.
In the Trusted Cloud console, go to the Create service account page.
Go to Create service accountTerraform
Pour créer un compte de service, vous pouvez utiliser la ressource
google_service_account
.N'oubliez pas de remplacer les valeurs des espaces réservés pour les attributs
account_id
etdisplay_name
.Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Créer une VM et associer le compte de service
Après avoir créé le compte de service, créez une VM et associez-y le compte de service que vous avez créé dans la section précédente. Définissez également le niveau d'accès de la VM sur
cloud-platform
.Si vous disposez déjà d'une VM et que vous souhaitez la configurer pour qu'elle utilise un autre compte de service, consultez Modifier le compte de service associé.
Utilisez l'une des méthodes suivantes pour créer une VM et y associer le compte de service.
Console
Dans la console Trusted Cloud , accédez à la page Créer une instance.
Pour associer un compte de service, procédez comme suit :
- Dans le menu de navigation, cliquez sur Sécurité.
- Dans la liste Compte de service, sélectionnez le compte de service que vous avez créé.
- Pour Niveaux d'accès, sélectionnez Autoriser l'accès complet à toutes les API Cloud.
Facultatif : spécifiez d'autres options de configuration. Pour en savoir plus, consultez Options de configuration lors de la création d'une instance.
Pour créer et démarrer l'instance, cliquez sur Créer.
gcloud
Pour créer une instance de VM et la configurer pour utiliser un compte de service personnalisé à l'aide de Google Cloud CLI, exécutez la commande
gcloud compute instances create
et indiquez l'adresse e-mail du compte de service et le niveau d'accèscloud-platform
à l'instance de VM.gcloud compute instances create VM_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=https://www.googleapis.com/auth/cloud-platform
Remplacez les éléments suivants :
SERVICE_ACCOUNT_EMAIL
: adresse e-mail du compte de service que vous avez créé. Exemple :my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Pour afficher l'adresse e-mail, consultez la section Répertorier les comptes de service.VM_NAME
: nom de l'instance de VM
Par exemple :
gcloud compute instances create example-vm \ --service-account 123-my-sa@my-project-123.s3ns-system.iam.gserviceaccount.com \ --scopes=https://www.googleapis.com/auth/cloud-platform
Vous pouvez également spécifier le champ d'application à l'aide de l'alias :
--scopes=cloud-platform
. Ces alias ne sont reconnus que par gcloud CLI. L'API et les autres bibliothèques ne reconnaissent pas ces alias. Vous devez donc spécifier l'URI de champ d'application complet.Terraform
Pour configurer une nouvelle VM pour utiliser un compte de service, vous pouvez utiliser la ressource
google_compute_instance
.REST
Utilisez la méthode
instances.insert
pour créer la VM et spécifiez l'adresse e-mail du compte de service ainsi que le niveau d'accès de l'instance de VM.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME
", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME" } ], "serviceAccounts": [ { "email": "SERVICE_ACCOUNT_EMAIL", "scopes": ["https://www.googleapis.com/auth/cloud-platform"] } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel créer la VMZONE
: zone dans laquelle créer la VMMACHINE_TYPE_ZONE
: zone contenant le type de machine à utiliser pour la nouvelle VMMACHINE_TYPE
: type de machine prédéfini ou personnalisé pour la nouvelle VMVM_NAME
: nom de la nouvelle VM.IMAGE_PROJECT
: projet contenant l'image
Par exemple, si vous spécifiezdebian-10
comme famille d'images, spécifiezdebian-cloud
comme le projet d'images.IMAGE
: spécifiez l'une des options suivantes :IMAGE
: version spécifique d'une image publiquePar exemple,
"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
.IMAGE_FAMILY
: famille d'imagesCette action crée la VM à partir de l'image d'OS la plus récente et non obsolète. Par exemple, si vous spécifiez
"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
, Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'imagesDebian 10
.
NETWORK_NAME
: réseau VPC que vous souhaitez utiliser pour la VM. Vous pouvez spécifierdefault
pour utiliser votre réseau par défaut.SERVICE_ACCOUNT_EMAIL
: adresse e-mail du compte de service que vous avez créé. Exemple :my-sa-123@my-project-123.s3ns-system.iam.gserviceaccount.com
. Pour afficher l'adresse e-mail, consultez la section Obtenir une adresse e-mail de compte de service.ENABLE_SECURE_BOOT
(facultatif) : si vous avez choisi une image compatible avec les fonctionnalités de VM protégée, Compute Engine active par défaut le module vTPM et la surveillance de l'intégrité. Compute Engine n'active pas le démarrage sécurisé par défaut.Si vous spécifiez
true
pourenableSecureBoot
, Compute Engine crée une VM avec les trois fonctionnalités de VM protégée activées. Une fois que Compute Engine a démarré votre VM, vous devez l'arrêter pour modifier les options de VM protégée.
Accéder à d'autres services Trusted Cloud by S3NS et les utiliser
Une fois votre VM configurée pour utiliser le compte de service, les applications peuvent utiliser ce compte pour s'authentifier. La méthode la plus courante consiste à s'authentifier à l'aide des identifiants par défaut de l'application et d'une bibliothèque cliente. Certains outils Trusted Cloud by S3NS , tels que gcloud CLI, peuvent utiliser automatiquement le compte de service pour accéder aux API Trusted Cloud by S3NS à partir d'une VM. Pour en savoir plus, consultez Authentifier des charges de travail à l'aide de comptes de service.
Si un compte de service est supprimé, les applications n'ont plus accès aux ressourcesTrusted Cloud by S3NS via ce compte de service. Si vous supprimez les comptes de service par défaut App Engine et Compute Engine, vos VM n'auront plus accès aux ressources du projet. Si vous n'êtes pas sûr qu'un compte de service est utilisé, Google recommande de le désactiver avant de le supprimer. Il est possible de réactiver des comptes de services désactivés si ceux-ci sont encore requis.
Exemple : Accéder aux ressources Cloud Storage à partir de votre VM
Une fois que vous avez configuré votre VM pour utiliser un compte de service doté du rôle
storage.admin
, vous pouvez utiliser des outils tels que gcloud CLI pour gérer les fichiers sur lesquels vous avez stocké Cloud Storage. Pour accéder à vos ressources Cloud Storage, procédez comme suit :Assurez-vous que le compte de service associé à votre VM dispose du rôle
roles/storage.admin
.Si votre VM utilise une image d'OS personnalisée, installez gcloud CLI. Par défaut, gcloud CLI est installée sur la plupart des images d'OS publiques fournies par Trusted Cloud by S3NS.
Connectez-vous à la VM.
Depuis la VM, utilisez la Google Cloud CLI pour gérer vos ressources Cloud Storage.
Étape suivante
- Découvrez comment authentifier les charges de travail à l'aide des comptes de service.
- Découvrez comment modifier le compte de service associé à une VM.
- Découvrez comment répertorier et modifier des comptes de service.
- Passez en revue les bonnes pratiques relatives à l'utilisation des comptes de service et atténuez les risques de sécurité.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/08 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/08 (UTC)."],[[["This document outlines how to create a virtual machine (VM) instance configured to use a user-managed service account, which is a special type of account used by applications or workloads to make authorized API calls to Google Cloud."],["Attaching a user-managed service account to a VM is recommended for applications needing to access Google Cloud resources without end-user involvement, and it is essential to grant appropriate IAM roles to the service account to define its access permissions."],["The process involves creating a new user-managed service account, assigning necessary IAM roles to it, attaching it to the VM, and setting the VM's access scope to the `cloud-platform` scope to enable Google Cloud API access."],["The required permissions to create VMs that use service accounts include specific permissions related to the creation and management of the service account and the VM itself, such as creating and attaching disks, setting metadata, and managing network settings, and can be fulfilled by using a combination of predefined roles."],["After configuring the VM to use a service account, applications can authenticate using Application Default Credentials and client libraries, allowing access to other Google Cloud services; for instance, if the service account has the `storage.admin` role, tools like the gcloud CLI can be used from the VM to manage Cloud Storage resources."]]],[]] -