En este documento, se muestra cómo usar la federación de Workload Identity con bibliotecas de autenticación, conocidas como bibliotecas de autenticación, para autenticar cargas de trabajo de proveedores de identidad externos, como AWS, Microsoft Azure y proveedores que admiten OpenID Connect (OIDC) o SAML 2.0. Google Cloud
La federación de identidades para cargas de trabajo permite que las aplicaciones que se ejecutan fuera de Google Cloudaccedan a los recursos Google Cloud sin usar claves de cuentas de servicio. Las bibliotecas de autenticación de Google permiten esto intercambiando credenciales externas por tokens de acceso Google Cloud de corta duración.
Para la autenticación, puedes obtener credenciales externas con los siguientes métodos:
- Mecanismo estándar para configuraciones comunes.
- Proveedores de credenciales personalizados para flujos de trabajo complejos que requieren que escribas tu propio código.
Antes de comenzar
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Configura la federación de Workload Identity con tu proveedor de identidad.
Autentica con el mecanismo de credenciales estándar
En el caso de los proveedores de identidad externos que se admiten comúnmente, puedes usar las capacidades integradas de la biblioteca de autenticaciónGoogle Cloud para autenticar tus cargas de trabajo generando un archivo de configuración de credenciales. Este archivo proporciona la información necesaria para que las bibliotecas de autenticación federen identidades de proveedores externos.
El archivo de configuración de credenciales, que suele cargarse con la variable de entorno GOOGLE_APPLICATION_CREDENTIALS, puede indicarle a las bibliotecas de autenticación que obtengan el token de asunto de terceros con uno de los siguientes métodos:
- Provisto por el archivo: La biblioteca lee el token de asunto de un archivo local. Un proceso independiente debe garantizar que este archivo contenga un token válido y no vencido.
- Basado en URL: La biblioteca recupera el token de asunto realizando una solicitud a un extremo de URL local especificado.
- Basada en un ejecutable: La biblioteca ejecuta un comando ejecutable configurado. Se espera que la salida estándar del ejecutable contenga el token de asunto.
Genera el archivo de configuración de credenciales para tu proveedor específico:
- AWS
- Azure
Proveedor de identidad OIDC o SAML
En esta página, se incluyen instrucciones para lo siguiente:
Usa el archivo de configuración de credenciales para la autenticación.
Para permitir que las bibliotecas cliente de Google Cloud ubiquen y usen automáticamente tu archivo de configuración de credenciales, establece la variable de entorno
GOOGLE_APPLICATION_CREDENTIALSen la ruta de acceso del archivo JSON generado.Exporta la variable de entorno en tu shell:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.jsonDespués de configurar la variable de entorno, las bibliotecas cliente controlan el flujo de autenticación.
En el siguiente muestra de código, se muestra cómo realizar una llamada autenticada a una API de Google Cloud :
Node.js
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 Node.js.
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.
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.
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.
Autentica con proveedores de credenciales personalizados
Si tu entorno no admite las capacidades integradas de la biblioteca de autenticación de Google o si deseas implementar una lógica personalizada para proporcionar credenciales a la biblioteca de autenticación de Google, usa proveedores de credenciales personalizados para autenticar tus cargas de trabajo.
Accede a los recursos desde AWS
Cuando inicialices el cliente de autenticación, proporciona una implementación personalizada de un proveedor de credenciales. La instancia del cliente se remite al proveedor para recuperar las credenciales de seguridad de AWS que se intercambiarán por un token de acceso Google Cloud . El proveedor debe devolver credenciales válidas y no vencidas cuando el cliente lo llame.
El cliente de autenticación no almacena en caché las credenciales de seguridad ni la región de AWS que se devuelven, por lo que debes implementar el almacenamiento en caché en el proveedor para evitar solicitudes redundantes de los mismos recursos.
En los siguientes ejemplos de código, se muestra cómo puedes configurar el acceso a los recursos de Google Clouddesde AWS con un proveedor de credenciales personalizado.
Node.js
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 Node.js.
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.
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.
Accede a los recursos desde OIDC y SAML
Cuando inicialices el cliente de autenticación, proporciona un proveedor de tokens personalizado para proporcionar un token de sujeto que se intercambie por un token de acceso Google Cloud . El proveedor debe devolver un token de asunto válido y no vencido cuando el cliente lo llame.
El cliente de autenticación no almacena en caché el token devuelto, por lo que debes implementar el almacenamiento en caché en el proveedor para evitar solicitudes redundantes del mismo token de asunto.
En los siguientes ejemplos de código, se muestra cómo puedes configurar el acceso a los recursos de los proveedores que admiten OpenID Connect (OIDC) o SAML 2.0 con un proveedor de credenciales personalizado. Google Cloud
Node.js
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 Node.js.
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.
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.
¿Qué sigue?
- Obtén más información sobre la federación de identidades para cargas de trabajo.