Cette page explique comment créer et gérer des comptes de service à l'aide de l'API Cloud IAM (Cloud Identity and Access Management), de la lconsol Google Cloud et de l'outil de ligne de commande gcloud
.
Par défaut, vous pouvez créer jusqu'à 100 comptes de service par projet pour contrôler l'accès à vos ressources. Vous pouvez demander une augmentation de quota si nécessaire. En savoir plus sur les quotas et les limites
Avant de commencer
Enable the IAM API.
Configurez l'authentification.
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
Vous pouvez utiliser les exemples gcloud CLI de cette page dans l'un des environnements de développement suivants :
-
Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.
En bas de cette page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
-
Shell local : pour utiliser gcloud CLI dans un environnement de développement local, installez et initialisez gcloud CLI.
C++
Pour utiliser les exemples C++ de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
C#
Pour utiliser les exemples .NET de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Consultez la documentation relative aux comptes de service IAM.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des comptes de service, demandez à votre administrateur de vous accorder le rôle IAM Créer des comptes de service (roles/iam.serviceAccountCreator
) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Si vous souhaitez autoriser des comptes de service nouvellement créés à accéder à votre projet, vous devez également disposer du rôle Administrateur de projet IAM (roles/resourcemanager.projectIamAdmin
).
Créer un compte de service
Lorsque vous créez un compte de service, vous devez fournir un ID alphanumérique (SERVICE_ACCOUNT_NAME
dans les exemples ci-dessous), tel que my-service-account
. L'ID doit comporter entre 6 et 30 caractères alphanumériques pouvant inclure des minuscules et des tirets. Une fois le compte de service créé, vous ne pouvez pas en modifier le nom.
Le nom du compte de service apparaît dans l'adresse e-mail provisionnée lors de la création, au format SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
.
Chaque compte de service possède également un ID numérique unique permanent, généré automatiquement.
Lors de la création d'un compte de service, vous devez également fournir les informations suivantes :
DESCRIPTION
est une description facultative du compte de service.DISPLAY_NAME
est un nom convivial pour le compte de service.PROJECT_ID
est l'ID du projet Google Cloud.
Une fois le compte de service créé, vous devrez peut-être attendre au moins 60 secondes avant de l'utiliser. Ce comportement se produit car les opérations de lecture sont cohérentes à terme. Il peut s'écouler un certain temps avant que le nouveau compte de service devienne visible. Si vous tentez de lire ou d'utiliser un compte de service immédiatement après sa création et que vous recevez une erreur, vous pouvez relancer la requête avec un intervalle exponentiel entre les tentatives.
Console
- Dans la console Google Cloud, accédez à la page Créer un compte de service.
Accéder à la page "Créer un compte de service"
Les étapes restantes apparaîtront automatiquement dans la console Google Cloud.
- Sélectionnez un projet Google Cloud.
- Saisissez le nom du compte de service à afficher dans la console Google Cloud.
La console Google Cloud génère un ID de compte de service basé sur ce nom. Modifiez l'ID si nécessaire. Vous ne pourrez pas le modifier par la suite.
- Facultatif : saisissez la description du compte de service.
- Si vous ne souhaitez pas définir de contrôles des accès à ce stade, cliquez sur OK pour terminer la création du compte de service. Pour définir les contrôles des accès dès maintenant, cliquez sur Créer et continuer, puis passez à l'étape suivante.
- Facultatif : choisissez un ou plusieurs rôles IAM à attribuer au compte de service du projet.
- Lorsque vous avez terminé d'ajouter des rôles, cliquez sur Continuer.
- Facultatif : dans le champ Rôle d'utilisateur du compte de service, ajoutez les membres qui doivent associer le compte de service à d'autres ressources.
- Facultatif : dans le champ Rôle d'administrateur du compte de service, ajoutez les membres qui doivent gérer le compte de service.
- Cliquez sur OK pour terminer la création du compte de service.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Pour créer le compte de service, exécutez la commande
gcloud iam service-accounts create
:gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Remplacez les valeurs suivantes :
-
SERVICE_ACCOUNT_NAME
: nom du compte de service. -
DESCRIPTION
: description facultative du compte de service. -
DISPLAY_NAME
: nom du compte de service à afficher dans la console Google Cloud.
-
-
Facultatif : pour attribuer un rôle IAM à votre compte de service sur le projet, exécutez la commande
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Remplacez les valeurs suivantes :
-
PROJECT_ID
: ID du projet -
SERVICE_ACCOUNT_NAME
: nom du compte de service. -
ROLE_NAME
: nom de rôle, par exempleroles/compute.osLogin
.
-
-
Facultatif : Pour autoriser les utilisateurs à associer le compte de service à d'autres ressources, exécutez la commande
gcloud iam service-accounts add-iam-policy-binding
pour attribuer à un utilisateur le rôle utilisateur du compte de service (roles/iam.serviceAccountUser
) sur le compte de service :gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Remplacez les valeurs suivantes :
PROJECT_ID
: ID du projetSERVICE_ACCOUNT_NAME
: nom du compte de service.USER_EMAIL
: adresse e-mail de l'utilisateur.
C++
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
REST
La méthode serviceAccounts.create
crée un compte de service.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
.SA_NAME
: ID alphanumérique de votre compte de service. Ce nom doit comporter entre 6 et 30 caractères. Il peut inclure des caractères alphanumériques minuscules et des tirets.SA_DESCRIPTION
: facultatif. Description du compte de service.SA_DISPLAY_NAME
: nom lisible du compte de service.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Corps JSON de la requête :
{ "accountId": "SA_NAME", "serviceAccount": { "description": "SA_DESCRIPTION", "displayName": "SA_DISPLAY_NAME" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" }
Une fois la création du compte de service terminée, attribuez un ou plusieurs rôles à ce compte de service afin qu'il puisse agir en votre nom.
En outre, si le compte de service doit accéder aux ressources d'autres projets, vous devez généralement activer les API pour ces ressources dans le projet dans lequel vous avez créé le compte de service.
Étapes suivantes
- Découvrez comment répertorier et modifier des comptes de service.
- Examinez le processus permettant d'attribuer des rôles Cloud IAM à tous les types de comptes principaux, y compris les comptes de service.
- Découvrez comment associer des comptes de service aux ressources.
Faites l'essai
Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
Essai gratuit