En esta página se explica cómo eliminar y restaurar cuentas de servicio mediante la API Identity and Access Management (IAM), la Google Cloud consolagcloud
y la herramienta de línea de comandos gcloud
.
Antes de empezar
Enable the IAM API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Configura la autenticación.
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#
Para usar las .NET muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
C++
Para usar las C++ muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Go
Para usar las Go muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Java
Para usar las Java muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Información sobre las cuentas de servicio de IAM
Roles obligatorios
Para obtener los permisos que necesitas para eliminar y restaurar cuentas de servicio, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:
-
Para eliminar cuentas de servicio, sigue estos pasos:
Eliminar cuentas de servicio (
roles/iam.serviceAccountDeleter
) -
Para eliminar y restaurar cuentas de servicio, sigue estos pasos:
Administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Para obtener más información sobre estos roles, consulta Roles de cuentas de servicio.
Los roles básicos de gestión de identidades y accesos también contienen permisos para gestionar cuentas de servicio. No debes conceder roles básicos en un entorno de producción, pero sí puedes hacerlo en un entorno de desarrollo o de pruebas.
Eliminar una cuenta de servicio
Cuando eliminas una cuenta de servicio, las aplicaciones dejan de tener acceso a los recursos deGoogle Cloud a través de esa cuenta. Si eliminas 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 usen esas cuentas de servicio ya no tendrán acceso a los recursos del proyecto.
Elimina las cuentas de servicio con precaución. Asegúrate de que tus aplicaciones críticas ya no usen una cuenta de servicio antes de eliminarla. Si no sabes si se está usando una cuenta de servicio, Google recomienda inhabilitarla en lugar de eliminarla. Las cuentas de servicio inhabilitadas se pueden volver a habilitar si siguen siendo necesarias.
Si quieres restaurar una cuenta de servicio eliminada, puedes recuperarla si no han pasado más de 30 días desde que la eliminaste. Al cabo de 30 días, IAM elimina permanentemente la cuenta de servicio. Google Cloud No podrás recuperar la cuenta de servicio una vez que se haya eliminado permanentemente, aunque envíes una solicitud de asistencia.
Para reducir aún más el riesgo de eliminar una cuenta de servicio necesaria, también puede habilitar las recomendaciones de riesgo de cambio. Las recomendaciones de riesgo de cambios generan advertencias cuando intentas eliminar cuentas de servicio que Google Cloud ha identificado como importantes.
Si eliminas una cuenta de servicio y creas otra con el mismo nombre, la nueva cuenta de servicio se tratará como una identidad independiente y no heredará los roles concedidos a la cuenta de servicio eliminada. Por el contrario, si eliminas una cuenta de servicio y luego la restauras, su identidad no cambia y conserva sus roles.
Cuando se elimina una cuenta de servicio, sus vinculaciones de rol no se quitan inmediatamente, sino que se purgan automáticamente del sistema en un plazo máximo de 60 días. Hasta entonces, la cuenta de servicio aparece en las vinculaciones de roles con el prefijo
deleted:
y el sufijo?uid=NUMERIC_ID
, dondeNUMERIC_ID
es un ID numérico único de la cuenta de servicio.Las cuentas de servicio eliminadas no se tienen en cuenta para la cuota de cuentas de servicio.
Consola
En la Google Cloud consola, ve a la página Cuentas de servicio.
Selecciona un proyecto.
Selecciona la cuenta de servicio que quieras eliminar y, a continuación, haz clic en Eliminar
.
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.
-
Ejecuta el comando
gcloud iam service-accounts delete
para eliminar una cuenta de servicio.Comando:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Resultado:
Deleted service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
PROJECT_ID
: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.
C++
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API C++ de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
C#
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API C# de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
Go
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Go de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
Java
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Java de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
Python
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Python de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
REST
El método
serviceAccounts.delete
elimina una cuenta de servicio.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Para enviar tu solicitud, despliega una de estas opciones:
Si la acción se realiza correctamente, el cuerpo de la respuesta estará vacío.
Restaurar una cuenta de servicio
En algunos casos, puedes usar el comando
undelete
para restaurar una cuenta de servicio eliminada. Por lo general, puedes restaurar una cuenta de servicio eliminada si cumple estos criterios:La cuenta de servicio se eliminó hace menos de 30 días.
Al cabo de 30 días, IAM elimina permanentemente la cuenta de servicio. Google Cloud No puedes recuperar la cuenta de servicio una vez que se haya eliminado permanentemente, aunque envíes una solicitud de asistencia.
No hay ninguna cuenta de servicio con el mismo nombre que la cuenta de servicio eliminada.
Por ejemplo, supongamos que eliminas por error la cuenta de servicio
my-service-account@project-id.iam.gserviceaccount.com
. Aun así, necesitas una cuenta de servicio con ese nombre, por lo que creas una cuenta de servicio con el mismo nombre,my-service-account@project-id.iam.gserviceaccount.com
.La nueva cuenta de servicio no hereda los permisos de la cuenta de servicio eliminada. De hecho, es completamente independiente de la cuenta de servicio eliminada. Sin embargo, no puedes restaurar la cuenta de servicio original porque la nueva tiene el mismo nombre.
Para solucionar este problema, elimina la nueva cuenta de servicio y, a continuación, intenta restaurar la cuenta de servicio original.
Si no puedes restaurar la cuenta de servicio, puedes crear una nueva con el mismo nombre, revocar todos los roles de la cuenta de servicio eliminada y conceder los mismos roles a la nueva cuenta de servicio. Para obtener más información, consulta Políticas con principales eliminados.
Buscar el ID numérico de una cuenta de servicio eliminada
Cuando restauras 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 eliminas una cuenta de servicio y, a continuación, creas otra con el mismo nombre, la cuenta de servicio original y la nueva tendrán IDs numéricos diferentes.Si sabes que un enlace de una política de permiso incluye la cuenta de servicio eliminada, puedes obtener la política de permiso y, a continuación, buscar el ID numérico en la política de permiso. El ID numérico se añade al nombre de la cuenta de servicio eliminada. Por ejemplo, en esta política de permiso, el ID numérico de la cuenta de servicio eliminada 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 IDs numéricos solo se añaden a los nombres de las entidades eliminadas.
También puedes buscar en tus registros de auditoría la operación
DeleteServiceAccount
que eliminó la cuenta de servicio:En la Google Cloud consola, ve a la página Explorador de registros.
En el editor de consultas, introduce la siguiente consulta y sustituye
SERVICE_ACCOUNT_EMAIL
por la dirección de correo de tu 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 eliminó hace más de una hora, haz clic en
Última hora, selecciona un periodo más largo en la lista desplegable y, a continuación, haz clic en Aplicar.Haz clic en Realizar una consulta. El Explorador de registros muestra las
DeleteServiceAccount
operaciones que han afectado a las cuentas de servicio con el nombre que has especificado.Busca y anota el ID numérico de la cuenta de servicio eliminada de una de las siguientes formas:
- Si los resultados de búsqueda incluyen solo una operación
DeleteServiceAccount
, busca el ID numérico en el campo ID único del panel Campos de registro.
Si los resultados de búsqueda muestran más de un registro, haz lo siguiente:
Busca la entrada de registro correcta. Para encontrar la entrada de registro correcta, haz clic en la
flecha de expansión situada 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 localizar el ID numérico, despliega el campo
protoPayload
de la entrada de registro y busca el camporesourceName
.
El ID numérico es todo lo que hay después de
serviceAccounts
en el camporesourceName
.
- Si los resultados de búsqueda incluyen solo una operación
Restaurar la cuenta de servicio por ID numérico
Una vez que hayas encontrado el ID numérico de la cuenta de servicio eliminada, puedes intentar restaurarla.
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.
-
Ejecuta el comando
gcloud beta iam service-accounts undelete
para restaurar 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'
PROJECT_ID
: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.SA_NUMERIC_ID
: ID numérico único de la cuenta de servicio.
REST
El método
serviceAccounts.undelete
restaura una cuenta de servicio eliminada.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
Para enviar tu solicitud, despliega una de estas opciones:
Si se puede restaurar la cuenta, recibirás un código de respuesta
200 OK
con detalles sobre la cuenta de servicio restaurada, como los siguientes:{ "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" } }
Siguientes pasos
- Consulta cómo listar y editar cuentas de servicio.
- Consulta el proceso para conceder roles de gestión de identidades y accesos a todos los tipos de principales, incluidas las cuentas de servicio.
- Consulta cómo asignar cuentas de servicio a recursos.
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Empezar gratisA menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-11 (UTC).