您可以為端點啟用 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.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 頁面,將 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。您可以從「憑證」頁面取得這項資訊。