使用嚴格的 act-as 模式

嚴格 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 權限,這是嚴格 act-as 模式的必要條件。使用 Dataform API 時,您必須根據所呼叫的 projects.locations.repositories 方法,為有效服務帳戶授予服務帳戶使用者角色:

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

詳情請參閱「建立工作流程設定時所需的角色」和「建立發布設定時所需的角色」。

存放區的自動發布

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

此外,如果您啟用「act-as」模式,系統會檢查存放區是否已使用 Cron 排程設定自動發布設定。但不適用於連結至第三方存放區的存放區。

後續步驟