Para autenticarte en Trusted Cloud, puedes permitir que la carga de trabajo intercambie sus credenciales específicas del entorno por credenciales de corta duración Trusted Cloudmediante la federación de identidades de cargas de trabajo.
Las cargas de trabajo que se ejecutan fuera de Trusted Cloud pueden tener acceso a credenciales específicas del entorno, como las siguientes:
Una carga de trabajo puede obtener un token de aserción OpenID Connect (OIDC) de un proveedor de identidades (IdP).
Una carga de trabajo puede obtener un token de aserción SAML de un proveedor de identidades (IdP).
Usar la federación de identidades de cargas de trabajo puede ayudarte a reducir el número de credenciales que requieren rotación.
En las siguientes secciones se describe cómo puedes usar la federación de identidades de carga de trabajo con proveedores de identidades que admitan los protocolos de autenticación OpenID Connect (OIDC) o SAML.
Preparar tu proveedor de identidades externo
Solo tiene que seguir estos pasos una vez por cada proveedor de identidades.
Antes de empezar, compruebe que su proveedor de identidades externo cumpla los siguientes requisitos:
OIDC
El IdP es compatible con OpenID Connect 1.0.
El IdP tiene un URI de emisor.
El JWK del proveedor de identidades que se usa para verificar un token de aserción OIDC se puede proporcionar de una de las siguientes formas:
Endpoints de metadatos de OIDC protegidos con SSL y TLS. Las URLs de los endpoints deben empezar por
https://
y los endpoints deben ser de acceso público a través de Internet. Trusted Cloudno admite los endpoints protegidos con certificados autofirmados.Trusted Cloud usa estos endpoints para descargar el JWK de tu proveedor de identidades y usa este conjunto de claves para validar tokens.
Archivos JWKS de OIDC que se suben directamente a Trusted Cloud. Si usas este método, no es necesario que el endpoint sea accesible públicamente. Los campos
x5c
yx5t
del JWK no se admiten y deben eliminarse antes de subir el archivo.
SAML
El IdP es compatible con SAML 2.0.
El IdP proporciona un documento de metadatos del SP de SAML que describe la configuración del proveedor de servicios SAML y contiene el certificado de firma del IdP.
Trusted Cloud usa este certificado para validar las aserciones y las respuestas de SAML.
Los requisitos de la clave de firma X.509 de SAML son los siguientes:
Una clave pública RSA encapsulada en un certificado X.509 v3.
Requisitos de validez de los certificados:
notBefore
: una marca de tiempo que no sea posterior a 7 díasnotAfter
: una marca de tiempo que no sea posterior a 25 años
Algoritmos recomendados:
- RSAwithSHA256 (tamaños de clave admitidos [bits]: 2048, 3072 y 4096)
- ECDSAwithSHA256
Un proveedor de grupos de identidades de carga de trabajo se puede configurar con un máximo de tres claves de firma en un momento dado. Si hay varias claves, Trusted Cloud las recorre e intenta usar cada clave no caducada para completar una solicitud de intercambio de tokens.
Como medida de seguridad recomendada, te aconsejamos que no reutilices el mismo par de claves con otros servicios.
Si tu proveedor de identidades cumple estos criterios, haz lo siguiente:
OIDC
Configura tu proveedor de identidades para que tu carga de trabajo pueda obtener tokens de ID que cumplan los siguientes criterios:
- Los tokens se firman con el algoritmo
RS256
oES256
. Los tokens contienen una reclamación
aud
con el siguiente valor:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
Haz los cambios siguientes:
PROJECT_NUMBER
: el número de proyecto del Trusted Cloud proyecto que usas para crear el grupo de identidades de carga de trabajo.POOL_ID
: un ID de tu elección que identifica el grupo de identidades de carga de trabajo. Debe usar el mismo ID cuando cree el grupo de identidades de carga de trabajo más adelante.WORKLOAD_PROVIDER_ID
: un ID de tu elección que identifica al proveedor de grupos de identidades de carga de trabajo. Debes usar el mismo ID cuando crees el proveedor de grupos de identidades de carga de trabajo más adelante.
También puedes configurar el proveedor de grupos de identidades de carga de trabajo para que espere una audiencia personalizada.
Los tokens contienen una reclamación
exp
que es futura y una reclamacióniat
que es pasada.El valor de
exp
debe ser superior al valor deiat
en un máximo de 24 horas.
Por lo general, es mejor usar tokens de ID al realizar un intercambio de tokens, ya que reflejan la identidad del usuario. Si decides usar tokens de acceso, asegúrate de que cumplan los siguientes requisitos adicionales:
- Los tokens de acceso tienen el formato JSON Web Token.
Los tokens de acceso contienen una reclamación
ISSUER
para que la URLISSUER/.well-known/openid-configuration
apunte al endpoint de metadatos de OIDC del IdP.Para subir claves JWK locales, consulta Gestionar JWKs de OIDC.
SAML
Configura tu proveedor de identidades para que las aserciones SAML contengan elementos que cumplan los siguientes criterios:
- Un elemento
Issuer
que se ha definido como el ID de entidad configurado en el proveedor de grupos de identidades de carga de trabajo. El formato de la entidad emisora debe omitirse o definirse comourn:oasis:names:tc:SAML:2.0:nameid-format:entity
. - un elemento
Subject
con lo siguiente:- un elemento
NameID
. - exactamente un elemento
SubjectConfirmation
conMethod
definido comourn:oasis:names:tc:SAML:2.0:cm:bearer
. - Un elemento
SubjectConfirmationData
con el atributoNotOnOrAfter
definido con una marca de tiempo futura y sin valorNotBefore
.
- un elemento
un elemento
Conditions
con lo siguiente:NotBefore
se ha omitido o es una fecha pasada.NotOnOrAfter
se ha omitido o es posterior a la fecha actual.Un
Audience
con el siguiente formato:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
Haz los cambios siguientes:
PROJECT_NUMBER
: el número de proyecto del Trusted Cloud proyecto que usas para crear el grupo de identidades de carga de trabajo.POOL_ID
: un ID de tu elección que identifica el grupo de identidades de carga de trabajo. Debe usar el mismo ID cuando cree el grupo de identidades de carga de trabajo más adelante.WORKLOAD_PROVIDER_ID
: un ID de tu elección que identifica al proveedor de grupos de identidades de carga de trabajo. Debes usar el mismo ID cuando crees el proveedor de grupos de identidades de carga de trabajo más adelante.
al menos un elemento
AuthnStatement
.Un elemento
SessionNotOnOrAfter
con una marca de tiempo que se produce en el futuro. También puedes omitir el elemento.
En el caso de las aserciones SAML que se incluyen en una respuesta SAML, esta debe contener lo siguiente:
- exactamente una aserción que cumpla los criterios de aserción SAML que se describen más arriba en esta sección.
- Un atributo
IssueInstant
con un valor de menos de una hora. - StatusCode
urn:oasis:names:tc:SAML:2.0:status:Success
.
Se debe firmar la aserción SAML, la respuesta o ambas.
Configurar la federación de identidades de cargas de trabajo
Solo tiene que seguir estos pasos una vez por cada proveedor de identidades. 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, on 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.
Gestionar JWKs de OIDC subidos por el usuario (opcional)
En esta sección se explica cómo gestionar las JWKs de OIDC subidas por el usuario en los proveedores de OIDC de grupos de Workload Identity.
Crear un proveedor y subir JWKs de OIDC
Para crear JWKs de OIDC, consulta Implementaciones de JWT, JWS, JWE, JWK y JWA.
Para subir un archivo JWK de OIDC al crear un proveedor de grupos de identidades de carga de trabajo, ejecuta el comando gcloud iam workload-identity-pools providers create-oidc con --jwk-json-path="JWK_JSON_PATH"
.
Sustituye JWK_JSON_PATH
por la ruta al archivo JSON de JWKs.
Esta operación crea claves subidas con las del archivo.
Actualizar JWKs de OIDC
Para actualizar las JWKs de OIDC, ejecuta el comando
gcloud iam workload-identity-pools providers update-oidc
con --jwk-json-path="JWK_JSON_PATH"
.
Sustituye JWK_JSON_PATH
por la ruta al archivo JSON de JWKs.
Esta operación sustituye las claves subidas por las del archivo. No puedes restaurar las claves sustituidas.
Eliminar todos los JWKs de OIDC subidos
Para eliminar todos los JWKs de OIDC subidos y volver a usar el URI del emisor para obtener las claves, ejecuta el comando gcloud iam workload-identity-pools providers update-oidc con --jwk-json-path="JWK_JSON_PATH"
.
Sustituye JWK_JSON_PATH
por la ruta a un archivo vacío.
Usa la marca --issuer-uri
para definir el URI del emisor.
Esta operación elimina todas las llaves que hayas subido y las sustituye por las del archivo. No puedes restaurar las claves eliminadas.
Definir una asignación de atributos y una condición
Los tokens OIDC o las aserciones SAML emitidos por tu proveedor de identidades pueden contener varios atributos, y debes decidir qué atributo quieres usar como identificador de asunto (google.subject
) en Trusted Cloud.
Si quiere, puede mapear atributos adicionales. Después, puedes hacer referencia a estos atributos al conceder acceso a los recursos.
OIDC
Tus asignaciones de atributos pueden usar las reclamaciones insertadas en el token de ID o en el token de acceso emitido por el proveedor de identidades externo.
Debe asignar una de estas reclamaciones a google.subject
para identificar al usuario de forma única. Para protegerte frente a las amenazas de suplantación de identidad, elige una reclamación con un valor único que no se pueda cambiar.
Muchos proveedores de identidades rellenan la reclamación sub
con un ID único e inmutable. En estos proveedores de identidades, puedes asignar la reclamación sub
a google.subject
:
google.subject=assertion.sub
No uses una afirmación como email
para este fin. Las direcciones de correo electrónico se pueden reasignar o cambiar, por lo que no identifican a un usuario de forma única y permanente.
SAML
Tus asignaciones de atributos pueden usar los elementos <Subject>
y <Attribute>
insertados en la aserción emitida por el proveedor de identidades externo. Se puede hacer referencia a los atributos SAML mediante las siguientes palabras clave:
assertion.subject
contiene elNameID
del usuario autenticado que se encuentra en el elemento<Subject>
.assertion.attributes['ATTRIBUTE_NAME']
contiene una lista de valores para el<Attribute>
con el mismo nombre.
Debe asignar una de estas reclamaciones a google.subject
para identificar al usuario de forma única. Para protegerte frente a las amenazas de suplantación de identidad, elige una reclamación con un valor único que no se pueda cambiar.
Muchos proveedores de identidades rellenan el NameId
con un ID único e inmutable. En el caso de estos proveedores de identidades, puede asignar el atributo NameId
a google.subject
:
google.subject=assertion.subject
No utilice un atributo como
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
para este fin. Las direcciones de correo suelen poder reasignarse o cambiarse, por lo que no identifican a un usuario de forma única y permanente.
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.
OIDC
Puede usar una condición de atributo para restringir los usuarios que 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 tokens que contienen una reclamación personalizada service_account
con el valor true
:
assertion.service_account==true
SAML
Puede usar una condición de atributo para restringir los usuarios que 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 las aserciones que contienen un atributo https://example.com/SAML/Attributes/AllowGcpFederation
personalizado con el valor true
:
assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'
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 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 de la siguiente manera:
OIDC
- En Seleccionar un proveedor, selecciona OpenID Connect (OIDC).
- En Nombre del proveedor, escribe el nombre del proveedor. El nombre también se usa como ID de proveedor. No puedes cambiar el ID del proveedor después de crearlo.
- En Issuer URL (URL del emisor), introduce la URL del emisor de tu proveedor de identidades. La URL debe empezar por
https://
. - Opcional: En Archivo JWK (JSON), elige un archivo JWK para subirlo. Si no se proporciona este campo, Trusted Cloud intentará obtener una JWK del emisor.
- Audiencias permitidas: audiencia esperada de los tokens de ID.
SAML
- En Select a provider (Seleccionar un proveedor), selecciona SAML.
- En Nombre del proveedor, escribe el nombre del proveedor. El nombre también se usa como ID de proveedor. No puedes cambiar el ID del proveedor después de crearlo.
- En IDP Metadata file (XML) (Archivo de metadatos del proveedor de identidades [XML]), sube el documento XML de metadatos SAML que te haya proporcionado tu proveedor de identidades.
Haz clic en Continuar.
En Configurar atributos del proveedor, añade las asignaciones de atributos que has identificado anteriormente en esta guía.
En Condiciones de los atributos, introduzca la condición del atributo que ha identificado anteriormente en esta guía. Deje el campo en blanco si no tiene ninguna condición de atributo.
Para crear el grupo de identidades de carga de trabajo y el proveedor, haz clic en Guardar.
gcloud
Para crear un grupo de identidades de carga de trabajo, ejecuta el siguiente comando:
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
: una descripción de la piscina que elijas. Esta descripción aparece cuando concedes acceso a identidades de grupo.
Para añadir un proveedor de grupos de identidades de carga de trabajo, sigue estos pasos:
OIDC
Para añadir un proveedor de grupos de identidades de carga de trabajo OIDC, ejecuta el siguiente comando:
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --allowed-audiences="AUDIENCE" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS" --jwk-json-path="JWK_JSON_PATH"
Haz los cambios siguientes:
WORKLOAD_PROVIDER_ID
: un ID de proveedor de grupos de identidades de carga de trabajo único que elijas.POOL_ID
: el ID del grupo de identidades de carga de trabajo que has creado anteriormente.ISSUER
: un URI de emisor tal como se define en los metadatos de OIDC.AUDIENCE
: la audiencia esperada de los tokens de ID, que, en el caso de muchos proveedores, coincide con el ID de cliente.MAPPINGS
: lista separada por comas de asignaciones de atributos que has creado anteriormente en esta guía.CONDITIONS
: una condición de atributo opcional que ha creado anteriormente en esta guía. Quita el parámetro si no tienes una condición de atributo.JWK_JSON_PATH
: Ruta opcional a un archivo JWKs de OIDC subido localmente. Si no se proporciona este parámetro, Trusted Cloud en su lugar se usa la ruta/.well-known/openid-configuration
de tu IdP para obtener los JWKs que contienen las claves públicas.
SAML
Para añadir un proveedor de grupos de identidades de carga de trabajo SAML, ejecuta el siguiente comando:
gcloud iam workload-identity-pools providers create-saml WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --idp-metadata-path="IDP_METADATA_PATH" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Haz los cambios siguientes:
POOL_ID
: el ID del grupoIDP_METADATA_PATH
: la ruta local al documento de metadatos del proveedor de identidades SAMLMAPPINGS
: lista separada por comas de asignaciones de atributos que has creado anteriormente en esta guíaCONDITIONS
: Opcional: la condición del atributo que has creado anteriormente en esta guía
El prefijo
gcp-
está reservado y no se puede usar en un ID de grupo de identidades de Workforce ni en un ID de proveedor de grupos de identidades de Workforce.Opcional: Aceptar aserciones SAML cifradas de tu proveedor de identidades
Para habilitar tu proveedor de identidades SAML 2.0 para que genere aserciones SAML cifradas que pueda aceptar la federación de identidades de carga de trabajo, haz lo siguiente:
- En la federación de identidades de cargas de trabajo, haz lo siguiente:
- Crea un par de claves asimétricas para tu proveedor de grupos de identidades de carga de trabajo.
- Descarga un archivo de certificado que contenga la clave pública.
- Configura tu proveedor de identidades SAML para que use la clave pública para cifrar las aserciones SAML que emita.
- En tu proveedor de identidades, haz lo siguiente:
- Habilita el cifrado de aserciones, también conocido como cifrado de tokens.
- Sube la clave pública que has creado en la federación de identidades de cargas de trabajo.
- Confirma que tu IdP genera aserciones SAML cifradas.
Crear claves de cifrado de aserciones SAML de federación de identidades de cargas de trabajo
En esta sección se explica cómo crear un par de claves asimétricas que permita a la federación de identidades de cargas de trabajo aceptar aserciones SAML cifradas.
Trusted Cloud by S3NS usa la clave privada para descifrar las aserciones SAML que emite tu proveedor de identidades. Para crear un par de claves asimétricas que se pueda usar con el cifrado SAML, ejecuta el siguiente comando. Para obtener más información, consulta Algoritmos de cifrado SAML admitidos.
gcloud iam workload-identity-pools providers keys create KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Haz los cambios siguientes:
KEY_ID
: el nombre de la clave que elijasWORKLOAD_POOL_ID
: el ID del grupoWORKLOAD_PROVIDER_ID
: el ID del proveedor de grupos de identidades de Workforce-
KEY_SPECIFICATION
: la especificación de la clave, que puede serrsa-2048
,rsa-3072
orsa-4096
.
Una vez creado el par de claves, ejecuta el siguiente comando para descargar la clave pública en un archivo de certificado. Solo la federación de identidades de cargas de trabajo tiene acceso a la clave privada.
gcloud iam workload-identity-pools providers keys describe KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Haz los cambios siguientes:
KEY_ID
: el nombre de la claveWORKLOAD_POOL_ID
: el ID del grupoWORKLOAD_PROVIDER_ID
: el ID del proveedor de grupos de identidades de WorkforceCERTIFICATE_PATH
: la ruta en la que se escribirá el certificado (por ejemplo,saml-certificate.cer
osaml-certificate.pem
).
Configurar un IdP compatible con SAML 2.0 para que emita aserciones SAML cifradas
Configura tu proveedor de identidades SAML para que use el certificado público descargado en el último paso para cifrar las aserciones de SAML que emita. Pídele instrucciones específicas al equipo de tu IdP.
Una vez que haya configurado su proveedor de identidades para cifrar las aserciones SAML, le recomendamos que compruebe que las aserciones que genera estén cifradas. Aunque se haya configurado el cifrado de aserciones SAML, la federación de identidades de cargas de trabajo puede seguir procesando aserciones de texto sin formato.
Eliminar claves de cifrado de federación de identidades de cargas de trabajo
Para eliminar las claves de cifrado SAML, ejecuta el siguiente comando:gcloud iam workload-identity-pools providers keys delete KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global
Haz los cambios siguientes:
KEY_ID
: el nombre de la claveWORKLOAD_POOL_ID
: el ID del grupoWORKLOAD_PROVIDER_ID
: el ID del proveedor de grupos de identidades de Workforce
Algoritmos de cifrado SAML admitidos
La federación de identidades de cargas de trabajo admite los siguientes algoritmos de transporte de claves:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
La federación de identidades de cargas de trabajo admite los siguientes algoritmos de cifrado por bloques:
Autenticar una carga de trabajo
Debes seguir estos pasos una vez por cada 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 una configuración de credenciales
En esta sección se describe cómo descargar la configuración de las credenciales mediante la consolaTrusted Cloud .
Para que tu carga de trabajo pueda acceder a las bibliotecas de cliente, primero debes descargar y configurar las credenciales predeterminadas de la aplicación (ADC). Para ello, sigue estos pasos:
-
En la Trusted Cloud consola, ve a la página Grupos de Workload Identity.
Ir a Grupos de Workload Identity -
En la tabla, selecciona tu grupo para ir a la página de detalles del grupo.
-
Haz clic en Conceder acceso.
-
Selecciona Conceder acceso mediante identidades federadas (recomendado).
-
Para descargar la credencial predeterminada de la aplicación (ADC) de forma que tu carga de trabajo pueda acceder a las bibliotecas de cliente, haz lo siguiente:
-
Haz clic en Descargar configuración.
-
En el cuadro de diálogo Configura tu aplicación, haz lo siguiente:
-
En la lista desplegable Proveedor, selecciona tu proveedor.
-
En Ruta del token de OIDC o Ruta de la aserción de SAML, introduce la ruta donde se encuentra el token o la aserción.
En la lista desplegable Tipo de formato, selecciona el formato.
-
-
Haz clic en Descargar configuración y anota la ruta donde has guardado el archivo.
-
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 acceder a Trusted Cloud. 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
- Qué cuenta de servicio se va a suplantar, si usas la suplantación de cuentas de servicio
Las bibliotecas de cliente de Cloud obtienen credenciales externas de un archivo local, una URL HTTP o ejecutando un archivo ejecutable local:
Credenciales procedentes de ejecutables: las bibliotecas inician un ejecutable cada vez que necesitan una nueva credencial. Si el archivo ejecutable consigue obtener una nueva credencial externa, debe escribir un documento JSON en
STDOUT
que tenga el siguiente aspecto:OIDC
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:id_token", "id_token": "HEADER.PAYLOAD.SIGNATURE", "expiration_time": 1620499962 }
Si el archivo ejecutable no consigue obtener una nueva credencial, debe escribir un documento JSON en
STDOUT
con el siguiente formato:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }
Los documentos JSON usan los siguientes campos:
version
: la versión de la salida JSON. Solo se admite la versión 1.success
: el estado de la respuesta.Cuando
true
, la respuesta debe contener los camposid_token
ytoken_type
. El archivo ejecutable debe cerrarse con el código de salida 0.Si
false
, la respuesta debe contener los camposcode
ymessage
y salir con un valor distinto de cero.token_type
: el tipo de token de la credencial externa. Los valores admitidos son:urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:oauth:token-type:jwt
id_token
: la credencial externa.expiration_time
: tiempo de caducidad del token de OIDC en segundos (tiempo de época de Unix). Este campo solo es obligatorio cuando se ha especificado un archivo de salida en la configuración de las credenciales.code
: la cadena del código de error.message
: el mensaje de error.
SAML
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:saml2", "saml_response": "...", "expiration_time": 1620499962 }
Si el archivo ejecutable no consigue obtener una nueva credencial, debe escribir un documento JSON en
STDOUT
con el siguiente formato:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }
Los documentos JSON usan los siguientes campos:
version
: la versión de la salida JSON. Solo se admite la versión 1.success
: el estado de la respuesta.Cuando
true
, la respuesta debe contener los camposid_token
ytoken_type
. El archivo ejecutable debe cerrarse con el código de salida 0.Si
false
, la respuesta debe contener los camposcode
ymessage
y salir con un valor distinto de cero.token_type
: el tipo de token de la credencial externa. Debe serurn:ietf:params:oauth:token-type:saml2
.saml_response
: la respuesta SAML o la aserción SAML codificada en base64.expiration_time
: tiempo de caducidad de la aserción en segundos (tiempo de época de Unix). Este campo solo es obligatorio cuando se ha especificado un archivo de salida en la configuración de las credenciales.code
: la cadena del código de error.message
: el mensaje de error.
Al iniciar el ejecutable, las bibliotecas de cliente definen las siguientes variables de entorno:
GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE
: Audiencia de la configuración de las credenciales. Siempre presente.GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE
: Tipo de token de asunto esperado. Siempre presente.GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL
: Correo de la cuenta de servicio. Solo se incluye cuando se usa la suplantación de cuentas de servicio.GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE
: Ubicación del archivo de salida de la configuración de las credenciales. Solo se presenta cuando se especifica en la configuración de las credenciales.
Para usar credenciales procedentes de un archivo ejecutable, debes asignar el valor
1
a la variable de entornoGOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
.Credenciales procedentes de un archivo: las bibliotecas leen las credenciales externas de un archivo JSON o de texto sin formato local. Por ejemplo:
JSON
{ "mytoken": "ey... }
Texto
ey...
La credencial externa puede ser:
- Un token de OIDC
- Una respuesta SAML
- una aserción SAML codificada en base64
Debe actualizar el archivo periódicamente para que siempre contenga una credencial válida. Por ejemplo, si el token OIDC o la aserción SAML son válidos durante una hora, debe actualizar el archivo al menos una vez cada hora.
Credenciales procedentes de URLs: las bibliotecas realizan una solicitud
GET
a un endpoint HTTP cada vez que necesitan una nueva credencial. El endpoint debe devolver una respuesta de texto sin formato o JSON que sea equivalente al formato utilizado por las credenciales procedentes de archivos.
Para crear un archivo de configuración de credenciales, sigue estos pasos:
Credenciales procedentes de ejecutables
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --executable-command=EXECUTABLE_COMMAND \ --executable-timeout-millis=EXECUTABLE_TIMEOUT \ --executable-output-file=EXECUTABLE_OUTPUT_FILE
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.WORKLOAD_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 la 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.EXECUTABLE_COMMAND
: el comando completo, incluidos los argumentos, que se debe ejecutar para obtener el token de ID de OIDC. Por ejemplo,--executable-command="/path/to/command --foo=bar"
.EXECUTABLE_TIMEOUT
: duración opcional en milisegundos que se debe esperar a que se ejecute el archivo ejecutable (el valor predeterminado es 30 s).EXECUTABLE_OUTPUT_FILE
: una ruta que apunta a las credenciales de terceros generadas por el archivo ejecutable. Esto resulta útil para almacenar en caché las credenciales. Si especificas esta ruta, las bibliotecas de autenticación comprobarán primero si existe antes de ejecutar el archivo ejecutable.
Credenciales procedentes de archivos
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --credential-source-file=TOKEN_FILEPATH \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
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.WORKLOAD_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.TOKEN_FILEPATH
: ruta en la que se almacenan los tokens de ID de OIDC.SOURCE_TYPE
: formato del archivo de token de ID de OIDC, que puede sertext
(valor predeterminado) ojson
.FIELD_NAME
: el campo del archivo de texto que contiene el token (siSOURCE_TYPE
esjson
).
Credenciales procedentes de URLs
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --credential-source-url="TOKEN_URL" \ --credential-source-headers="KEY_1=VALUE_1,KEY_2=VALUE_2" \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
Haz los cambios siguientes:
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 trabajo.WORKLOAD_PROVIDER_ID
: ID del proveedor de grupos de identidades de carga de trabajoSERVICE_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
: archivo en el que se guardará la configuración.TOKEN_URL
: URL para obtener el token de ID de OIDCKEY_n
,VALUE_n
: encabezados personalizados que se incluirán en la solicitud HTTP aTOKEN_URL
SOURCE_TYPE
: formato del archivo de token de ID de OIDC. El valor predeterminado estext
, pero también puede serjson
.FIELD_NAME
: campo del archivo de texto que contiene el token (siSOURCE_TYPE
esjson
)
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:
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.
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.