Puedes usar Workflows para invocar un extremo para el que se habilitó Identity-Aware Proxy (IAP). El extremo puede ser un extremo local, de Compute Engine, de Google Kubernetes Engine (GKE) o de otro tipo deGoogle Cloud extremo.
IAP verifica la identidad y aplica la autorización a nivel de la aplicación, por lo que puedes usar un modelo de control de acceso a nivel de la aplicación en lugar de depender de firewalls a nivel de red. Cuando una aplicación o un recurso están protegidos por IAP, solo las principales que tengan el rol correcto de Identity and Access Management (IAM) podrán acceder a ellos a través del proxy.
Para obtener más información, consulta la descripción general de IAP y las siguientes guías:
- Habilita IAP para App Engine
- Habilita IAP para Cloud Run
- Habilita IAP para Compute Engine
- Habilita IAP para GKE
- Habilita IAP para apps locales
Realiza una solicitud HTTP
Llamar o invocar un extremo desde Workflows se realiza a través de una solicitud HTTP. Los métodos de solicitud HTTP más comunes tienen un acceso directo de llamada (como http.get y http.post), pero puedes realizar cualquier tipo de solicitud HTTP configurando el campo call en http.request y especificando el tipo de solicitud con el campo method. Para obtener más información, consulta Cómo realizar una solicitud HTTP.
Usa una cuenta de servicio con los permisos necesarios
Cuando realices solicitudes a otros servicios de Google Cloud , tu flujo de trabajo debe estar asociado a una cuenta de servicio a la que se le haya otorgado uno o más roles de Identity and Access Management (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 existente, consulta Cómo verificar la cuenta de servicio asociada a un flujo de trabajo.
Cuando configuras una cuenta de servicio, asocias la identidad solicitante con el recurso al que deseas darle acceso (conviertes la identidad solicitante en un principal o usuario del recurso) y, luego, le asignas el rol adecuado. El rol define qué permisos tiene la identidad en el contexto del recurso. Cuando una aplicación o un recurso están protegidos por IAP, solo las principales que tengan el rol correcto podrán acceder a ellos a través del proxy.
Por ejemplo, después de la autenticación, IAP aplica la política de permisos relevante para comprobar si la principal está autorizada a acceder al recurso solicitado. Si la principal tiene el rol de Usuario de app web protegida con IAP (roles/iap.httpsResourceAccessor) en el proyecto de la consola de Google Cloud donde existe el recurso, está autorizada 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 agregando la cuenta de servicio de Workflows como principal. Para obtener más información, consulta Administra el acceso a los recursos protegidos por IAP.
Agrega 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 agregar explícitamente información de autenticación a la definición de tu flujo de trabajo. Cuando realices solicitudes a un extremo, usa OIDC para autenticarte a través de IAP.
Para realizar una solicitud HTTP con OIDC, agrega 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" } } } } ]
Puedes usar el parámetro audience para especificar el público de OIDC del token.
Cuando invocas un extremo habilitado para IAP, debes especificar el ID de cliente de OAuth 2.0 que configuraste para tu aplicación. Puedes obtenerlo en la página Credenciales.
¿Qué sigue?
- Otorga permiso a un flujo de trabajo para acceder a los recursos de Google Cloud
- Cómo acceder a los datos de respuesta HTTP guardados en una variable
- Invoca un extremo privado con el registro de servicios del Directorio de servicios