使用嚴格的 act-as 模式

嚴格的「以…身分執行」模式會對 Dataform 中的下列使用者動作進行額外安全檢查:

  • 建立或更新存放區
  • 建立或更新工作流程設定
  • 建立工作流程調用
  • 更新版本設定

這項額外的安全性檢查會要求執行這些動作的使用者,對有效服務帳戶 (即用來執行工作流程的服務帳戶) 具有 iam.serviceAccounts.actAs 權限。如要進一步瞭解服務帳戶,請參閱將服務帳戶附加至資源

你可以透過下列方式啟用這項模式:

  • 建立存放區
  • 使用 strict_act_as_checks 存放區旗標更新現有存放區

必要的角色

如要取得完成本文工作所需的權限,請要求管理員將自訂服務帳戶的「服務帳戶使用者」 (roles/iam.serviceAccountUser) IAM 角色授予您。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

判斷有效服務帳戶

您可以根據資源類型和下列條件,判斷執行工作流程的有效服務帳戶:

資源類型 有效服務帳戶
存放區

如果您在建立存放區時選取服務帳戶,系統就會使用 Repository.ServiceAccount 服務帳戶。

否則,系統會預設使用 Dataform 服務帳戶

工作流程設定

您可以在建立工作流程設定時選取服務帳戶。

否則,系統會預設使用存放區的 Dataform 服務帳戶

工作流程叫用

如果編譯結果為 WORKFLOW_CONFIG,系統會使用工作流程設定的有效服務帳戶。

如果您從編譯結果建立工作流程叫用,系統會使用 WorkflowInvocation.InvocationConfig 服務帳戶 (如有設定)。

否則,系統會預設使用存放區的 Dataform 服務帳戶

授予服務帳戶使用者 IAM 角色

「服務帳戶使用者」角色 (roles/iam.serviceAccountUser) 包含 iam.serviceAccounts.actAs 權限,這是嚴格的「以服務帳戶身分執行」模式的必要條件。使用 Dataform API 時,您必須根據所呼叫的 projects.locations.repositories 方法,為有效服務帳戶授予服務帳戶使用者角色:

  • createpatch
    • 如果設定了 Repository.ServiceAccount 屬性,您應該已獲得該屬性的服務帳戶使用者角色。
    • 如果您要呼叫 patch 方法,則應為存放區中所有工作流程設定的所有有效服務帳戶,授予服務帳戶使用者角色。
  • workflowConfigs.createworkflowConfigs.patch
    • 您應為工作流程設定中使用的有效服務帳戶授予服務帳戶使用者角色。
  • releaseConfigs.patch
    • 您應為工作流程設定中使用的所有有效服務帳戶,授予服務帳戶使用者角色,並使用這個發布設定。
  • workflowInvocations.create
    • 您應為工作流程叫用時使用的有效服務帳戶授予服務帳戶使用者角色。

詳情請參閱建立工作流程設定的必要角色建立發布設定的必要角色

存放區的自動發布功能

啟用 act-as 模式後,系統會停用 Dataform 存放區發布設定的自動發布功能。這不適用於連結至第三方存放區的存放區。

此外,如果啟用「以身分執行」模式,系統會檢查存放區是否已使用 Cron 排程設定自動發布。這不適用於連結至第三方存放區的存放區。

後續步驟

  • 如要進一步瞭解如何建立存放區,請參閱「建立存放區」。
  • 如要瞭解如何建立工作流程設定,請參閱「排定執行時間」。
  • 如要瞭解如何建立發布設定,請參閱「設定編譯」。