En esta página, se explica cómo crear y administrar cuentas de servicio mediante la API de administración de identidades y accesos (IAM), la consola de Google Cloud y la herramienta de línea de comandos de gcloud
.
De forma predeterminada, cada proyecto puede tener hasta 100 cuentas de servicio que controlan el acceso a tus recursos. Puedes solicitar un incremento de la cuota si es necesario. Obtén más información sobre las cuotas y los límites.
Antes de comenzar
Habilita IAM API.
Comprende las cuentas de servicio de IAM
Instala Google Cloud CLI
Funciones requeridas
Si deseas obtener los permisos que necesitas para administrar las cuentas de servicio, pídele a tu administrador que te otorgue las siguientes funciones de IAM en el proyecto:
-
Para ver las cuentas de servicio y los metadatos de la cuenta de servicio: Visualiza las cuentas de servicio (
roles/iam.serviceAccountViewer
) -
Para ver y crear cuentas de servicio, crea cuentas de servicio (
roles/iam.serviceAccountCreator
). -
Para ver y borrar cuentas de servicio, borra las cuentas de servicio (
roles/iam.serviceAccountDeleter
) -
Para administrar completamente (ver, crear, actualizar, inhabilitar, habilitar, borrar, recuperar y administrar el acceso a las 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.
Para obtener más información sobre estas funciones, consulta Funciones de cuentas de servicio.
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.
Crea una cuenta de servicio
Cuando creas una cuenta de servicio, debes proporcionar un ID alfanumérico (SA_NAME
en las siguientes muestras), como my-service-account
. El ID debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.
El nombre de la cuenta de servicio aparece en la dirección de correo electrónico que se aprovisiona durante la creación, en el formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com
.
Además, cada cuenta de servicio tiene un ID numérico único y permanente, que se genera de forma automática.
También debes proporcionar la siguiente información cuando creas una cuenta de servicio:
SA_DESCRIPTION
es una descripción opcional de la cuenta de servicio.SA_DISPLAY_NAME
es un nombre descriptivo de la cuenta de servicio.PROJECT_ID
es el ID de tu proyecto de Google Cloud.
Después de crear una cuenta de servicio, es posible que debas esperar 60 segundos o más antes de usarla. Este comportamiento sucede porque las operaciones de lectura tienen coherencia eventual. Es posible que la nueva cuenta de servicio tarde un poco más en ser visible. Si intentas leer o usar una cuenta de servicio de forma inmediata después de crearla y recibes un error, puedes reintentar la solicitud con una retirada exponencial.
Consola
- En la consola de Google Cloud, ve a la página Crear cuenta de servicio.
Ir a Crear cuenta de servicio
Los pasos restantes aparecerán automáticamente en la consola de Google Cloud. - Selecciona un proyecto de Cloud.
- Ingresa un nombre de cuenta de servicio para mostrar en la consola de Google Cloud.
La consola de Google Cloud genera un ID de cuenta de servicio a partir de este nombre. Si es necesario, edita el ID. No podrás cambiar el ID más adelante.
- Opcional: Ingresa una descripción de la cuenta de servicio.
- Si no deseas configurar los controles de acceso ahora, haz clic en Listo para terminar de crear la cuenta de servicio. Para establecer controles de acceso ahora, haz clic en Crear y continuar y continúa con el siguiente paso.
- Opcional: Elige uno o más roles de IAM para otorgar a la cuenta de servicio del proyecto.
- Cuando hayas terminado de agregar roles, haz clic en Continuar.
- Opcional: En el campo Roles de usuarios de cuentas de servicio, agrega miembros que puedan actuar en nombre de la cuenta de servicio.
- Opcional: En el campo Rol de administradores de cuentas de servicio, agrega miembros que puedan administrar la cuenta de servicio.
- Haz clic en Listo para terminar de crear la cuenta de servicio.
gcloud CLI
Para crear la cuenta de servicio, ejecuta el comando
gcloud iam service-accounts create
:gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Reemplaza los siguientes valores:
SA_NAME
: el nombre de la cuenta de servicioDESCRIPTION
: una descripción opcional del servicioDISPLAY_NAME
: Es un nombre de cuenta de servicio que se mostrará en la consola de Google Cloud.
Opcional: Para otorgar un rol de IAM a la cuenta de servicio en tu proyecto, ejecuta el comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Reemplaza los siguientes valores:
PROJECT_ID
: El ID del proyectoSA_NAME
: el nombre de la cuenta de servicioROLE_NAME
: Es un nombre de rol, comoroles/compute.osLogin
.
Opcional: A fin de permitir que los usuarios actúen en nombre de la cuenta de servicio, ejecuta el comando
gcloud iam service-accounts add-iam-policy-binding
para otorgar a un usuario el rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser
) en la cuenta de servicio:gcloud iam service-accounts add-iam-policy-binding \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Reemplaza los siguientes valores:
PROJECT_ID
: El ID del proyectoSA_NAME
: el nombre de la cuenta de servicioUSER_EMAIL
: la dirección de correo electrónico del usuario
REST
Mediante el método serviceAccounts.create
, se crea una cuenta de servicio.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, comomy-project
.SA_NAME
: Es el ID alfanumérico de tu cuenta de servicio. Este nombre debe tener entre 6 y 30 caracteres y puede contener caracteres alfanuméricos en minúscula y guiones.SA_DESCRIPTION
: Es opcional. Es una descripción para la cuenta de servicio.SA_DISPLAY_NAME
: Es un nombre legible para la cuenta de servicio.
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Cuerpo JSON de la solicitud:
{ "accountId": "SA_NAME", "serviceAccount": { "description": "SA_DESCRIPTION", "displayName": "SA_DISPLAY_NAME" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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++
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++.
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#.
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.
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.
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.
Después de crear una cuenta de servicio, otórgale una o más funciones para que pueda actuar en tu nombre.
Además, si la cuenta de servicio necesita acceder a los recursos en otros proyectos, por lo general, debes habilitar las API para esos recursos en el proyecto en el que creaste la cuenta de servicio.
Cómo listar cuentas de servicio
Puedes enumerar las cuentas de servicio administradas por el usuario en un proyecto para ayudarte a auditar cuentas y claves de servicio, o como parte de una herramienta personalizada para administrar cuentas de servicio.
No puedes enumerar los agentes de servicio ni otras cuentas de servicio administradas por Google que podrían aparecer en la política de permiso y los registros de auditoría de tu proyecto. Las cuentas de servicio administradas por Google no se encuentran en tu proyecto y no puedes acceder a ellas directamente.
Consola
En Google Cloud Console, ve a la página Cuentas de servicio.
Selecciona un proyecto
En la página Cuentas de servicio, se enumeran todas las cuentas de servicio administradas por el usuario en el proyecto que seleccionaste.
gcloud CLI
Ejecuta el comando gcloud iam service-accounts list
para enumerar todas las cuentas de servicio administradas por el usuario en un proyecto.
Comando:
gcloud iam service-accounts list
El resultado es la lista de todas las cuentas de servicio administradas por el usuario en el proyecto:
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
El método serviceAccounts.list
permite enumerar todas las cuentas de servicio administradas por el usuario de tu proyecto.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, comomy-project
.
Método HTTP y URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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++
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++.
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#.
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.
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.
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.
Actualiza una cuenta de servicio
Se suele usar el nombre visible (nombre descriptivo) y la descripción de una cuenta de servicio para recopilar información adicional sobre la cuenta de servicio, como su propósito o una persona de contacto de la cuenta.
Console
En Google Cloud Console, ve a la página Cuentas de servicio.
Selecciona un proyecto
Haz clic en la dirección de correo electrónico de la cuenta de servicio a la que deseas cambiarle el nombre.
Ingresa el nombre nuevo en el cuadro Nombre y, luego, haz clic en Guardar.
gcloud CLI
Ejecuta el comando gcloud iam service-accounts update
para actualizar una cuenta de servicio.
Comando:
gcloud iam service-accounts update \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --description="UPDATED_SA_DESCRIPTION" \ --display-name="UPDATED_DISPLAY_NAME"
El resultado es la cuenta de servicio renombrada:
description: UPDATED_SA_DESCRIPTION displayName: UPDATED_DISPLAY_NAME name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mediante el método serviceAccounts.patch
, se actualiza una cuenta de servicio.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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.com
o el ID numérico único de la cuenta de servicio.SA_NAME
: Es el ID alfanumérico de tu cuenta de servicio. Este nombre debe tener entre 6 y 30 caracteres y puede contener caracteres alfanuméricos en minúscula y guiones.- Reemplaza al menos uno de los siguientes elementos:
UPDATED_DISPLAY_NAME
: Es un nombre nuevo para la cuenta de servicio.UPDATED_DESCRIPTION
: Es una descripción nueva para la cuenta de servicio.
Método HTTP y URL:
PATCH https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
Cuerpo JSON de la solicitud:
{ "serviceAccount": { "email": "SA_NAME@PROJECT_ID.iam.gserviceaccount.com", "displayName": "UPDATED_DISPLAY_NAME", "description": "UPDATED_DESCRIPTION" }, "updateMask": "displayName,description" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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++
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++.
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#.
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.
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.
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.
Inhabilita una cuenta de servicio
Al igual que cuando borras una cuenta de servicio, cuando inhabilitas una de estas, las aplicaciones ya no tendrán acceso a los recursos de Google Cloud a través de esa cuenta de servicio. Si inhabilitas las cuentas de servicio predeterminadas de App Engine y Compute Engine, las instancias ya no tendrán acceso a los recursos del proyecto. Si intentas inhabilitar una cuenta de servicio que ya está inhabilitada, no tendrá efecto.
A diferencia de las cuentas de servicio borradas, las cuentas de servicio inhabilitadas se pueden volver a habilitar de forma sencilla según sea necesario. Te recomendamos inhabilitar la cuenta de servicio antes de borrarla para asegurarte de que ninguna aplicación importante esté usando la cuenta.
Console
En Google Cloud Console, ve a la página Cuentas de servicio.
Selecciona un proyecto
Haz clic en el nombre de la cuenta de servicio que quieres inhabilitar.
En Estado de la cuenta de servicio, haz clic en Inhabilitar la cuenta de servicio y, luego, en Inhabilitar para confirmar el cambio.
gcloud CLI
Ejecuta el comando gcloud iam service-accounts disable
para inhabilitar una cuenta de servicio.
Comando:
gcloud iam service-accounts disable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Resultado:
Disabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mediante el método serviceAccounts.disable
, se inhabilita de inmediato una cuenta de servicio.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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.com
o 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_ID:disable
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta correctamente, el cuerpo de la respuesta estará vacío.
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++.
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#.
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.
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.
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.
Habilita una cuenta de servicio
Después de habilitar una cuenta de servicio inhabilitada, las aplicaciones recuperarán el acceso a los recursos de Google Cloud a través de esta cuenta.
Puedes habilitar una cuenta de servicio inhabilitada siempre que lo necesites. Si intentas habilitar una cuenta de servicio ya habilitada, no tendrá efecto.
Console
En Google Cloud Console, ve a la página Cuentas de servicio.
Selecciona un proyecto
Haz clic en el nombre de la cuenta de servicio que deseas habilitar.
En Estado de la cuenta de servicio, haz clic en Habilitar la cuenta de servicio y, luego, en Habilitar para confirmar el cambio.
gcloud CLI
Ejecuta el comando gcloud iam service-accounts enable
para habilitar una cuenta de servicio.
Comando:
gcloud iam service-accounts enable SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Resultado:
Enabled service account SA_NAME@PROJECT_ID.iam.gserviceaccount.com
REST
Mediante el método serviceAccounts.enable
, se habilita una cuenta de servicio inhabilitada con anterioridad.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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.com
o 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_ID:enable
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta correctamente, el cuerpo de la respuesta estará vacío.
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++.
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#.
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.
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.
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.
Borra una cuenta de servicio
Cuando borras una cuenta de servicio, las aplicaciones ya no tendrán acceso a los recursos de Google Cloud a través de esa cuenta. Si borras las cuentas de servicio predeterminadas de App Engine y Compute Engine, las instancias ya no tendrán acceso a los recursos del proyecto.
Ten cuidado a la hora de borrar una cuenta de servicio y asegúrate de que tus aplicaciones importantes ya no usen la cuenta de servicio antes de borrarla. Si no tienes en claro si se está usando una cuenta de servicio, te recomendamos que inhabilites la cuenta de servicio antes de borrarla. Las cuentas de servicio inhabilitadas se pueden volver a habilitar con facilidad si aun están en uso.
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 funciones 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 funciones con un prefijo deleted:
y un sufijo ?uid=NUMERIC_ID
. 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 Google Cloud Console, 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 CLI
Ejecuta el comando gcloud iam service-accounts delete
para borrar 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
REST
Mediante el 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
: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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.com
o 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.
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++.
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#.
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.
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.
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.
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.com
por 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_EMAIL
por 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
DeleteServiceAccount
que 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
protoPayload
de la entrada de registro y, luego, busca el camporesourceName
.El ID numérico es todo lo que se encuentra después de
serviceAccounts
en el camporesourceName
.
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 CLI
Ejecuta el comando gcloud beta iam service-accounts undelete
para 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
Mediante el 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
: El ID del proyecto de Google Cloud Los ID de proyecto son strings 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?
- Revisa el proceso para otorgar funciones de IAM a todos los tipos de principales, incluidas las cuentas de servicio.
- Explora cómo puedes usar las recomendaciones de función para reducir los permisos de todos las principales, incluidas las cuentas de servicio.
- Obtén más información sobre cómo permitir que las principales actúen como cuentas de servicio.
- Aprende a crear y administrar claves de cuenta de servicio.
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