Cette page explique comment créer et supprimer des clés de compte de service à l'aide de la console Google Cloud, de Google Cloud CLI, de l'API Identity and Access Management, ou de l'une des bibliothèques clientes Google Cloud.
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
-
Comprendre les identifiants de compte de service
Rôles requis
Pour obtenir les autorisations nécessaires pour créer et supprimer des clés de compte de service, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur de clés de compte de service (roles/iam.serviceAccountKeyAdmin
) sur le projet, ou sur le compte de service dont vous souhaitez gérer les clés.
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.
Pour en savoir plus, consultez la section Rôles des comptes de service.
Les rôles de base IAM contiennent également les autorisations nécessaires pour gérer les clés de compte de service. Les rôles de base ne doivent pas être attribués dans un environnement de production, mais ils peuvent être attribués dans un environnement de développement ou de test.
Créer une clé de compte de service
Pour utiliser un compte de service en dehors de Google Cloud, par exemple à partir d'autres plates-formes ou sur site, vous devez d'abord établir l'identité du compte de service. Pour ce faire, un moyen sûr consiste à utiliser les paires de clés publique/privée. Lorsque vous créez une clé de compte de service, la partie publique est stockée sur Google Cloud, tandis que la partie privée n'est disponible que pour vous. Pour en savoir plus sur les paires de clés publiques/privées, consultez la page Clés de compte de service.
Pour créer une clé de compte de service, vous pouvez utiliser la console Google Cloud, gcloud CLI, la méthode serviceAccounts.keys.create()
ou l'une des bibliothèques clientes.
Un compte de service peut compter jusqu'à 10 clés.
Par défaut, les clés de compte de service n'expirent jamais. Vous pouvez utiliser une contrainte liée aux règles d'administration pour spécifier la durée de validité d'une clé de compte de service. Pour en savoir plus, consultez la section Délais d'expiration des clés gérées par l'utilisateur.
Dans les exemples ci-dessous, SA_NAME
est le nom de votre compte de service et PROJECT_ID
est l'ID de votre projet Google Cloud. Vous pouvez récupérer la chaîne SA_NAME@PROJECT_ID.iam.gserviceaccount.com
à partir de la page Comptes de service de la console Google Cloud.
Console
- Dans Google Cloud Console, accédez à la page Comptes de service.
Accéder à la page "Comptes de service"
Les étapes restantes apparaîtront automatiquement dans la console Google Cloud.
- Sélectionnez un projet.
- Cliquez sur l'adresse e-mail du compte de service pour lequel vous souhaitez créer une clé.
- Cliquez sur l'onglet
Clés . - Cliquez sur le menu déroulant Ajouter une clé, puis sélectionnez Créer une clé.
- Sélectionnez le type de clé JSON et cliquez sur Créer.
Cliquez sur Créer pour télécharger un fichier de clé de compte de service. Vous ne pourrez le télécharger qu'une seule fois.
La clé téléchargée est au format suivant, où PRIVATE_KEY
correspond à la partie privée de la paire de clés publique/privée :
{
"type": "service_account",
"project_id": "PROJECT_ID",
"private_key_id": "KEY_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "SERVICE_ACCOUNT_EMAIL",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}
Vous devez veiller à stocker le fichier de clé de façon sécurisée, car il permet de s'authentifier en tant que compte de service. Vous pouvez déplacer et renommer ce fichier comme vous le souhaitez.
Vous pouvez utiliser des fichiers de clé de compte de service pour authentifier une application en tant que compte de service.
gcloud
Exécutez la commande gcloud iam service-accounts keys create
pour créer des clés de compte de service.
Remplacez les valeurs suivantes :
KEY_FILE
: chemin d'accès à un nouveau fichier de sortie destiné à la clé privée, par exemple~/sa-private-key.json
.SA_NAME
: nom du compte de service pour lequel créer une clé.PROJECT_ID
: ID de votre projet Google Cloud.
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Sortie :
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
Le fichier de clé du compte de service est maintenant téléchargé sur votre ordinateur. Une fois téléchargé, vous ne pouvez plus le télécharger à nouveau.
La clé téléchargée est au format suivant, où PRIVATE_KEY
correspond à la partie privée de la paire de clés publique/privée :
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Vous devez veiller à stocker le fichier de clé de façon sécurisée, car il permet de s'authentifier en tant que compte de service. Vous pouvez déplacer et renommer ce fichier comme vous le souhaitez.
Vous pouvez utiliser des fichiers de clé de compte de service pour authentifier une application en tant que compte de service.
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 projects.serviceAccounts.keys.create
crée une clé pour un compte de service.
Avant d'utiliser les données de requête, 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
: nom du compte de service pour lequel vous souhaitez créer une clé.KEY_ALGORITHM
: facultatif. Algorithme de clé à utiliser pour la clé. La valeur par défaut, susceptible d'être modifiée, est une clé RSA de 2 048 bits. Pour obtenir la liste de toutes les valeurs possibles, consultez la documentation de référence surServiceAccountKeyAlgorithm
.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
Corps JSON de la requête :
{ "keyAlgorithm": "KEY_ALGORITHM" }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient une clé pour votre compte de service. La clé renvoyée est au format suivant, où ENCODED_PRIVATE_KEY
correspond à la partie privée de la paire de clés publique/privée, encodée en base64.
{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
Pour créer un fichier de clé servant à vous authentifier en tant que compte de service, décodez les données de la clé privée et enregistrez-les dans un fichier :
Linux
Exécutez la commande suivante :
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Remplacez PATH
par le chemin d'accès au fichier dans lequel vous souhaitez enregistrer la clé. Utilisez l'extension de fichier .json
.
macOS
Exécutez la commande suivante :
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Remplacez PATH
par le chemin d'accès au fichier dans lequel vous souhaitez enregistrer la clé. Utilisez l'extension de fichier .json
.
PowerShell
Enregistrez les données de clé privée encodées (
ENCODED_PRIVATE_KEY
) dans un fichier.Décodez le fichier à l'aide de
certutil
:certutil -decode ENCODED_FILE DECODED_FILE
Remplacez les valeurs suivantes :
ENCODED_FILE
: chemin d'accès au fichier contenant les données de clé privée encodées.DECODED_FILE
: chemin d'accès au fichier dans lequel vous souhaitez enregistrer la clé. Utilisez l'extension de fichier.json
.
Veillez à stocker les données de la clé en toute sécurité, car elles peuvent être utilisées pour s'authentifier en tant que compte de service.
Vous pouvez utiliser des fichiers de clé de compte de service pour authentifier une application en tant que compte de service.
Supprimer une clé de compte de service
La suppression d'une clé de compte de service vous empêche de manière permanente d'utiliser cette clé pour vous authentifier auprès des API Google.
Vous ne pouvez pas annuler la suppression d'une clé. Avant de supprimer une clé, nous vous recommandons de la désactiver, puis de vous assurer qu'elle n'est plus nécessaire. Vous pouvez ensuite la supprimer.
Il est recommandé d'alterner régulièrement les vos clés de compte de service. Pour en savoir plus sur la rotation des clés de compte de service, consultez la page Rotation des clés de compte de service.
Console
- Dans Google Cloud Console, accédez à la page Comptes de service.
Accéder à la page "Comptes de service"
Les étapes restantes apparaîtront automatiquement dans la console Google Cloud.
- Sélectionnez un projet.
- Sur la page Comptes de service, cliquez sur l'adresse e-mail du compte de service dont vous souhaitez supprimer une ou des clés.
- Cliquez sur l'onglet Clés.
- Dans la liste de clés, cliquez sur Supprimer pour chaque clé que vous souhaitez supprimer.
gcloud
Exécutez la commande gcloud iam service-accounts keys delete
pour supprimer des clés de compte de service.
Remplacez les valeurs suivantes :
KEY_ID
: ID de la clé à supprimer. Pour trouver l'ID de la clé, répertoriez toutes les clés du compte de service, identifiez la clé que vous souhaitez supprimer, puis copiez son ID.SA_NAME
: nom du compte de service auquel appartient la clé.PROJECT_ID
: ID de votre projet Google Cloud.
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Résultat :
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
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 projects.serviceAccounts.keys.delete
supprime une clé de compte de service.
Avant d'utiliser les données de requête, 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
: nom du compte de service dont vous souhaitez supprimer la clé.KEY_ID
: ID de la clé que vous souhaitez supprimer. Pour trouver l'ID de la clé, répertoriez toutes les clés du compte de service, identifiez la clé que vous souhaitez supprimer, puis copiez son ID à la fin du champname
. L'ID de la clé correspond à tout ce qui suitkeys/
.
Méthode HTTP et URL :
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ }
Étapes suivantes
- Découvrez comment répertorier et obtenir des clés de compte de service.
- Découvrez comment importer vos propres clés de compte de service publiques.
- Identifiez les bonnes pratiques pour gérer les clés de compte de service.
- Découvrez des alternatives aux clés de compte de service pour l'authentification.
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