En esta guía se describe cómo usar la federación de identidades de carga de trabajo para permitir que las cargas de trabajo de máquinas virtuales de AWS y Azure se autentiquen en Trusted Cloud by S3NS sin una clave de cuenta de servicio.
Si usas Amazon Elastic Kubernetes Service (Amazon EKS) o Azure Kubernetes Service (AKS), consulta Configurar la federación de identidades de cargas de trabajo con Kubernetes para saber cómo configurar la federación de identidades de cargas de trabajo en tus clústeres. En esta página solo se explica cómo configurar la federación de identidades de cargas de trabajo para máquinas virtuales de AWS y Azure.
Al usar la federación de identidades de cargas de trabajo, las cargas de trabajo que se ejecutan en AWS EC2 y en máquinas virtuales de Azure pueden intercambiar sus credenciales específicas del entorno por tokens deTrusted Cloud Security Token Service de corta duración.
Las credenciales específicas del entorno incluyen lo siguiente:
- Las instancias de AWS EC2 pueden usar perfiles de instancia para solicitar credenciales temporales.
- Las VMs de Azure pueden usar identidades gestionadas para obtener tokens de acceso de Azure.
Si configuras la federación de identidades de cargas de trabajo, puedes permitir que estas cargas de trabajo intercambien estas credenciales específicas del entorno porTrusted Cloud credenciales de corta duración. Las cargas de trabajo pueden usar estas credenciales de corta duración para acceder a las APIs de Trusted Cloud .
Antes de empezar
Configura la autenticación.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
Instala Google Cloud CLI y, a continuación, inicia sesión en gcloud CLI con tu identidad federada. Después de iniciar sesión, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI y, a continuación, inicia sesión en gcloud CLI con tu identidad federada.
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Trusted Cloud
Preparar tu proveedor de identidades externo
Solo tienes que seguir estos pasos una vez por cada inquilino de Microsoft Entra ID o cuenta de AWS.
AWS
No es necesario que haga ningún cambio en la configuración de su cuenta de AWS.
Después de configurar un grupo de identidades de carga de trabajo para que confíe en tu cuenta de AWS, puedes permitir que los usuarios de AWS y los roles de AWS usen credenciales de seguridad de AWS permanentes o temporales para obtener credenciales de corta duración. Trusted Cloud
Azure
Debes crear una aplicación de Microsoft Entra ID en tu cliente de Microsoft Entra ID y configurarla para que se pueda usar en la federación de identidades de carga de trabajo.
Después de configurar un grupo de identidades de carga de trabajo para que confíe en la aplicación, los usuarios y las entidades de servicio de Azure pueden solicitar tokens de acceso para esta aplicación e intercambiarlos por credenciales de Trusted Cloud de corta duración.
Para crear la aplicación, sigue estos pasos:
Crea una aplicación y un principal de servicio de Microsoft Entra ID.
Define un URI de ID de aplicación para la aplicación. Puedes usar el URI de ID de aplicación predeterminado (
APPID
) o especificar uno personalizado.Necesitarás el URI del ID de aplicación más adelante, cuando configures el proveedor de grupos de identidades de carga de trabajo.
Para permitir que una aplicación obtenga tokens de acceso para la aplicación de Microsoft Entra ID, puedes usar identidades gestionadas:
Crea una identidad gestionada. Anota el ID de objeto de la identidad gestionada. Lo necesitarás más adelante cuando configures la suplantación de identidad.
Asigna la identidad gestionada a una máquina virtual u otro recurso que ejecute tu aplicación.
Configurar la federación de identidades de cargas de trabajo
Solo tienes que seguir estos pasos una vez por cada cuenta de AWS o inquilino de Microsoft Entra ID. Después, puedes usar el mismo grupo y proveedor de identidades de carga de trabajo en varias cargas de trabajo y en varios proyectos. Trusted Cloud
Para empezar a configurar la federación de identidades de cargas de trabajo, haz lo siguiente:
-
In the Trusted Cloud console, go to the project selector page.
-
Select or create a Trusted Cloud project.
Lo más recomendable es
usar un proyecto específico para gestionar los grupos y proveedores de Workload Identity.
Verify that billing is enabled for your Trusted Cloud project.
Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.
Definir una asignación de atributos y una condición
Las credenciales específicas del entorno de tu carga de trabajo de AWS o Azure contienen varios atributos, y debes decidir qué atributo quieres usar como identificador de asunto (
google.subject
) en Trusted Cloud.Trusted Cloud usa el identificador de asunto en los registros de auditoría de Cloud y en los identificadores de entidad principal para identificar de forma única a un usuario o un rol de AWS o Azure.
Si quiere, puede mapear atributos adicionales. Después, puede hacer referencia a estos atributos adicionales al conceder acceso a los recursos.
AWS
En el mapeo de atributos, puedes usar los campos de respuesta de
GetCallerIdentity
como atributos de origen. Estos campos incluyen lo siguiente:account
: el número de cuenta de AWS.arn
: el ARN de AWS de la entidad externa.userid
: el identificador único de la entidad que llama.
Si tu aplicación se ejecuta en una instancia de Amazon Elastic Compute Cloud (EC2) con un rol asociado, puedes usar la siguiente asignación de atributos:
google.subject=assertion.arn attribute.account=assertion.account attribute.aws_role=assertion.arn.extract('assumed-role/{role}/') attribute.aws_ec2_instance=assertion.arn.extract('assumed-role/{role_and_session}').extract('/{session}')
La asignación hace lo siguiente:
- Usa el ARN como identificador de asunto. Por ejemplo:
"arn:aws:sts::000000000000:assumed-role/ec2-my-role/i-00000000000000000
- Introduce un atributo personalizado
account
y le asigna el ID de cuenta de AWS. - Introduce un atributo personalizado
aws_role
y le asigna el nombre del rol de AWS. Por ejemplo:ec2-my-role
- Introduce un atributo personalizado
aws_ec2_instance
y le asigna el ID de instancia de EC2. Por ejemplo:i-00000000000000000
Con este mapeo, puedes conceder acceso a lo siguiente:
Una instancia de EC2 específica:
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.aws_ec2_instance/EC2_INSTANCE_ID
Todos los usuarios y las instancias de un rol:
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.aws_role/ROLE_NAME
Azure
En tus asignaciones de atributos, puedes usar las reclamaciones insertadas en los tokens de acceso de Azure, incluidas las reclamaciones personalizadas, como atributos de origen. En la mayoría de los casos, es mejor usar la reclamación
sub
como identificador de asunto: Cuando la reclamación `sub` supera el límite de 127 caracteres de google.subject, se recomienda usar una [`función extract`](/iam/docs/conditions-attribute-reference#extract) para obtener reclamaciones significativas que se puedan usar como identificador de asunto:google.subject=assertion.sub
google.subject=assertion.sub.extract('/eid1/c/pub/t/{sub_claim}')
En el caso de un token de acceso emitido para una identidad gestionada, la reclamación
sub
contiene el ID de objeto de la identidad gestionada. Si usas otra reclamación, asegúrate de que sea única y de que no se pueda reasignar.Si no sabes con seguridad qué reclamaciones puedes consultar, haz lo siguiente:
Conéctate a una VM de Azure que tenga una identidad gestionada asignada.
Obtén un token de acceso del servicio de metadatos de instancias de Azure (IMDS):
Bash
curl \ "http://169.254.169.254/metadata/identity/oauth2/token?resource=APP_ID_URI&api-version=2018-02-01" \ -H "Metadata: true" | jq -r .access_token
Este comando usa la herramienta
jq
.jq
está disponible de forma predeterminada en Cloud Shell.PowerShell
$SubjectTokenType = "urn:ietf:params:oauth:token-type:jwt" $SubjectToken = (Invoke-RestMethod ` -Uri "http://169.254.169.254/metadata/identity/oauth2/token?resource=APP_ID_URI&api-version=2018-02-01" ` -Headers @{Metadata="true"}).access_token Write-Host $SubjectToken
Sustituye
APP_ID_URI
por el URI del ID de aplicación de la aplicación que hayas configurado para la federación de identidades de cargas de trabajo.En un navegador web, ve a
https://jwt.ms/
y pega el token de acceso en el campo.Haz clic en Reclamaciones para ver la lista de reclamaciones insertadas en el token de acceso.
En el caso de las identidades de servicio, normalmente no es necesario crear una asignación para
google.groups
ni para ningún atributo personalizado.También puede definir una condición de atributo. Las condiciones de los atributos son expresiones CEL que pueden comprobar los atributos de aserción y los atributos de destino. Si el atributo de condición se evalúa como
true
para una credencial determinada, se acepta la credencial. De lo contrario, se rechaza la credencial.AWS
Puedes usar una condición de atributo para restringir qué usuarios y roles de gestión de identidades y accesos pueden usar la federación de identidades de cargas de trabajo para obtener tokens de corta duración. Trusted Cloud
Por ejemplo, la siguiente condición restringe el acceso a los roles de AWS y no permite otros identificadores de gestión de identidades y accesos:
assertion.arn.startsWith('arn:aws:sts::AWS_ACCOUNT_ID:assumed-role/')
Azure
Puede usar una condición de atributo para restringir qué usuarios y principales de servicio pueden usar la federación de identidades de carga de trabajo para obtener tokens de corta duración. Trusted CloudTambién puedes configurar tu aplicación de Microsoft Entra ID para que use asignaciones de roles de aplicación.
Crear el grupo y el proveedor de identidades de carga de trabajo
Roles obligatorios
Para obtener los permisos que necesitas para configurar la federación de identidades de carga de trabajo, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y acceso en el proyecto:
-
Administrador de grupos de Workload Identity (
roles/iam.workloadIdentityPoolAdmin
) -
Administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
También puedes usar el rol básico Propietario de gestión de identidades y accesos (roles/owner
), que incluye permisos para configurar la federación de identidades. No debes conceder roles básicos en un entorno de producción, pero sí puedes hacerlo en un entorno de desarrollo o de pruebas.Ya has recopilado toda la información que necesitas para crear un grupo y un proveedor de identidades de carga de trabajo:
Consola
En la Trusted Cloud consola, ve a la página Nuevo proveedor y grupo de cargas de trabajo.
En la sección Create an identity pool (Crear un grupo de identidades), introduce lo siguiente:
- Nombre: nombre del grupo. El nombre también se usa como ID del grupo. No podrás cambiar el ID del grupo más adelante.
- Descripción: texto que describe el propósito del grupo.
Haz clic en Continuar.
Configura los ajustes del proveedor:
AWS
Configura los siguientes ajustes del proveedor:
- Selecciona un proveedor: AWS.
- Nombre del proveedor: nombre del proveedor. El nombre también se usa como ID de proveedor. No podrás cambiar el ID de proveedor más adelante.
Azure
Configura los siguientes ajustes del proveedor:
- Selecciona un proveedor: OpenID Connect (OIDC).
- Nombre del proveedor: nombre del proveedor. El nombre también se usa como ID de proveedor. No podrás cambiar el ID de proveedor más adelante.
- URL del emisor:
https://sts.windows.net/TENANT_ID
. SustituyeTENANT_ID
por el ID de cliente (GUID) de tu cliente de Microsoft Entra ID. - Audiencias permitidas: el URI del ID de aplicación que usaste cuando registraste la aplicación en Microsoft Entra ID.
Haz clic en Continuar.
En la sección Configurar atributos del proveedor, añade las asignaciones de atributos que hayas identificado anteriormente.
En la sección Condiciones de los atributos, introduzca la condición del atributo que ha identificado anteriormente. Deje el campo en blanco si no tiene ninguna condición de atributo.
Haz clic en Guardar para crear el grupo de identidades de carga de trabajo y el proveedor.
gcloud
Crea un grupo de identidades de carga de trabajo:
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Haz los cambios siguientes:
POOL_ID
: ID único del grupo.DISPLAY_NAME
: el nombre del grupo.DESCRIPTION
: la descripción del grupo. Esta descripción aparece al conceder acceso a identidades de grupo.
Añade un proveedor de grupos de identidades de carga de trabajo:
AWS
Para crear el proveedor de grupos de identidades de carga de trabajo de AWS, ejecuta el siguiente comando:
gcloud iam workload-identity-pools providers create-aws PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --account-id="ACCOUNT_ID" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Haz los cambios siguientes:
PROVIDER_ID
: el ID único del proveedor.POOL_ID
: el ID del grupo.ACCOUNT_ID
: el número de 12 dígitos que identifica tu cuenta de AWS.MAPPINGS
: lista separada por comas de asignaciones de atributos que hayas identificado anteriormente.CONDITIONS
: condición del atributo que has identificado anteriormente. Quite el parámetro si no tiene una condición de atributo.
Ejemplo:
gcloud iam workload-identity-pools providers create-aws example-provider \ --location="global" \ --workload-identity-pool="pool-1" \ --account-id="123456789000" \ --attribute-mapping="google.subject=assertion.arn"
Azure
Para crear el proveedor de grupos de identidades de carga de trabajo de Azure, ejecuta el siguiente comando:
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER_URI" \ --allowed-audiences="APPLICATION_ID_URI" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Haz los cambios siguientes:
PROVIDER_ID
: ID único del proveedor.POOL_ID
: el ID del grupo.ISSUER_URI
: el ID de cliente (GUID) de tu cliente de Microsoft Entra ID, que a veces se muestra con el formatohttps://sts.windows.net/TENANT_ID
. El URI del emisor puede variar. Para encontrar el tuyo, puedes depurar tu JWT con JWT.io.APPLICATION_ID_URI
: ID de aplicación URI que usaste cuando registraste la aplicación en Microsoft Entra ID.MAPPINGS
: lista separada por comas de asignaciones de atributos que hayas identificado anteriormente.CONDITIONS
: (Opcional) La condición del atributo que has identificado anteriormente.
Ejemplo:
gcloud iam workload-identity-pools providers create-oidc example-provider \ --location="global" \ --workload-identity-pool="pool-1" \ --issuer-uri="https://sts.windows.net/00000000-1111-2222-3333-444444444444" \ --allowed-audiences="api://my-app" \ --attribute-mapping="google.subject=assertion.sub,google.groups=assertion.groups"
Autenticar una carga de trabajo
Debes seguir estos pasos una vez por carga de trabajo.
Permitir que tu carga de trabajo externa acceda a los recursos de Trusted Cloud
Para proporcionar a tu carga de trabajo acceso a los recursos de Trusted Cloud , te recomendamos que concedas acceso directo a los recursos a la entidad principal. En este caso, el principal es el usuario federado. Algunos Trusted Cloud productos tienen limitaciones en la API de Google Cloud. Si tu carga de trabajo llama a un endpoint de API que tiene una limitación, puedes usar la suplantación de identidad de la cuenta de servicio. En este caso, el principal es laTrusted Cloud cuenta de servicio, que actúa como identidad. Concede acceso a la cuenta de servicio en el recurso.
Acceso directo a recursos
Puedes conceder acceso a una identidad federada directamente a los recursos mediante la Trusted Cloud consola o la CLI de gcloud.
Consola
Para usar la Trusted Cloud consola y asignar roles de gestión de identidades y accesos directamente a un recurso, debes ir a la página del recurso y, a continuación, asignar el rol. En el siguiente ejemplo se muestra cómo ir a la página de Cloud Storage y asignar el rol Lector de objetos de Storage (
roles/storage.objectViewer
) a una identidad federada directamente en un segmento de Cloud Storage.- En la Trusted Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento al que quiera conceder el rol.
Seleccione la pestaña Permisos, situada cerca de la parte superior de la página.
Haz clic en el botón add_box Conceder acceso.
Aparecerá el cuadro de diálogo Añadir principales.
En el campo Nuevos principales, introduzca una o varias identidades que necesiten acceder a su contenedor.
Por tema
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoPOOL_ID
: el ID del grupo de cargas de trabajoSUBJECT
: el asunto individual asignado desde tu proveedor de identidades. Por ejemplo:administrator@example.com
Por grupo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoWORKLOAD_POOL_ID
: el ID del grupo de cargas de trabajoGROUP
: el grupo asignado de tu proveedor de identidades. Por ejemplo:administrator-group@example.com
Por atributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoWORKLOAD_POOL_ID
: el ID del grupo de cargas de trabajoATTRIBUTE_NAME
: uno de los atributos que se ha asignado desde tu proveedor de identidadesATTRIBUTE_VALUE
: el valor del atributo
Selecciona uno o varios roles en el menú desplegable Selecciona un rol. Los roles que selecciones aparecerán en el panel con una breve descripción de los permisos que conceden.
Haz clic en Guardar.
gcloud
Para usar la CLI de gcloud y asignar roles de IAM en un recurso de un proyecto, haz lo siguiente:
Obtén el número del proyecto en el que se define el recurso.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
Concede acceso al recurso.
Para usar la CLI de gcloud y asignar el rol Lector de objetos de Storage (
roles/storage.objectViewer
) a identidades externas que cumplan determinados criterios, ejecuta el siguiente comando.Por tema
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Por grupo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Por atributo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Haz los cambios siguientes:
BUCKET_ID
: el contenedor al que se va a conceder accesoPROJECT_NUMBER
: el número de proyecto del proyecto que contiene el grupo de identidades de carga de trabajo.POOL_ID
: el ID del grupo de identidades de carga de trabajoSUBJECT
: el valor esperado del atributo que has asignado agoogle.subject
GROUP
: el valor esperado del atributo que has asignado agoogle.groups
ATTRIBUTE_NAME
: el nombre de un atributo personalizado en tu asignación de atributosATTRIBUTE_VALUE
: el valor del atributo personalizado en tu asignación de atributos
Puedes conceder roles en cualquier Trusted Cloud recurso que admita políticas de permiso de gestión de identidades y accesos.
Suplantación de identidad de cuentas de servicio
Para crear una cuenta de servicio para la carga de trabajo externa, sigue estos pasos:
Enable the IAM, Security Token Service, and Service Account Credentials APIs.
Crea una cuenta de servicio que represente la carga de trabajo. Te recomendamos que utilices una cuenta de servicio específica para cada carga de trabajo. La cuenta de servicio no tiene que estar en el mismo proyecto que el grupo de identidades de carga de trabajo, pero debes hacer referencia al proyecto que contiene la cuenta de servicio.
Concede acceso a la cuenta de servicio a los recursos a los que quieras que accedan las identidades externas.
Para permitir que la identidad federada suplante la cuenta de servicio, haz lo siguiente:
Consola
Para usar la Trusted Cloud consola y conceder roles de gestión de identidades y accesos a una identidad federada con una cuenta de servicio, sigue estos pasos:
Cuenta de servicio en el mismo proyecto
Para conceder acceso mediante la suplantación de identidad de una cuenta de servicio en el mismo proyecto, sigue estos pasos:
Ve a la página Grupos de Workload Identity.
Selecciona Conceder acceso.
En el cuadro de diálogo Grant access to service account (Conceder acceso a la cuenta de servicio), selecciona Grant access using Service Account impersonation (Conceder acceso mediante la suplantación de la cuenta de servicio).
En la lista Cuentas de servicio, selecciona la cuenta de servicio que las identidades externas deben suplantar y haz lo siguiente:
Para elegir qué identidades del grupo pueden suplantar la identidad de la cuenta de servicio, realiza una de las siguientes acciones:
Para permitir que solo determinadas identidades del grupo de identidades de carga de trabajo suplanten la identidad de la cuenta de servicio, seleccione Solo las identidades que coincidan con el filtro.
En la lista Nombre del atributo, seleccione el atributo por el que quiera filtrar.
En el campo Valor del atributo, introduzca el valor esperado del atributo. Por ejemplo, si utiliza una asignación de atributos
google.subject=assertion.sub
, defina el nombre del atributo comosubject
y el valor del atributo como el valor de la reclamaciónsub
en los tokens emitidos por su proveedor de identidades externo.
Para guardar la configuración, haz clic en Guardar y, a continuación, en Cerrar.
Cuenta de servicio en otro proyecto
Para conceder acceso mediante la suplantación de identidad de una cuenta de servicio en otro proyecto, sigue estos pasos:
Ve a la página Cuentas de servicio.
Selecciona la cuenta de servicio que quieras suplantar.
Haz clic en Gestionar acceso.
Haz clic en Añadir principal.
En el campo Nuevo principal, introduce uno de los siguientes identificadores principales de las identidades de tu grupo que suplantarán la cuenta de servicio.
Por tema
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoPOOL_ID
: el ID del grupo de cargas de trabajoSUBJECT
: el asunto individual asignado desde tu proveedor de identidades. Por ejemplo:administrator@example.com
Por grupo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoWORKLOAD_POOL_ID
: el ID del grupo de cargas de trabajoGROUP
: el grupo asignado de tu proveedor de identidades. Por ejemplo:administrator-group@example.com
Por atributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoWORKLOAD_POOL_ID
: el ID del grupo de cargas de trabajoATTRIBUTE_NAME
: uno de los atributos que se ha asignado desde tu proveedor de identidadesATTRIBUTE_VALUE
: el valor del atributo
Por piscina
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyectoWORKLOAD_POOL_ID
: el ID del grupo de cargas de trabajo
En Selecciona un rol, selecciona el rol Usuario de Workload Identity (
roles/iam.workloadIdentityUser
).Para guardar la configuración, haz clic en Guardar.
gcloud
Para conceder el rol de usuario de identidad de carga de trabajo (
roles/iam.workloadIdentityUser
) a un principal federado o a un conjunto de principales, ejecuta el siguiente comando. Para obtener más información sobre los identificadores principales de la federación de identidades de cargas de trabajo, consulta Tipos de principales.Por tema
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Por grupo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Por atributo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Haz los cambios siguientes:
SERVICE_ACCOUNT_EMAIL
: la dirección de correo de la cuenta de servicioPROJECT_NUMBER
: el número de proyecto del proyecto que contiene el grupo de identidades de carga de trabajo.POOL_ID
: el ID del grupo de identidades de carga de trabajoSUBJECT
: el valor esperado del atributo que has asignado agoogle.subject
GROUP
: el valor esperado del atributo que has asignado agoogle.groups
ATTRIBUTE_NAME
: el nombre de un atributo personalizado en tu asignación de atributosATTRIBUTE_VALUE
: el valor del atributo personalizado en tu asignación de atributos
Descargar o crear una configuración de credenciales
Las bibliotecas de cliente de Cloud, la CLI de gcloud y Terraform pueden obtener automáticamente credenciales externas y usarlas para suplantar una cuenta de servicio. Para que las bibliotecas y las herramientas puedan completar este proceso, debes proporcionar un archivo de configuración de credenciales. Este archivo define lo siguiente:
- Dónde obtener las credenciales externas
- Qué grupo y proveedor de identidades de carga de trabajo se deben usar
- Cuenta de servicio cuya identidad se va a usar
Para crear un archivo de configuración de credenciales, sigue estos pasos:
Consola
Para descargar un archivo de configuración de credenciales en la consola Trusted Cloud , sigue estos pasos:
En la Trusted Cloud consola, ve a la página Grupos de identidades de carga de trabajo.
Busca el grupo de identidades de carga de trabajo del IdP que quieras usar y haz clic en él.
Si has elegido usar el acceso directo a los recursos, haz lo siguiente:
Haz clic en Conceder acceso.
Selecciona Conceder acceso mediante identidades federadas (recomendado).
Haz clic en Descargar.
Sigue las instrucciones del cuadro de diálogo Configurar tu aplicación, más adelante en este procedimiento.
Si has elegido usar la suplantación de identidad de cuentas de servicio, haz lo siguiente:
Selecciona Cuentas de servicio conectadas.
Busca la cuenta de servicio que quieras usar y haz clic en
Descargar.Sigue las instrucciones del cuadro de diálogo Configurar tu aplicación, más adelante en este procedimiento.
En el cuadro de diálogo Configure your application (Configurar la aplicación), selecciona el proveedor que contenga las identidades externas.
Proporciona los siguientes ajustes adicionales:
AWS
No es necesario configurar nada más.
Azure
URL de ID de aplicación: URI de ID de aplicación de la aplicación de Azure
Selecciona
Descargar configuración para descargar el archivo de configuración de las credenciales y, a continuación, haz clic en Cerrar.
gcloud
Para crear un archivo de configuración de credenciales con
gcloud iam workload-identity-pools create-cred-config
, haz lo siguiente:AWS
Para crear un archivo de configuración de credenciales que permita a la biblioteca obtener un token de acceso de los metadatos de la instancia de EC2, haz lo siguiente:
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --aws \ --output-file=FILEPATH.json
Haz los cambios siguientes:
PROJECT_NUMBER
: el número del proyecto que contiene el grupo de identidades de carga de trabajoPOOL_ID
: el ID del grupo de identidades de carga de trabajo.PROVIDER_ID
: el ID del proveedor de grupos de identidades de carga de trabajo.SERVICE_ACCOUNT_EMAIL
: Si usas la suplantación de identidad de una cuenta de servicio, sustitúyelo por la dirección de correo de la cuenta de servicio. Omite esta marca si no usas la suplantación de identidad de cuentas de servicio.SERVICE_ACCOUNT_TOKEN_LIFETIME
: si usas la suplantación de identidad de la cuenta de servicio, sustitúyelo por el tiempo de vida del token de acceso de la cuenta de servicio, en segundos. Si no se proporciona, el valor predeterminado es una hora. Omite esta marca si no usas la suplantación de identidad de cuentas de servicio. Para especificar un tiempo de vida superior a una hora, debes configurar laconstraints/iam.allowServiceAccountCredentialLifetimeExtension
restricción de la política de organización.FILEPATH
: el archivo en el que se guardará la configuración.
Si usas IMDSv2 de AWS, debes añadir una marca adicional
--enable-imdsv2
al comandogcloud iam workload-identity-pools create-cred-config
:gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --aws \ --enable-imdsv2 \ --output-file=FILEPATH.json
Si no puedes usar el servidor de metadatos de AWS, puedes proporcionar las credenciales de seguridad de AWS a través de las siguientes variables de entorno de AWS:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION
oAWS_DEFAULT_REGION
- Opcional:
AWS_SESSION_TOKEN
La CLI de gcloud y las bibliotecas usan estas variables de entorno de AWS cuando el servidor de metadatos de AWS no está disponible.
Azure
Crea un archivo de configuración de credenciales que permita a la biblioteca obtener un token de acceso del servicio de metadatos de instancias de Azure (IMDS):
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --azure \ --app-id-uri APPLICATION_ID_URI \ --output-file=FILEPATH.json
Haz los cambios siguientes:
PROJECT_NUMBER
: número del proyecto que contiene el grupo de identidades de carga de trabajo.POOL_ID
: el ID del grupo de identidades de carga de trabajo.PROVIDER_ID
: el ID del proveedor de grupos de identidades de carga de trabajo.SERVICE_ACCOUNT_EMAIL
: Si usas la suplantación de identidad de una cuenta de servicio, sustitúyelo por la dirección de correo de la cuenta de servicio. Omite esta marca si no usas la suplantación de identidad de cuentas de servicio.APPLICATION_ID_URI
: el URI del ID de aplicación de la aplicación de Azure.SERVICE_ACCOUNT_TOKEN_LIFETIME
: si usas la suplantación de identidad de la cuenta de servicio,es el tiempo de vida del token de acceso de la cuenta de servicio en segundos. Si no se proporciona, el valor predeterminado es una hora. Omite esta marca si no usas la suplantación de identidad de cuentas de servicio. Para especificar un tiempo de vida superior a una hora, debes configurar laconstraints/iam.allowServiceAccountCredentialLifetimeExtension
restricción de la política de organización.FILEPATH
: el archivo en el que se guardará la configuración.
Usar la configuración de credenciales para acceder a Trusted Cloud
Para permitir que las herramientas y las bibliotecas de cliente usen tu configuración de credenciales, haz lo siguiente en tu entorno de AWS o Azure:
Inicializa una variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
y dirígela al archivo de configuración de la credencial:Bash
dondeexport GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
FILEPATH
es la ruta relativa al archivo de configuración de las credenciales.PowerShell
donde$env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
FILEPATH
es la ruta relativa al archivo de configuración de las credenciales.Usa una biblioteca o herramienta de cliente que admita la federación de identidades de cargas de trabajo y que pueda encontrar credenciales automáticamente:
C++
Las Trusted Cloud bibliotecas de cliente de C++ admiten Workload Identity Federation desde la versión v2.6.0. Para usar la federación de identidades de cargas de trabajo, debes compilar las bibliotecas de cliente con la versión 1.36.0 o una posterior de gRPC.
Go
Las bibliotecas de cliente de Go admiten la federación de identidades de carga de trabajo si usan la versión v0.0.0-20210218202405-ba52d332ba99 o una posterior del módulo
golang.org/x/oauth2
.Para comprobar qué versión de este módulo usa tu biblioteca de cliente, ejecuta los siguientes comandos:
cd $GOPATH/src/cloud.google.com/go go list -m golang.org/x/oauth2
Java
Las bibliotecas de cliente de Java admiten la federación de identidades de cargas de trabajo si usan la versión 0.24.0 o posterior del artefacto
com.google.auth:google-auth-library-oauth2-http
.Para comprobar qué versión de este artefacto usa tu biblioteca de cliente, ejecuta el siguiente comando de Maven en el directorio de tu aplicación:
mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
Node.js
Las bibliotecas de cliente de Node.js admiten la federación de identidades de carga de trabajo si usan la versión 7.0.2 o una posterior del paquete
google-auth-library
.Para comprobar qué versión de este paquete usa tu biblioteca de cliente, ejecuta el siguiente comando en el directorio de tu aplicación:
npm list google-auth-library
Cuando creas un objeto
GoogleAuth
, puedes especificar un ID de proyecto o permitir queGoogleAuth
lo encuentre automáticamente. Para encontrar el ID del proyecto automáticamente, la cuenta de servicio del archivo de configuración debe tener el rol de navegador (roles/browser
) o un rol con permisos equivalentes en tu proyecto. Para obtener más información, consulta laREADME
del paquetegoogle-auth-library
.Python
Las bibliotecas de cliente de Python admiten la federación de identidades de carga de trabajo si usan la versión 1.27.0 o una posterior del paquete
google-auth
.Para comprobar qué versión de este paquete usa tu biblioteca de cliente, ejecuta el siguiente comando en el entorno en el que está instalado el paquete:
pip show google-auth
Para especificar un ID de proyecto para el cliente de autenticación, puedes definir la variable de entorno
GOOGLE_CLOUD_PROJECT
o permitir que el cliente busque el ID de proyecto automáticamente. Para encontrar el ID de proyecto automáticamente, la cuenta de servicio del archivo de configuración debe tener el rol de navegador (roles/browser
) o un rol con permisos equivalentes en tu proyecto. Para obtener más información, consulta la guía de usuario del paquetegoogle-auth
.gcloud
Para autenticarte con la federación de identidades de cargas de trabajo, usa el comando
gcloud auth login
:gcloud auth login --cred-file=FILEPATH.json
Sustituye
FILEPATH
por la ruta del archivo de configuración de credenciales.La compatibilidad con Workload Identity Federation en la CLI de gcloud está disponible en la versión 363.0.0 y en versiones posteriores de la CLI de gcloud.
Terraform
El proveedorTrusted Cloud admite la federación de identidades de cargas de trabajo si usas la versión 3.61.0 o una posterior:
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.61.0" } } }
bq
Para autenticarte mediante la federación de identidades de cargas de trabajo, usa el comando
gcloud auth login
, como se indica a continuación:gcloud auth login --cred-file=FILEPATH.json
Sustituye
FILEPATH
por la ruta del archivo de configuración de credenciales.La federación de identidades de carga de trabajo en bq está disponible en la versión 390.0.0 y en versiones posteriores de la CLI de gcloud.
Si no puedes usar una biblioteca de cliente que admita la federación de identidades de carga de trabajo, puedes autenticarte de forma programática mediante la API REST.
Situaciones avanzadas
Autenticar una carga de trabajo mediante la API REST
Si no puedes usar las bibliotecas de cliente, sigue estos pasos para permitir que una carga de trabajo externa obtenga un token de acceso de corta duración mediante la API REST:
Obtén las credenciales de tu proveedor de identidades externo:
AWS
Crea un documento JSON que contenga la información que normalmente incluirías en una solicitud al endpoint
GetCallerIdentity()
de AWS, incluida una firma de solicitud válida.Workload Identity Federation se refiere a este documento JSON como un token
GetCallerIdentity
. El token permite que la federación de identidades de cargas de trabajo verifique la identidad sin revelar la clave de acceso secreta de AWS.Un token
GetCallerIdentity
tiene un aspecto similar al siguiente:{ "url": "https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15", "method": "POST", "headers": [ { "key": "Authorization", "value" : "AWS4-HMAC-SHA256 Credential=AKIASOZTBDV4D7ABCDEDF/20200228/us-east-1/sts/aws4_request, SignedHeaders=host;x-amz-date,Signature=abcedefdfedfd" }, { "key": "host", "value": "sts.amazonaws.com" }, { "key": "x-amz-date", "value": "20200228T225005Z" }, { "key": "x-goog-cloud-target-resource", "value": "//iam.googleapis.com/projects/12345678/locations/global/workloadIdentityPools/my-pool/providers/my-aws-provider" }, { "key": "x-amz-security-token", "value": "GizFWJTqYX...xJ55YoJ8E9HNU=" } ] }
El token contiene los siguientes campos:
url
: URL del endpoint de AWS STS paraGetCallerIdentity()
, con el cuerpo de una solicitudGetCallerIdentity()
estándar añadida como parámetros de consulta. Por ejemplo,https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15
. Te recomendamos que uses endpoints de STS regionales y diseñes una infraestructura fiable para tus cargas de trabajo. Para obtener más información, consulta Puntos de conexión regionales de AWS STS.method
: el método de solicitud HTTP:POST
.headers
: los encabezados de la solicitud HTTP, que deben incluir lo siguiente:Authorization
: la firma de la solicitud.host
: el nombre de host del campourl
. Por ejemplo,sts.amazonaws.com
.x-amz-date
: la hora a la que enviarás la solicitud, con el formato de cadena ISO 8601 básico. Este valor suele ser la hora actual y se usa para evitar ataques de repetición.x-goog-cloud-target-resource
: el nombre completo del recurso del proveedor de identidades sin el prefijohttps:
. Por ejemplo://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
x-amz-security-token
: token de sesión. Solo es obligatorio si usas credenciales de seguridad temporales.
En el siguiente ejemplo se crea un token
GetCallerIdentity
codificado como URL. Extrae el token codificado como URL para usarlo más adelante. También crea un token legible por humanos solo para tu referencia:Inicializa las siguientes variables:
Bash
SUBJECT_TOKEN_TYPE="urn:ietf:params:aws:token-type:aws4_request" SUBJECT_TOKEN=TOKEN
PowerShell
$SubjectTokenType = "urn:ietf:params:aws:token-type:aws4_request" $SubjectToken = "TOKEN"
Donde
TOKEN
es el token codificado como URLGetCallerIdentity
que ha generado la secuencia de comandos.Azure
Conéctate a una máquina virtual de Azure que tenga una identidad gestionada asignada y obtén un token de acceso del servicio de metadatos de instancias de Azure (IMDS):
Bash
SUBJECT_TOKEN_TYPE="urn:ietf:params:oauth:token-type:jwt" SUBJECT_TOKEN=$(curl \ "http://169.254.169.254/metadata/identity/oauth2/token?resource=APP_ID_URI&api-version=2018-02-01" \ -H "Metadata: true" | jq -r .access_token) echo $SUBJECT_TOKEN
Este comando usa la herramienta
jq
.jq
está disponible de forma predeterminada en Cloud Shell.PowerShell
$SubjectTokenType = "urn:ietf:params:oauth:token-type:jwt" $SubjectToken = (Invoke-RestMethod ` -Uri "http://169.254.169.254/metadata/identity/oauth2/token?resource=APP_ID_URI&api-version=2018-02-01" ` -Headers @{Metadata="true"}).access_token Write-Host $SubjectToken
Donde
APP_ID_URI
es el URI del ID de aplicación de la aplicación que has configurado para la federación de identidades de cargas de trabajo.Usa la API Security Token Service para intercambiar la credencial por un token de acceso de corta duración:
Bash
STS_TOKEN=$(curl https://sts.googleapis.com/v1/token \ --data-urlencode "audience=//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" \ --data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \ --data-urlencode "requested_token_type=urn:ietf:params:oauth:token-type:access_token" \ --data-urlencode "scope=https://www.googleapis.com/auth/cloud-platform" \ --data-urlencode "subject_token_type=$SUBJECT_TOKEN_TYPE" \ --data-urlencode "subject_token=$SUBJECT_TOKEN" | jq -r .access_token) echo $STS_TOKEN
PowerShell
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 $StsToken = (Invoke-RestMethod ` -Method POST ` -Uri "https://sts.googleapis.com/v1/token" ` -ContentType "application/json" ` -Body (@{ "audience" = "//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID" "grantType" = "urn:ietf:params:oauth:grant-type:token-exchange" "requestedTokenType" = "urn:ietf:params:oauth:token-type:access_token" "scope" = "https://www.googleapis.com/auth/cloud-platform" "subjectTokenType" = $SubjectTokenType "subjectToken" = $SubjectToken } | ConvertTo-Json)).access_token Write-Host $StsToken
Sustituye los siguientes valores:
PROJECT_NUMBER
: número de proyecto del proyecto que contiene el grupo de identidades de carga de trabajo.POOL_ID
: ID del grupo de identidades de carga de trabajoPROVIDER_ID
: ID del proveedor de grupos de identidades de carga de trabajo
Si usas la suplantación de identidad de una cuenta de servicio, usa el token del servicio de tokens de seguridad para invocar el método
generateAccessToken
de la API IAM Service Account Credentials para obtener un token de acceso.
Tokens para servicios de Cloud Run
Cuando accedas a un servicio de Cloud Run, debes usar un token de ID.
Bash
TOKEN=$(curl -0 -X POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:generateIdToken \ -H "Content-Type: text/json; charset=utf-8" \ -H "Authorization: Bearer $STS_TOKEN" \ -d @- <<EOF | jq -r .token { "audience": "SERVICE_URL" } EOF ) echo $TOKEN
PowerShell
$Token = (Invoke-RestMethod ` -Method POST ` -Uri "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:generateIdToken" ` -Headers @{ "Authorization" = "Bearer $StsToken" } ` -ContentType "application/json" ` -Body (@{ "audience" = "SERVICE_URL" } | ConvertTo-Json)).token Write-Host $Token
Haz los cambios siguientes:
-
SERVICE_ACCOUNT_EMAIL
: la dirección de correo de la cuenta de servicio. -
SERVICE_URL
: la URL del servicio (por ejemplo,https://my-service-12345-us-central1.run.app
). También puedes definirlo en tu endpoint de servicio personalizado. Para obtener más información, consulta el artículo Información sobre las audiencias personalizadas.
Tokens para otras plataformas
Cuando accedas a otro servicio, debes usar un token de acceso.
Bash
TOKEN=$(curl -0 -X POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:generateAccessToken \ -H "Content-Type: text/json; charset=utf-8" \ -H "Authorization: Bearer $STS_TOKEN" \ -d @- <<EOF | jq -r .accessToken { "scope": [ "https://www.googleapis.com/auth/cloud-platform" ] } EOF ) echo $TOKEN
PowerShell
$Token = (Invoke-RestMethod ` -Method POST ` -Uri "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:generateAccessToken" ` -Headers @{ "Authorization" = "Bearer $StsToken" } ` -ContentType "application/json" ` -Body (@{ "scope" = , "https://www.googleapis.com/auth/cloud-platform" } | ConvertTo-Json)).accessToken Write-Host $Token
Haz los cambios siguientes:
-
SERVICE_ACCOUNT_EMAIL
: la dirección de correo de la cuenta de servicio.
Siguientes pasos
- Consulta más información sobre la federación de identidades de cargas de trabajo.
- Consulta las prácticas recomendadas para usar la federación de identidades de cargas de trabajo.
- Consulta cómo puedes gestionar grupos y proveedores de Workload Identity.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-20 (UTC).
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Me falta la información que necesito","missingTheInformationINeed","thumb-down"],["Es demasiado complicado o hay demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Está obsoleto","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema de muestras o código","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-20 (UTC)."],[[["\u003cp\u003eWorkload Identity Federation allows AWS and Azure workloads to authenticate to Google Cloud without using a service account key.\u003c/p\u003e\n"],["\u003cp\u003eAWS EC2 instances and Azure VMs can use their respective environment-specific credentials, such as instance profiles and managed identities, to obtain short-lived Google Cloud Security Token Service tokens.\u003c/p\u003e\n"],["\u003cp\u003eBy configuring Workload Identity Federation, you can enable workloads to exchange these environment-specific credentials for short-lived Google Cloud credentials, granting them access to Google Cloud APIs.\u003c/p\u003e\n"],["\u003cp\u003eSetting up Workload Identity Federation involves creating a workload identity pool and provider, mapping attributes from external credentials, and defining conditions to control access.\u003c/p\u003e\n"],["\u003cp\u003eYou can grant federated identities direct resource access on Google Cloud or use service account impersonation, with proper roles and permissions, depending on the needs of the application.\u003c/p\u003e\n"]]],[],null,[]]