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 Google Cloud Console 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
Activez IAM API.
Consultez la documentation relative aux comptes de service IAM.
Installer Google Cloud CLI
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les comptes de service, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Pour afficher les comptes de service et leurs métadonnées : lire les comptes de service (
roles/iam.serviceAccountViewer
). -
Pour afficher et créer des comptes de service : créer des comptes de service (
roles/iam.serviceAccountCreator
). -
Pour afficher et supprimer des comptes de service : supprimer des comptes de service (
roles/iam.serviceAccountDeleter
) -
Pour gérer entièrement (afficher, créer, mettre à jour, désactiver, activer, supprimer, annuler la suppression et gérer l'accès) les comptes de service : administrateur de compte de service (
roles/iam.serviceAccountAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Pour en savoir plus sur ces rôles, 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 comptes 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 un compte de service
Lorsque vous créez un compte de service, vous devez fournir un ID alphanumérique (SA_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 SA_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 :
SA_DESCRIPTION
est une description facultative du compte de service.SA_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. Si vous essayez 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 Cloud Console, accédez à la page Créer un compte de service.
Sélectionnez un projet Cloud.
Saisissez le nom du compte de service à afficher dans Cloud Console.
La console 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 autorisés à emprunter l'identité du compte de service.
Facultatif : dans le champ Rôle d'administrateur du compte de service, ajoutez les membres autorisés à gérer le compte de service.
Cliquez sur OK pour terminer la création du compte de service.
gcloud
Pour créer le compte de service, exécutez la commande
gcloud iam service-accounts create
:gcloud iam service-accounts create SERVICE_ACCOUNT_ID \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Remplacez les valeurs suivantes :
SERVICE_ACCOUNT_ID
: ID du compte de service.DESCRIPTION
: description facultative du compte de service.DISPLAY_NAME
: nom de compte de service à afficher dans la console 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_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Remplacez les valeurs suivantes :
PROJECT_ID
: ID du projetSERVICE_ACCOUNT_ID
: ID du compte de service.ROLE_NAME
: nom de rôle, par exempleroles/compute.osLogin
.
Facultatif : pour permettre à un utilisateur d'emprunter l'identité du compte de service, exécutez la commande
gcloud iam service-accounts add-iam-policy-binding
pour lui accorder 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_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Remplacez les valeurs suivantes :
PROJECT_ID
: ID du projetSERVICE_ACCOUNT_ID
: ID du compte de service.USER_EMAIL
: adresse e-mail de l'utilisateur.
REST
La méthode serviceAccounts.create
crée 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
: 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" }
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 en langage C++.
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 en langage C#.
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 en langage Go.
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 en langage Java.
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 en langage Python.
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.
Répertorier les comptes de service
Vous pouvez répertorier vos comptes de service pour vous aider à auditer vos comptes et clés de service, ou dans le cadre d'un outil personnalisé de gestion des comptes de service.
Console
Dans Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
La page Comptes de service répertorie tous les comptes de service gérés par l'utilisateur dans le projet que vous avez sélectionné. Elle ne répertorie pas les comptes de service gérés par Google.
gcloud
Exécutez la commande gcloud iam service-accounts list
pour répertorier tous les comptes de service d'un projet.
Commande :
gcloud iam service-accounts list
La sortie correspond à la liste de tous les comptes de service du projet :
NAME EMAIL SA_DISPLAY_NAME_1 SA_NAME_1@PROJECT_ID.iam.gserviceaccount.com SA_DISPLAY_NAME_2 SA_NAME_2@PROJECT_ID.iam.gserviceaccount.com
REST
La méthode serviceAccounts.list
répertorie tous les comptes de service de votre projet.
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
.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "accounts": [ { "name": "projects/my-project/serviceAccounts/sa-1@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "sa-1@my-project.iam.gserviceaccount.com", "description": "My first service account", "displayName": "Service account 1", "etag": "BwUpTsLVUkQ=", "oauth2ClientId": "987654321098765432109" }, { "name": "projects/my-project/serviceAccounts/sa-2@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "234567890123456789012", "email": "sa-2@my-project.iam.gserviceaccount.com", "description": "My second service account", "displayName": "Service account 2", "etag": "UkQpTwBVUsL=", "oauth2ClientId": "876543210987654321098" } ] }
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 en langage C++.
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 en langage C#.
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 en langage Go.
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 en langage Java.
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 en langage Python.
Mettre à jour un compte de service
Le nom d'affichage (nom convivial) et la description d'un compte de service permettent généralement d'obtenir des informations supplémentaires le concernant, telles que sa finalité ou une personne à contacter.
Console
Dans Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur l'adresse e-mail du compte de service que vous souhaitez renommer.
Saisissez le nouveau nom dans le champ Nom, puis cliquez sur Enregistrer.
gcloud
Exécutez la commande gcloud iam service-accounts update
pour mettre à jour un compte de service.
Commande :
gcloud iam service-accounts update \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --description="UPDATED_SA_DESCRIPTION" \ --display-name="UPDATED_DISPLAY_NAME"
La sortie confirme le changement de nom du compte de service :
description: UPDATED_SA_DESCRIPTION displayName: UPDATED_DISPLAY_NAME name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
La méthode serviceAccounts.patch
met à jour 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_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.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.- Remplacez au moins l'un des éléments suivants :
UPDATED_DISPLAY_NAME
: nouveau nom à afficher pour votre compte de service.UPDATED_DESCRIPTION
: nouvelle description de votre compte de service.
Méthode HTTP et URL :
PATCH https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Corps JSON de la requête :
{ "serviceAccount": { "email": "SA_NAME@PROJECT_ID.iam.gserviceaccount.com", "displayName": "UPDATED_DISPLAY_NAME", "description": "UPDATED_DESCRIPTION" }, "updateMask": "displayName,description" }
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", "displayName": "My updated service account", "description": "An updated description of my service account" }
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 en langage C++.
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 en langage C#.
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 en langage Go.
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 en langage Java.
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 en langage Python.
Désactiver un compte de service
Comme pour la suppression, lorsque vous désactivez un compte de service, les applications ne peuvent plus s'en servir pour accéder aux ressources Google Cloud. Si vous désactivez les comptes de service App Engine et Compute Engine par défaut, les instances n'auront plus accès aux ressources du projet. Si vous tentez de désactiver un compte de service déjà désactivé, l'action n'aura aucun effet.
Contrairement à la suppression, la réactivation des comptes de service désactivés s'effectue aisément si nécessaire. Nous vous recommandons de désactiver un compte de service avant de le supprimer. Vous pourrez ainsi vous assurer qu'aucune application critique n'utilise ce compte de service.
Console
Dans Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur le nom du compte de service que vous souhaitez désactiver.
Sous État du compte de service, cliquez sur Désactiver le compte de service, puis cliquez sur Désactiver pour confirmer la modification.
gcloud
Exécutez la commande gcloud iam service-accounts disable
pour désactiver un compte de service.
Commande :
gcloud iam service-accounts disable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Sortie :
Disabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
La méthode serviceAccounts.disable
désactive immédiatement 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_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:disable
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse sera vide.
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 en langage C++.
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 en langage C#.
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 en langage Go.
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 en langage Java.
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 en langage Python.
Activer un compte de service
Après avoir activé un compte de service désactivé, les applications peuvent de nouveau s'en servir pour accéder aux ressources Google Cloud.
Vous pouvez réactiver un compte de service désactivé quand vous voulez. Si vous tentez de réactiver un compte de service déjà activé, l'action n'aura aucun effet.
Console
Dans Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur le nom du compte de service que vous souhaitez activer.
Sous État du compte de service, cliquez sur Activer le compte de service, puis cliquez sur Activer pour confirmer la modification.
gcloud
Exécutez la commande gcloud iam service-accounts enable
pour activer un compte de service.
Commande :
gcloud iam service-accounts enable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Sortie :
Enabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
La méthode serviceAccounts.enable
active un compte de service précédemment désactivé.
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_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:enable
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse sera vide.
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 en langage C++.
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 en langage C#.
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 en langage Go.
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 en langage Java.
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 en langage Python.
Supprimer un compte de service
Lorsque vous supprimez un compte de service, les applications ne peuvent plus s'en servir pour accéder aux ressources Google Cloud. Si vous supprimez les comptes de service par défaut App Engine et Compute Engine, les instances n'auront plus accès aux ressources du projet.
Avant de supprimer un compte de service, prenez la précaution de vérifier qu'il n'est plus utilisé par vos applications critiques. Si vous n'êtes pas sûr qu'un compte de service est utilisé, nous vous recommandons de le désactiver avant de le supprimer. La réactivation des comptes de service désactivés s'effectue aisément si ceux-ci sont toujours en cours d'utilisation.
Si vous supprimez un compte de service, puis créez un compte de service portant le même nom, le nouveau compte de service est traité comme une identité distincte. Il n'hérite pas des rôles attribués au compte de service supprimé. En revanche, lorsque vous supprimez un compte de service, puis que vous annulez sa suppression, l'identité du compte de service ne change pas et le compte de service conserve ses rôles.
Lorsqu'un compte de service est supprimé, ses liaisons de rôle ne sont pas immédiatement supprimées. Elles le sont définitivement du système de façon automatique après un délai maximal de 60 jours. Pendant ce temps, le compte de service apparaît dans les liaisons de rôle avec un préfixe deleted:
et un suffixe ?uid=NUMERIC_ID
, où NUMERIC_ID
est l'ID numérique unique du compte de service.
Les comptes de service supprimés ne sont pas comptabilisés dans votre quota de compte de service.
Console
Dans Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Sélectionnez le compte de service que vous souhaitez supprimer, puis cliquez sur Supprimer
.
gcloud
Exécutez la commande gcloud iam service-accounts delete
pour supprimer un compte de service.
Commande :
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Sortie :
Deleted service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
La méthode serviceAccounts.delete
supprime 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_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.
Méthode HTTP et URL :
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse sera vide.
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 en langage C++.
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 en langage C#.
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 en langage Go.
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 en langage Java.
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 en langage Python.
Annuler la suppression d'un compte de service
Dans certains cas, vous pouvez utiliser la commande undelete
pour annuler la suppression d'un compte de service. Vous pouvez généralement annuler la suppression d'un compte de service s'il répond aux critères suivants :
Le compte de service a été supprimé il y a moins de 30 jours.
Au bout de 30 jours, Cloud IAM supprime définitivement le compte de service. Google Cloud ne peut pas récupérer le compte de service après sa suppression définitive, même si vous déposez une demande d'assistance.
Il n'existe aucun compte de service portant le même nom que le compte de service supprimé.
Par exemple, supposons que vous supprimiez accidentellement le compte de service
my-service-account@project-id.iam.gserviceaccount.com
. Vous avez toujours besoin d'un compte de service portant ce nom. Vous devez donc créer un autre compte de service portant le même nom,my-service-account@project-id.iam.gserviceaccount.com
.Le nouveau compte de service n'hérite pas des autorisations du compte de service supprimé. En réalité, il est complètement distinct du compte de service supprimé. Cependant, vous ne pouvez pas annuler la suppression du compte de service d'origine, car le nouveau compte de service porte le même nom.
Pour résoudre ce problème, supprimez le nouveau compte de service, puis essayez d'annuler la suppression du compte de service d'origine.
Si vous ne parvenez pas à annuler la suppression du compte de service, vous pouvez en créer un autre portant le même nom, révoquer tous les rôles du compte de service supprimé, puis attribuer les mêmes rôles au nouveau compte de service. Pour en savoir plus, consultez la section Stratégies avec des comptes principaux supprimés.
Trouver l'ID numérique d'un compte de service supprimé
Lorsque vous annulez la suppression d'un compte de service, vous devez indiquer son ID numérique. L'ID numérique est un numéro à 21 chiffres, tel que 123456789012345678901
, qui identifie de manière unique le compte de service. Par exemple, si vous supprimez un compte de service, puis créez un compte de service portant le même nom, le compte de service d'origine et le nouveau compte de service auront des ID numériques différents.
Si vous savez qu'une liaison de stratégie d'autorisation inclut le compte de service supprimé, vous pouvez obtenir la stratégie d'autorisation, puis rechercher l'ID numérique dans la stratégie d'autorisation. L'ID numérique est ajouté au nom du compte de service supprimé. Par exemple, dans cette stratégie d'autorisation, l'ID numérique du compte de service supprimé est 123456789012345678901
:
{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
Les ID numériques ne sont ajoutés qu'aux noms des comptes principaux supprimés.
Vous pouvez également rechercher dans vos journaux d'audit l'opération DeleteServiceAccount
qui a supprimé le compte de service :
Dans Cloud Console, accédez à la page Explorateur de journaux.
Dans l'éditeur de requête, saisissez la requête suivante, en remplaçant
SERVICE_ACCOUNT_EMAIL
par l'adresse e-mail de votre compte de service (par exemple,my-service-account@project-id.iam.gserviceaccount.com
) :resource.type="service_account" resource.labels.email_id="SERVICE_ACCOUNT_EMAIL" "DeleteServiceAccount"
Si le compte de service a été supprimé il y a plus d'une heure, cliquez sur
Dernière heure, sélectionnez une période plus longue dans la liste déroulante, puis cliquez sur Appliquer.Cliquez sur Run query. L'explorateur de journaux affiche les opérations
DeleteServiceAccount
qui ont affecté les comptes de service portant le nom que vous avez spécifié.Recherchez et notez l'ID numérique du compte de service supprimé en effectuant l'une des opérations suivantes :
Si les résultats de recherche n'incluent qu'une seule opération
DeleteServiceAccount
, recherchez l'ID numérique dans le champ ID unique du volet Journaux des champs.Si les résultats de la recherche affichent plusieurs journaux, procédez comme suit :
Recherchez l'entrée de journal appropriée. Pour trouver l'entrée de journal appropriée, cliquez sur la flèche de développement (
) à côté d'une entrée de journal. Examinez les détails de l'entrée de journal et déterminez si celle-ci affiche l'opération que vous souhaitez annuler. Répétez cette procédure jusqu'à ce que vous trouviez l'entrée de journal appropriée.Dans l'entrée de journal correcte, recherchez l'ID numérique du compte de service. Pour localiser l'ID numérique, développez le champ
protoPayload
de l'entrée de journal, puis recherchez le champresourceName
.L'ID numérique correspond à tout ce qui suit
serviceAccounts
dans le champresourceName
.
Annuler la suppression du compte de service à l'aide de l'ID numérique
Une fois que vous avez trouvé l'ID numérique du compte de service concerné, vous pouvez tenter d'annuler sa suppression.
gcloud
Exécutez la commande gcloud beta iam service-accounts undelete
pour annuler la suppression d'un compte de service.
Commande :
gcloud beta iam service-accounts undelete ACCOUNT_ID
Sortie :
restoredAccount: email: SA_NAME@PROJECT_ID.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com oauth2ClientId: '123456789012345678901' projectId: PROJECT_ID uniqueId: 'ACCOUNT_ID'
REST
La méthode serviceAccounts.undelete
restaure un compte de service supprimé.
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_NUMERIC_ID
: ID numérique unique du compte de service.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
Pour envoyer votre requête, développez l'une des options suivantes :
S'il est possible d'annuler la suppression du compte, vous recevez un code de réponse 200 OK
avec des détails sur le compte de service restauré, semblable à ce qui suit :
{ "restoredAccount": { "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" } }
Étape suivante
- Apprenez à créer et à gérer des clés de compte 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 utiliser les recommandations de rôle pour réduire le champ d'application des autorisations de tous les comptes principaux, y compris des comptes de service.
- Découvrez comment autoriser les comptes principaux à emprunter l'identité de comptes de service.
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