Puedes usar Workflows para invocar un endpoint en el que se haya habilitado Identity-Aware Proxy (IAP). El endpoint puede ser un endpoint local, de Compute Engine, de Google Kubernetes Engine (GKE) o de otro tipo.Google Cloud
IAP verifica la identidad y aplica la autorización a nivel de aplicación, por lo que puedes usar un modelo de control de acceso a nivel de aplicación en lugar de depender de cortafuegos a nivel de red. Cuando una aplicación o un recurso están protegidos por IAP, solo pueden acceder a ellos a través del proxy las entidades que tengan el rol de Gestión de Identidades y Accesos (IAM) correcto.
Para obtener más información, consulta la descripción general de IAP y las siguientes guías:
- Habilitar IAP para App Engine
- Habilitar IAP para Cloud Run
- Habilitar IAP para Compute Engine
- Habilitar IAP para GKE
- Habilitar IAP en aplicaciones on‑premise
Hacer una solicitud HTTP
Para llamar o invocar un endpoint desde Workflows, se usa una solicitud HTTP. Los métodos de solicitud HTTP más habituales tienen un acceso directo de llamada (como http.get y http.post), pero puedes hacer cualquier tipo de solicitud HTTP configurando el campo call como http.request y especificando el tipo de solicitud mediante el campo method. Para obtener más información, consulta Hacer una solicitud HTTP.
Usar una cuenta de servicio con los permisos necesarios
Cuando hagas solicitudes a otros servicios de Google Cloud , tu flujo de trabajo debe estar asociado a una cuenta de servicio a la que se le hayan concedido uno o varios roles de gestión de identidades y accesos (IAM) que contengan los permisos necesarios para acceder a los recursos solicitados. Para saber qué cuenta de servicio está asociada a un flujo de trabajo, consulta Verificar la cuenta de servicio asociada a un flujo de trabajo.
Cuando configuras una cuenta de servicio, asocias la identidad solicitante al recurso al que quieres darle acceso. Es decir, conviertes la identidad solicitante en un principal o usuario del recurso y, a continuación, le asignas el rol adecuado. El rol define los permisos que tiene la identidad en el contexto del recurso. Cuando una aplicación o un recurso están protegidos por IAP, solo pueden acceder a ellos a través del proxy las entidades que tengan el rol correcto.
Por ejemplo, después de la autenticación, IAP aplica la política de permiso pertinente para comprobar si la entidad tiene autorización para acceder al recurso solicitado. Si la entidad tiene el rol Usuario de aplicación web protegida por IAP (roles/iap.httpsResourceAccessor) en el Google Cloud proyecto de consola Google Cloud donde se encuentra el recurso, tiene autorización para acceder a la aplicación.
Puedes configurar el acceso a tu recurso protegido por IAP a través de la página de IAP añadiendo la cuenta de servicio de Workflows como principal. Para obtener más información, consulta Gestionar el acceso a recursos protegidos por IAP.
Añadir información de autenticación a tu flujo de trabajo
De forma predeterminada, las solicitudes HTTP no contienen tokens de identidad ni de acceso por motivos de seguridad. Debes añadir explícitamente la información de autenticación a la definición de tu flujo de trabajo. Al hacer solicitudes a un endpoint, usa OIDC para autenticarte a través de IAP.
Para hacer una solicitud HTTP mediante OIDC, añade una sección auth a la sección args de la definición de tu flujo de trabajo después de especificar la URL.
YAML
- step_A: call: http.get args: url: https://www.example.com/endpoint body: someValue: "Hello World" anotherValue: 123 auth: type: OIDC audience: OIDC_AUDIENCE
JSON
[ { "step_A": { "call": "http.get", "args": { "url": "https://www.example.com/endpoint", "body": { "someValue": "Hello World", "anotherValue": 123 }, "auth": { "type": "OIDC", "audience": "OIDC_AUDIENCE" } } } } ]
Puede usar el parámetro audience para especificar la audiencia de OIDC del token.
Cuando invoques un endpoint habilitado para IAP, debes especificar el ID de cliente de OAuth 2.0 que hayas configurado para tu aplicación. Puedes obtenerla en la página Credenciales.
Siguientes pasos
- Conceder permiso a un flujo de trabajo para acceder a Google Cloud recursos
- Acceder a los datos de respuesta HTTP guardados en una variable
- Invocar un punto final privado mediante el registro de servicios del directorio de servicios