En esta página, se explica cómo crear y administrar cuentas de servicio mediante la API de Identity and Access Management (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
Roles obligatorios
Para obtener los permisos que necesitas a fin de crear cuentas de servicio, pídele a tu administrador que te otorgue el rol de IAM Creador de cuentas de servicio (roles/iam.serviceAccountCreator
) en el proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Si deseas otorgar acceso a tu proyecto a las cuentas de servicio recién creadas, también necesitas el rol Administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin
).
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.
Los pasos restantes aparecerán automáticamente en la consola de Google Cloud.
- Selecciona un proyecto de Google 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 quieres 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
-
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 en la que se muestra una ventana de 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.
-
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 servicio -
DESCRIPTION
: una descripción opcional de la cuenta de servicio -
DISPLAY_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 proyecto -
SA_NAME
: el nombre de la cuenta de servicio -
ROLE_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 proyecto -
SA_NAME
: el nombre de la cuenta de servicio -
USER_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++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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.
¿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