啟用 IAP 以叫用私人內部部署系統、Compute Engine、GKE 或其他端點

您可以為端點啟用 Identity-Aware Proxy (IAP),從 Workflows 叫用私有內部部署、Compute Engine、Google Kubernetes Engine (GKE) 或其他 Google Cloud 端點。IAP 用於強制執行存取控管政策,並可讓您為透過 HTTPS 存取的應用程式建立中央授權層,因此您可以使用應用程式層級的存取控管模型,而非依賴網路層級的防火牆。

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

或者,您也可以搭配使用 Service Directory 的服務登錄和 Workflows,從工作流程執行作業指定 HTTP 呼叫的私人端點。詳情請參閱「使用 Service Directory 的服務登錄檔叫用私人端點」。

發出 HTTP 要求

從 Workflows 呼叫或叫用私人端點時,會透過 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 頁面,將 Workflows 服務帳戶新增為主體,藉此設定受 IAP 保護資源的存取權。詳情請參閱「管理受 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。您可以從「憑證」頁面取得這項資訊。

後續步驟