您可以透過 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.get 和 http.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。您可以從「憑證」頁面取得這項資訊。