通过启用 IAP 调用专用本���、Compute Engine、GKE 或其他端点

您可以调用专用本地集群 Compute Engine Google Kubernetes Engine (GKE) 或其他 Google Cloud 端点, 通过为端点启用 Identity-Aware Proxy (IAP) 的 Workflows。 IAP 用于强制执行访问控制政策,可让您为通过 HTTPS 访问的应用建立一个中央授权层,从而可以采用一种应用级访问权限控制模型,而无需依赖网络级防火墙。有关详情,请参阅 IAP 概览和以下内容:

或者,您也可以将专用端点作为 HTTP 调用的目标 使用 Service Directory 的服务注册表来执行工作流。 Workflows。通过在虚拟私有云 (VPC) 网络中创建专用端点,该端点可以符合 VPC Service Controls 要求。如需了解详情,请参阅调用符合 VPC Service Controls 要求的专用端点

发出 HTTP 请求

已从 Workflows 调用或调用专用端点 通过 HTTP 请求发送最常见的 HTTP 请求方法都有一个调用 快捷方式(例如 http.gethttp.post),但您可以将 将 call 字段设置为 http.request 以执行任何类型的 HTTP 请求, 使用 method 字段指定请求的类型。如需了解详情,请参阅发出 HTTP 请求

使用具有所需权限的服务账号

向其他 Google Cloud 服务发出请求时,您的工作流必须与具有一个或多个包含所需权限的 Identity and Access Management (IAM) 角色的服务账号相关联,这些角色能够访问所请求资源。如需了解与现有工作流关联的服务账号,请参阅验证工作流的关联服务账号

设置服务账号时,您需要将发出请求的身份与 要向其授予访问权限的资源 - 您需要将发出请求的身份 主账号,即用户的用户,然后为它分配适当的角色。 该角色定义身份在资源上下文中具有的权限。如果某一应用或资源受 IAP 保护,则只有具有正确角色的主账号才能通过代理访问该应用或资源。

例如,身份验证完成后,IAP 会应用相关的允许政策来检查主账号是否有权访问所请求的资源。如果主账号对资源所属的 Google Cloud 控制台项目拥有 IAP-secured Web App User 角色 (roles/iap.httpsResourceAccessor),则表示其有权访问相应应用。

您可以通过以下方式配置对受 IAP 保护的资源的访问权限: “IAP”页面中的 Workflows 服务账号。如需更多信息 请参阅管理对受 IAP 保护的资源的访问

向工作流添加身份验证信息

默认情况下,HTTP 请求不包含安全身份或访问令牌 。您必须向工作流定义明确添加身份验证信息。向专用端点发出请求时,使用 OIDC 进行身份验证 购买 IAP

如需使用 OIDC 发出 HTTP 请求,请在指定网址后,将 auth 部分添加到工作流定义的 args 部分。

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"
            }
          }
        }
      }
    ]
      

您可以使用 audience 参数为令牌指定 OIDC 目标设备。调用启用了 IAP 的端点时,您必须指定为应用配置的 OAuth 2.0 客户端 ID。可以是 从“凭据”页面获取。

后续步骤