En esta página, se explica cómo borrar y recuperar cuentas de servicio con la API de Identity and Access Management (IAM), la consola de Google Cloud y la herramienta de línea de comandos de gcloud.
Antes de comenzar
Habilita la API de IAM.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.Configura la autenticación.
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
Console
Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.
gcloud
En la consola de Google Cloud , activa Cloud Shell.
En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
C#
Para usar las muestras de .NET de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .
C++
Para usar las muestras de C++ de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad (IdP) externo, primero debes acceder a gcloud CLI con tu identidad federada.
-
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Google Cloud .
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .
-
Comprende las cuentas de servicio de IAM
Roles obligatorios
Para obtener los permisos que necesitas para borrar y recuperar cuentas de servicio, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
-
Para borrar cuentas de servicio: Borrar cuentas de servicio (
roles/iam.serviceAccountDeleter) -
Para borrar y recuperar cuentas de servicio: Administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Las funciones básicas de IAM también contienen permisos para administrar cuentas de servicio. No deberías otorgar funciones básicas en un entorno de producción, pero puedes otorgarlas en un entorno de desarrollo o de prueba.
Borra una cuenta de servicio
Cuando borras una cuenta de servicio, las aplicaciones ya no tendrán acceso a los recursos deGoogle Cloud a través de esa cuenta. Si borras las cuentas de servicio predeterminadas de App Engine y Compute Engine, las aplicaciones de App Engine y las instancias de VM de Compute Engine que usan esas cuentas de servicio ya no tendrán acceso a los recursos del proyecto.
Borra las cuentas de servicio con cuidado. Asegúrate de que tus aplicaciones importantes ya no usen la cuenta de servicio antes de borrarla. Si no estás seguro de si se está usando una cuenta de servicio, te recomendamos que inhabilites la cuenta de servicio en lugar de borrarla. Las cuentas de servicio inhabilitadas se pueden volver a habilitar si aún son necesarias. Para obtener más información, consulta Inhabilita las cuentas de servicio que no se usen antes de borrarlas.
Si deseas restablecer una cuenta de servicio borrada, puedes recuperarla, si pasaron 30 días o menos desde que borraste la cuenta de servicio. Después de 30 días, IAM quitará la cuenta de servicio de forma permanente. Google Cloud no puede recuperar la cuenta de servicio después de que se quita de forma permanente, incluso si presentas una solicitud de asistencia.
Para reducir aún más el riesgo de borrar una cuenta de servicio necesaria, también puedes habilitar las recomendaciones de riesgos de cambios. Las recomendaciones de riesgos de cambios generan advertencias cuando intentas borrar cuentas de servicio que Google Cloud identificó como importantes.
Si borras una cuenta de servicio y, luego, creas una nueva con el mismo nombre, la cuenta nueva se trata como una identidad independiente. No hereda las funciones otorgadas a la cuenta de servicio que se borró. En cambio, cuando borras una cuenta de servicio y, luego, la recuperas, la identidad de la cuenta de servicio no cambia y la cuenta de servicio conserva sus funciones.
Cuando se borra una cuenta de servicio, sus vinculaciones de roles no se quitan
de inmediato, sino que se borran definitivamente del sistema de manera automática después de un máximo de
60 días. Hasta ese momento, la cuenta de servicio aparecerá en
las vinculaciones de roles con un prefijo deleted: y un
sufijo ?uid=NUMERIC_ID, en el que
NUMERIC_ID es un ID numérico único de la cuenta de servicio.
Las cuentas de servicio borradas no se toman en cuenta en la cuota de la cuenta de servicio.
Console
En la consola de Google Cloud , ve a la página Cuentas de servicio.
Selecciona un proyecto
Selecciona la cuenta de servicio que deseas borrar y, luego, haz clic en Borrar .
gcloud
-
En la consola de Google Cloud , activa Cloud Shell.
En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
-
Ejecuta el comando
gcloud iam service-accounts deletepara borrar una cuenta de servicio.Comando:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.comResultado:
Deleted service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
A través del método serviceAccounts.delete, se borra una cuenta de servicio.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud . Los IDs de proyecto son cadenas alfanuméricas, comomy-project.SA_ID: El ID de la cuenta de servicio. Puede ser la dirección de correo electrónico de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.como el ID numérico único de la cuenta de servicio.
Método HTTP y URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta correctamente, el cuerpo de la respuesta estará vacío.
Recupera una cuenta de servicio
En algunos casos, puedes usar el comando undelete para recuperar una cuenta de servicio borrada. Por lo general, puedes recuperar una cuenta de servicio borrada si cumple con los criterios siguientes:
La cuenta de servicio se borró hace menos de 30 días.
Después de 30 días, IAM quitará la cuenta de servicio de forma permanente. Google Cloud no puede recuperar la cuenta de servicio después de que se quita de forma permanente, incluso si presentas una solicitud de asistencia.
No existe una cuenta de servicio con el mismo nombre que la cuenta de servicio borrada.
Por ejemplo, supongamos que borras la cuenta de servicio
my-service-account@project-id.iam.gserviceaccount.compor accidente. Aún necesitas una cuenta de servicio con ese nombre, por lo que debes crear una cuenta de servicio nueva con el mismo nombre,my-service-account@project-id.iam.gserviceaccount.com.La cuenta de servicio nueva no hereda los permisos de la cuenta de servicio que se borró. En efecto, es completamente independiente de la cuenta de servicio que se borró. Sin embargo, no puedes recuperar la cuenta de servicio original, ya que la cuenta de servicio nueva tiene el mismo nombre.
Para solucionar este problema, borra la cuenta de servicio nueva y, luego, intenta recuperar la cuenta original.
Si no puedes recuperar la cuenta de servicio, puedes crear una nueva con el mismo nombre. Revoca todas las funciones de la cuenta de servicio borrada y otorga las mismas funciones a la cuenta de servicio nueva. Para obtener más información, consulta Políticas con principales borrados.
Busca el ID numérico de una cuenta de servicio borrada
Cuando recuperas una cuenta de servicio, debes proporcionar su ID numérico. El ID numérico es un número de 21 dígitos, como 123456789012345678901, que identifica de forma única la cuenta de servicio. Por ejemplo, si borras una cuenta de servicio y, luego, creas una nueva con el mismo nombre, la original y la nueva tendrán ID numéricos diferentes.
Si sabes que una vinculación en una política de permisos incluye a la cuenta de servicio borrada, puedes obtener la política de permisos y, luego, buscar el ID numérico en la política de permisos. El ID numérico se agrega al nombre de la cuenta de servicio borrada. Por ejemplo, en esta política de permisos, el ID numérico de la cuenta de servicio borrada es 123456789012345678901:
{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
Los ID numéricos solo se agregan a los nombres de las principales borrados.
Como alternativa, puedes buscar en tus registros de auditoría la operación DeleteServiceAccount que borró la cuenta de servicio:
En la consola de Google Cloud , ve a la página Explorador de registros.
En el editor de consultas, ingresa la siguiente consulta y reemplaza
SERVICE_ACCOUNT_EMAILpor la dirección de correo electrónico de la cuenta de servicio (por ejemplo,my-service-account@project-id.iam.gserviceaccount.com):resource.type="service_account" resource.labels.email_id="SERVICE_ACCOUNT_EMAIL" "DeleteServiceAccount"
Si la cuenta de servicio se borró hace más de una hora, haz clic en Última hora, selecciona un período de tiempo más largo de la lista desplegable y, luego, haz clic en Aplicar.
Haga clic en Run query. El Explorador de registros muestra las operaciones
DeleteServiceAccountque afectaron a las cuentas de servicio con el nombre que especificaste.Busca y anota el ID numérico de la cuenta de servicio borrada mediante una de las siguientes opciones:
- Si los resultados de la búsqueda incluyen solo una operación
DeleteServiceAccount, busca el ID numérico en el campo ID único del panel Campos de registros.

Si los resultados de la búsqueda muestran más de un registro, haz lo siguiente:
Busca la entrada de registro correcta. Para encontrarla, haz clic en la flecha de expansión junto a una entrada de registro. Revisa los detalles de la entrada de registro y determina si muestra la operación que quieres deshacer. Repite este proceso hasta que encuentres la entrada de registro correcta.
En la entrada de registro correcta, busca el ID numérico de la cuenta de servicio. Para ubicar el ID numérico, expande el campo
protoPayloadde la entrada de registro y, luego, busca el camporesourceName.

El ID numérico es todo lo que se encuentra después de
serviceAccountsen el camporesourceName.
- Si los resultados de la búsqueda incluyen solo una operación
Recupera la cuenta de servicio por ID numérico
Después de encontrar el ID numérico de la cuenta de servicio borrada, puedes intentar recuperar la cuenta de servicio.
gcloud
-
En la consola de Google Cloud , activa Cloud Shell.
En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
-
Ejecuta el comando
gcloud beta iam service-accounts undeletepara recuperar una cuenta de servicio.Comando:
gcloud beta iam service-accounts undelete ACCOUNT_ID
Resultado:
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
A través del método serviceAccounts.undelete, se restablece una cuenta de servicio borrada.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud . Los IDs de proyecto son cadenas alfanuméricas, comomy-project.SA_NUMERIC_ID: Es el ID numérico único de la cuenta de servicio.
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
Para enviar tu solicitud, expande una de estas opciones:
Si la cuenta se puede recuperar, recibirás un código de respuesta 200 OK con detalles sobre la cuenta de servicio restablecida, como se muestra a continuación:
{
"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"
}
}
¿Qué sigue?
- Obtén información sobre cómo enumerar y editar cuentas de servicio.
- Revisa el proceso para otorgar funciones de IAM a todos los tipos de principales, incluidas las cuentas de servicio.
- Obtén información sobre cómo conectar cuentas de servicio a los recursos.
Pruébalo tú mismo
Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Comenzar gratis