En este documento, se describe cómo autenticar en Eventarc de manera programática. La forma de autenticarte en Eventarc depende de la interfaz que uses para acceder a la API y del entorno en el que se ejecuta tu código.
Para obtener más información sobre la validación de Google Cloud, consulta la descripción general de la validación.
Acceso a la API
Eventarc admite el acceso programático. Puedes acceder a la API de las siguientes maneras:
Bibliotecas cliente
Las bibliotecas cliente de Eventarc proporcionan compatibilidad de lenguaje de alto nivel para la autenticación de Eventarc de manera programática. Para autenticar las llamadas a las APIs de Google Cloud, las bibliotecas cliente admiten las credenciales predeterminadas de la aplicación (ADC). Las bibliotecas buscan credenciales en un conjunto de ubicaciones definidas y las usan para lo siguiente: autenticar solicitudes en la API. Con ADC puedes hacer que las credenciales estén disponibles para tu aplicación en una variedad de entornos tales como el desarrollo o producción local, y sin tener que modificar el código de la aplicación.
Google Cloud CLI
Cuando usas gcloud CLI para acceder a Eventarc, accedes a gcloud CLI con una cuenta de usuario, que proporciona las credenciales que usan los comandos de gcloud CLI.
Si las políticas de seguridad de tu organización impiden que las cuentas de usuario tengan los permisos necesarios, puedes usar la identidad temporal como cuenta de servicio.
Para obtener más información, consulta Autenticación para usar gcloud CLI. Para obtener más información sobre el uso de gcloud CLI con Eventarc, consulta las páginas de referencia de gcloud CLI.
REST
Puedes autenticarte en la API de Eventarc con tus credenciales de gcloud CLI o las credenciales predeterminadas de la aplicación. Para obtener más información sobre la autenticación en solicitudes de REST, consulta Autentícate para usar REST. Para obtener información sobre los tipos de credenciales, consulta Credenciales de la CLI de gcloud y credenciales de ADC.
Configura la autenticación para Eventarc
La forma de configurar la autenticación depende del entorno en el que se ejecuta tu código.
Las siguientes opciones para configurar la autenticación son las más utilizadas. Para obtener más información y opciones de autenticación, consulta Métodos de autenticación.
Para un entorno de desarrollo local
Puedes configurar las credenciales de un entorno de desarrollo local de las siguientes maneras:
- Credenciales de usuario para bibliotecas cliente o herramientas de terceros
- Credenciales de usuario para solicitudes de REST desde la línea de comandos
- Uso de identidad temporal como cuenta de servicio
Bibliotecas cliente o herramientas de terceros
Configura las credenciales predeterminadas de la aplicación (ADC) en tu entorno local:
-
Install the Google Cloud CLI, then initialize it by running 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.
Aparecerá una pantalla de acceso. Después de acceder, tus credenciales se almacenan en el archivo de credenciales local que usa ADC.
Para obtener más información sobre cómo trabajar con ADC en un entorno local, consulta Configura ADC para un entorno de desarrollo local.
Solicitudes REST desde la línea de comandos
Cuando realizas una solicitud REST desde la línea de comandos, puedes usar tus credenciales de gcloud si incluyes gcloud auth print-access-token
como parte del comando que envía la solicitud.
En el siguiente ejemplo, se enumeran las cuentas de servicio para el proyecto especificado. Puedes usar el mismo patrón para cualquier solicitud de REST.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID es el ID del proyecto de Google Cloud.
Para enviar tu solicitud, expande una de estas opciones:
Para obtener más información sobre la autenticación con REST y gRPC, consulta Autentica para usar REST. Si deseas obtener información sobre la diferencia entre tus credenciales locales de ADC y tus credenciales de gcloud CLI, consulta Configuración de autenticación de gcloud CLI y configuración de ADC.
Uso de identidad temporal como cuenta de servicio
En la mayoría de los casos, puedes usar tus credenciales de usuario para autenticarte desde un entorno de desarrollo local. Si eso no es posible o si necesitas probar los permisos asignados a una cuenta de servicio, puedes usar la identidad temporal como cuenta de servicio. Debes tener eliam.serviceAccounts.getAccessToken
permiso, el cual viene incluido en el rol de IAM de Cuenta de servicio creadora de tokens (roles/iam.serviceAccountTokenCreator
).
Puedes configurar gcloud CLI para usar la identidad temporal como cuenta de servicio a través del gcloud config set
comando:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Para los lenguajes seleccionados, puedes usar la identidad temporal como cuenta de servicio con el fin de crear un archivo ADC local para que lo usen las bibliotecas cliente. Este enfoque solo es compatible con las bibliotecas cliente de Go, Java, Node.js y Python (no es compatible con los otros lenguajes).
Para configurar un archivo ADC local con la identidad temporal como cuenta de servicio, usa la --impersonate-service-account
marca con el gcloud auth application-default login
comando:
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Para obtener más información sobre el uso de identidad temporal como cuenta de servicio, consulta Uso de la identidad de cuentas de servicio.
En Google Cloud
Para autenticar una carga de trabajo que se ejecuta en Google Cloud, debes usar las credenciales de la cuenta de servicio conectada al recurso de procesamiento en el que se ejecuta tu código, como una instancia de máquina virtual (VM) de Compute Engine. Este enfoque es el método de autenticación preferido para el código que se ejecuta en un recurso de procesamiento de Google Cloud.
En la mayoría de los servicios, debes conectar la cuenta de servicio cuando crees el recurso que ejecutará el código; no puedes agregar o reemplazar la cuenta de servicio más adelante. Compute Engine es una excepción: te permite conectar una cuenta de servicio a una instancia de VM en cualquier momento.
Usa gcloud CLI para crear una cuenta de servicio y conectarla a tu recurso:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountUSER_EMAIL
: the email address for a Google Account
-
-
Crea el recurso que ejecutará tu código y conecta la cuenta de servicio a ese recurso. Por ejemplo, si usas Compute Engine:
Create a Compute Engine instance. Configure the instance as follows:- Reemplaza
INSTANCE_NAME
por el nombre de instancia que desees. -
Establece la marca
--zone
en la zona en la que deseas crear tu instancia. -
Establece la marca
--service-account
en la dirección de correo electrónico de la cuenta de servicio que creaste.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
- Reemplaza
Para obtener más información acerca de la autenticación en las APIs de Google, consulta Métodos de autenticación.
Local o en un proveedor de servicios en la nube diferente
El método preferido para configurar la autenticación desde fuera de Google Cloud es usar la federación de identidades para cargas de trabajo. Para obtener más información, consulta Configura ADC para un entorno local o otro proveedor de servicios en la nube en la documentación de autenticación.
Control de acceso para Eventarc
Después de autenticarte en Eventarc, debes tener autorización para acceder a los recursos de Google Cloud. Eventarc usa Identity and Access Management (IAM) para la autorización.
Para obtener más información sobre los roles de Eventarc, consulta Control de acceso con IAM. Para obtener más información sobre IAM y la autorización, consulta Descripción general de IAM.
¿Qué sigue?
- Obtén más información sobre los métodos de validación de Google Cloud.
- Consulta una lista de casos de uso de autenticación.