嚴格的「以…身分執行」模式會對 Dataform 中的下列使用者動作進行額外安全檢查:
- 建立或更新存放區
- 建立或更新工作流程設定
- 建立工作流程調用
- 更新版本設定
這項額外的安全性檢查會要求執行這些動作的使用者,對有效服務帳戶 (即用來執行工作流程的服務帳戶) 具有 iam.serviceAccounts.actAs
權限。如要進一步瞭解服務帳戶,請參閱將服務帳戶附加至資源。
你可以透過下列方式啟用這項模式:
- 建立存放區時
- 使用
strict_act_as_checks
存放區旗標更新現有存放區
必要的角色
如要取得完成本文工作所需的權限,請要求管理員將自訂服務帳戶的「服務帳戶使用者」 (roles/iam.serviceAccountUser
) IAM 角色授予您。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
判斷有效服務帳戶
您可以根據資源類型和下列條件,判斷執行工作流程的有效服務帳戶:
資源類型 | 有效服務帳戶 |
---|---|
存放區 | 如果您在建立存放區時選取服務帳戶,系統就會使用 否則,系統會預設使用 Dataform 服務帳戶。 |
工作流程設定 | 您可以在建立工作流程設定時選取服務帳戶。 否則,系統會預設使用存放區的 Dataform 服務帳戶。 |
工作流程叫用 | 如果編譯結果為 如果您從編譯結果建立工作流程叫用,系統會使用 否則,系統會預設使用存放區的 Dataform 服務帳戶。 |
授予服務帳戶使用者 IAM 角色
「服務帳戶使用者」角色 (roles/iam.serviceAccountUser
) 包含 iam.serviceAccounts.actAs
權限,這是嚴格的「以服務帳戶身分執行」模式的必要條件。使用 Dataform API 時,您必須根據所呼叫的 projects.locations.repositories
方法,為有效服務帳戶授予服務帳戶使用者角色:
create
或patch
- 如果設定了
Repository.ServiceAccount
屬性,您應該已獲得該屬性的服務帳戶使用者角色。 - 如果您要呼叫
patch
方法,則應為存放區中所有工作流程設定的所有有效服務帳戶,授予服務帳戶使用者角色。
- 如果設定了
workflowConfigs.create
或workflowConfigs.patch
- 您應為工作流程設定中使用的有效服務帳戶授予服務帳戶使用者角色。
releaseConfigs.patch
- 您應為工作流程設定中使用的所有有效服務帳戶,授予服務帳戶使用者角色,並使用這個發布設定。
workflowInvocations.create
- 您應為工作流程叫用時使用的有效服務帳戶授予服務帳戶使用者角色。
詳情請參閱建立工作流程設定的必要角色和建立發布設定的必要角色。
存放區的自動發布功能
啟用 act-as 模式後,系統會停用 Dataform 存放區發布設定的自動發布功能。這不適用於連結至第三方存放區的存放區。
此外,如果啟用「以身分執行」模式,系統會檢查存放區是否已使用 Cron 排程設定自動發布。這不適用於連結至第三方存放區的存放區。