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

您可以从 Workflows 调用专用本地端点、Compute Engine、Google Kubernetes Engine (GKE) 或其他 Google Cloud 端点,只需为该端点启用 Identity-Aware Proxy (IAP) 即可。IAP 用于强制执行访问权限控制政策,它可让您为通过 HTTPS 访问的应用建立中央授权层,以便您可以使用应用级访问权限控制模型,而不是依赖于网络级防火墙。如需了解详情,请参阅 IAP 概览和以下内容:

或者,您可以将 Service Directory 的服务注册表与 Workflows 搭配使用,以通过工作流执行将 HTTP 调用定位到专用端点。通过在 Virtual Private Cloud (VPC) 网络中创建专用端点,该端点可与 VPC Service Controls 兼容。如需了解详情,请参阅调用符合 VPC Service Controls 规范的专用端点

发出 HTTP 请求

通过 HTTP 请求从 Workflows 调用或调用专用端点完成。最常见的 HTTP 请求方法有调用快捷方式(例如 http.gethttp.post),但您可以通过将 call 字段设置为 http.request 并使用 method 字段指定请求类型,来发出任何类型的 HTTP 请求。如需了解详情,请参阅发出 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 请求,请在指定网址后,向工作流定义的 args 部分添加 auth 部分。

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。您可以在“凭据”页面中找到此 ID。

后续步骤