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
Enable the IAM API.
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 muestras de C++ 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.
- 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.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
C#
Para usar las muestras de .NET 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.
- 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.
Si deseas obtener más información, consulta Configura la autenticación 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.
- 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.
Si deseas obtener más información, consulta Configura la autenticación 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 gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- 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.
Si deseas obtener más información, consulta Configura la autenticación 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 gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- 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.
Si deseas obtener más información, consulta Configura la autenticación 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 en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica 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 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 (
SERVICE_ACCOUNT_NAME
en las siguientes muestras), comomy-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
SERVICE_ACCOUNT_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:
DESCRIPTION
es una descripción opcional de la cuenta de servicio.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 necesiten conectar la cuenta de servicio a otros recursos.
- Opcional: En el campo Rol de administradores de cuentas de servicio, agrega miembros que necesiten administrar la cuenta de servicio.
- Haz clic en Listo para terminar de crear la cuenta de servicio.
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.
-
Para crear la cuenta de servicio, ejecuta el comando
gcloud iam service-accounts create
:gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Reemplaza los siguientes valores:
-
SERVICE_ACCOUNT_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:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Reemplaza los siguientes valores:
-
PROJECT_ID
: El ID del proyecto -
SERVICE_ACCOUNT_NAME
: el nombre de la cuenta de servicio -
ROLE_NAME
: Es un nombre de rol, comoroles/compute.osLogin
-
-
Opcional: Para permitir que los usuarios conecten la cuenta de servicio a otros recursos, ejecuta el comando
gcloud iam service-accounts add-iam-policy-binding
para otorgarle 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 \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Reemplaza los siguientes valores:
PROJECT_ID
: el ID del proyectoSERVICE_ACCOUNT_NAME
: Es el nombre de la cuenta de servicio.USER_EMAIL
: Es la dirección de correo electrónico del usuario.
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
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" }
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.
Empezar gratisSalvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-09-12 (UTC)