Invoca un extremo local privado, Compute Engine, GKE o cualquier otro extremo mediante la habilitación de IAP

Puedes invocar un extremo privado local, Compute Engine, Google Kubernetes Engine (GKE) o cualquier otro extremo de Google Cloud desde Workflows si habilitas Identity-Aware Proxy (IAP) para el extremo. IAP se usa con el objetivo de aplicar políticas de control de acceso y te permite establecer una capa de autorización central para las aplicaciones a las que se accede mediante HTTPS, de modo que puedas usar un modelo de control de acceso a nivel de aplicación en lugar de firewalls a nivel de red. Para obtener más información, consulta la Descripción general de IAP y los siguientes vínculos:

De manera alternativa, puedes orientar las llamadas HTTP desde la ejecución del flujo de trabajo a un extremo privado mediante el registro de servicio del Directorio de servicios con Workflows. Cuando se crea un extremo privado dentro de una red de nube privada virtual (VPC), el extremo puede cumplir con los Controles del servicio de VPC. Para obtener más información, consulta Invoca un extremo privado que cumple con los Controles del servicio de VPC.

Realiza una solicitud HTTP

La llamada o la invocación de un extremo privado desde Workflows se realizan mediante 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 si configuras el campo call en http.request y especificas el tipo de solicitud con el campo method. Para obtener más información, consulta Realiza 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 con una cuenta de servicio a la que se le hayan otorgado una o más funciones 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 con un flujo de trabajo existente, consulta Verifica la cuenta de servicio asociada de un flujo de trabajo.

Cuando configuras una cuenta de servicio, debes asociar la identidad solicitante con el recurso al que quieres darle acceso (haces que la identidad solicitante sea una principal o usuario del recurso) y, luego, le asignas el rol adecuado. La función 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 tienen la función correcta pueden acceder a ellos a través del proxy.

Por ejemplo, después de la autenticación, IAP aplica la política de permiso relevante para verificar si la principal está autorizada para acceder al recurso solicitado. Si la principal tiene el rol de Usuario de aplicación web protegida con IAP (roles/iap.httpsResourceAccessor) en el proyecto de la consola de Google Cloud en el que existe el recurso, está autorizada para acceder a la aplicación.

Puedes configurar el acceso a tu recurso protegido con IAP a través de la página de IAP si agregas la cuenta de servicio de Workflows como una principal. Para obtener más información, consulta Administra el acceso a los recursos protegidos con 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 información de autenticación de forma explícita a la definición de tu flujo de trabajo. Cuando realices solicitudes a un extremo privado, usa OIDC para autenticar 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 invoques 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?