您可以為端點啟用 Identity-Aware Proxy (IAP),從而從工作流程叫用私人內部端點、Compute Engine、Google Kubernetes Engine (GKE) 或其他 Google Cloud 端點。IAP 可用於強制執行存取權控管政策,並讓您為透過 HTTPS 存取的應用程式建立中央授權層,因此,您可以使用應用程式層級的存取權控管模型,而非依賴網路層級防火牆。詳情請參閱 IAP 總覽和下列說明:
或者,您也可以使用 Service Directory 的服務註冊表搭配工作流程,指定工作流程執行作業的 HTTP 呼叫私人端點。在虛擬私有雲 (VPC) 網路中建立私人端點,即可讓端點符合 VPC 服務控管規定。詳情請參閱「呼叫符合 VPC Service Controls 規範的私人端點」。
發出 HTTP 要求
透過 Workflow 呼叫或叫用私人端點,可透過 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。您可以前往「憑證」頁面取得這組金鑰。