叫用受 IAP 保護的端點

您可以透過 Workflows 叫用已啟用 Identity-Aware Proxy (IAP) 的端點。端點可以是內部部署、Compute Engine、Google Kubernetes Engine (GKE) 或其他Google Cloud 端點。

IAP 會在應用程式層級驗證身分並強制執行授權,因此您可以使用應用程式層級的存取權控管模型,而非依賴網路層級的防火牆。當應用程式或資源受到 IAP 保護時,只有具備正確 Identity and Access Management (IAM) 角色的主體,才能透過 Proxy 存取。

詳情請參閱 IAP 總覽和下列指南:

發出 HTTP 要求

如要從工作流程呼叫或叫用端點,請發出 HTTP 要求。最常見的 HTTP 要求方法都有呼叫捷徑 (例如 http.gethttp.post),但您可以將 call 欄位設為 http.request,並使用 method 欄位指定要求類型,發出任何類型的 HTTP 要求。詳情請參閱「發出 HTTP 要求」。

使用具備必要權限的服務帳戶

向其他 Google Cloud 服務提出要求時,工作流程必須與已獲授一或多個身分與存取權管理 (IAM) 角色的服務帳戶建立關聯,這些角色包含存取所要求資源的必要權限。如要瞭解與現有工作流程相關聯的服務帳戶,請參閱「驗證工作流程相關聯的服務帳戶」。

設定服務帳戶時,請將要求身分與要授予存取權的資源建立關聯,將要求身分設為資源的主體或使用者,然後指派適當的角色。角色會定義身分在資源環境中擁有的權限。當應用程式或資源受到 IAP 保護時,只有具備正確角色的主體才能透過 Proxy 存取。

舉例來說,驗證之後,IAP 會套用相關的允許政策,檢查主體是否已獲授權,可以存取要求的資源。如果主體在資源所在位置的 Google Cloud 控制台專案中,擁有「IAP-secured Web App User」(受 IAP 保護的網路應用程式使用者) 角色 (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。您可以從「憑證」頁面取得這項資訊。

後續步驟