严格的“充当”模式会对 Dataform 中的以下用户操作执行额外的安全检查:
- 创建或更新代码库
- 创建或更新工作流配置
- 创建工作流调用
- 更新版本配置
此额外的安全检查要求执行这些操作的用户对有效服务账号拥有 iam.serviceAccounts.actAs
权限,有效服务账号是指其凭据用于执行工作流的服务账号。如需详细了解服务账号,请参阅将服务账号附加到资源。
您可以通过以下方式启用此模式:
- 创建代码库时
- 使用
strict_act_as_checks
代码库标志更新现有代码库时
所需的角色
如需获得完成本文档中的任务所需的权限,请让您的管理员为您授予自定义服务账号的 Service Account User (roles/iam.serviceAccountUser
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
确定有效服务账号
您可以根据资源类型和以下条件确定执行工作流的有效服务账号:
资源类型 | 有效服务账号 |
---|---|
代码库 | 如果您在创建代码库时选择了服务账号,则系统会使用 否则,此值默认为 Dataform 服务账号。 |
工作流配置 | 您可以在创建工作流配置时选择服务账号。 否则,此值会默认为代码库的 Dataform 服务账号。 |
工作流调用 | 如果编译结果为 如果您根据编译结果创建工作流调用,则系统会使用 否则,此值会默认为代码库的 Dataform 服务账号。 |
授予 Service Account User IAM 角色
Service Account User 角色 (roles/iam.serviceAccountUser
) 包含 iam.serviceAccounts.actAs
权限,该权限是严格的“充当”模式所必需的。使用 Dataform API 时,您必须根据要调用的 projects.locations.repositories
方法,为有效服务账号授予 Service Account User 角色:
create
或patch
- 如果设置了
Repository.ServiceAccount
属性,则您应为该媒体资源授予 Service Account User 角色。 - 如果您要调用
patch
方法,则应为代码库中所有工作流配置中的所有有效服务账号授予 Service Account User 角色。
- 如果设置了
workflowConfigs.create
或workflowConfigs.patch
- 您应为工作流配置中使用的有效服务账号授予 Service Account User 角色。
releaseConfigs.patch
- 您应为使用此版本配置的工作流配置中使用的所有有效服务账号授予 Service Account User 角色。
workflowInvocations.create
- 您应为工作流调用中使用的有效服务账号授予“服务账号用户”角色。
如需了解详情,请参阅创建工作流配置所需的角色和创建发布配置所需的角色。
代码库的自动发布
启用 act-as 模式后,系统会停用 Dataform 仓库发布配置的自动发布功能。这不适用于连接到第三方代码库的代码库。
此外,如果您启用“充当”模式,系统会检查代码库是否使用 Cron 时间表设置了自动发布配置。这不适用于连接到第三方代码库的代码库。