Cette page explique comment supprimer et annuler la suppression de comptes de service à l'aide de l'API Cloud IAM (Cloud Identity and Access Management), de la console Google Cloud et de l'outil de ligne de commande gcloud
.
Avant de commencer
Enable the IAM API.
Configurez l'authentification.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Consultez la documentation relative aux comptes de service IAM.
Rôles requis
Pour obtenir les autorisations nécessaires pour supprimer et annuler la suppression de comptes de service, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
- Pour supprimer des comptes de service : Supprimer des comptes de service (
roles/iam.serviceAccountDeleter
) - Pour supprimer et annuler la suppression de 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.
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 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.
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 applications App Engine et les instances de VM Compute Engine qui utilisent ces comptes de service n'auront plus accès aux ressources du projet.
Soyez prudents lorsque vous supprimez des comptes de service. Avant de supprimer un compte de service, vérifiez qu'il n'est plus utilisé par vos applications critiques. Si vous ne savez pas si un compte de service est utilisé, Google recommande de le désactiver plutôt que de le supprimer. Il est possible de réactiver des comptes de services désactivés si ceux-ci sont encore requis.
Si vous souhaitez restaurer un compte de service supprimé, vous pouvez annuler la suppression s'il s'est écoulé 30 jours ou moins depuis que vous avez supprimé le compte. Au bout de 30 jours, 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.
Pour réduire davantage le risque de suppression d'un compte de service nécessaire, vous pouvez également activer les recommandations de modification des risques. Les recommandations de modification de risque génèrent des avertissements lorsque vous essayez de supprimer des comptes de service identifiés par Google Cloud comme importants.
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 Google 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
-
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.
-
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
Résultat :
Deleted 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
serviceAccounts.delete
supprime 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_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.
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, 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 la console Google Cloud, 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
-
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.
-
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
Output:
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 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_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" } }
É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 gratuitSauf 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 2024/11/22 (UTC).