管理 Databricks 作业的标识、权限和特权
本文包含有关管理 Databricks 作业标识、权限和特权的建议和说明。
备注
不会从群集的 Spark 驱动程序日志 stdout
和 stderr
流中修订机密。 为了保护敏感数据,默认情况下,只有由对作业、单用户访问模式和共享访问模式群集具有“CAN MANAGE”权限的用户才能查看 Spark 驱动程序日志。 若要允许具有“CAN ATTACH TO”或“CAN RESTART”权限的用户查看这些群集上的日志,请在群集配置中设置以下 Spark 配置属性:spark.databricks.acl.needAdminPermissionToViewLogs false
。
在“无隔离共享”访问模式群集上,具有“CAN ATTACH TO”或“CAN MANAGE”权限的用户可以查看 Spark 驱动程序日志。 若要限制只有具有“CAN MANAGE”权限的用户才能读取日志,请将 spark.databricks.acl.needAdminPermissionToViewLogs
设置为 true
。
请参阅 Spark 配置来了解如何将 Spark 属性添加到群集配置。
作业默认设置了以下权限:
- 作业的创建者被授予“为所有者”权限。
- 工作区管理员被授予“可管理”权限。
- 作业的创建者设置“运行身份”。
默认情况下,工作区管理员可以将作业所有者或“运行身份”配置更改为工作区中的任何用户或服务主体。 帐户管理员可以配置 RestrictWorkspaceAdmins
设置以更改此行为。 请参阅限制工作区管理员。
作业在“运行方式”设置中作为用户的标识运行。 根据以下权限授予评估此标识:
- Unity Catalog 托管的资产,包括表、卷、模型和视图。
- 旧版 Hive 元存储中注册的资产的旧表访问控制列表 (ACL)。
- 计算、笔记本、查询和其他工作区资产的 ACL。
- Databricks 机密。 请参阅机密管理。
备注
Unity Catalog 授予和旧表 ACL 需要兼容的计算访问模式。 请参阅配置作业的计算。
文件任务是唯一完全遵循“运行身份” 标识的 SQL 任务类型。
SQL 查询、警报和旧仪表板任务遵循配置的共享设置。
- “以所有者身份运行”:计划的 SQL 任务的运行始终使用已配置的 SQL 资产所有者的标识。
- “以查看者身份运行”:计划的 SQL 任务的运行始终使用作业“运行身份”字段中设置的标识。
要了解有关查询共享设置的详细信息,请参阅配置查询权限。
以下应用场景演示了 SQL 共享设置和作业“运行身份”设置的交互:
- 用户 A 是名为
my_query
的 SQL 查询的所有者。 - 用户 A 使用共享设置“以所有者身份运行”配置
my_query
。 - 用户 B 将
my_query
计划为名为my_job
的作业中的任务。 - 用户 B 将
my_job
配置为使用名为prod_sp
的服务主体运行。 my_job
运行时,它将使用用户 A 的标识来运行my_query
。
现在假设用户 B 不需要此行为。 从现有配置开始,将发生以下情况:
- 用户 A 将
my_query
的共享设置更改为“以查看者身份运行”。 my_job
运行时,它使用标识prod_sp
。
若要更改“运行身份”设置,必须对作业具有“可管理”或“为所有者”权限。
可以将“运行身份”设置设为自己,也可以设置为自己具有“服务主体用户”权利的工作区中的任何服务主体。
若要在工作区 UI 中为作业配置“运行身份”设置,请使用以下步骤选择现有作业:
- 单击边栏中
“工作流”。
- 在“名称”列中单击作业名称。
- 在“作业详细信息”侧面板中,单击“运行身份”字段旁边的铅笔图标。
- 搜索并选择用户或服务主体。
- 单击“ 保存”。
有关使用服务主体的详细信息,请参阅以下内容:
Databricks 建议对所有生产作业执行以下操作:
将作业所有权分配给服务主体
如果拥有作业的用户离开组织,该作业可能会失败。 使用服务主体使作业不受员工流失的影响。
默认情况下,工作区管理员可以根据需要管理作业权限并重新分配所有权。
使用服务主体运行生产作业
默认情况下,作业使用作业所有者的特权运行。 如果将所有权分配给服务主体,作业运行将使用服务主体的权限。
将服务主体用于生产作业可以限制对生产数据的写入权限。 如果你使用用户的权限运行作业,则该用户需要相同的权限才能编辑作业所需的生产数据。
始终使用兼容 Unity Catalog 的计算配置
Unity Catalog 数据治理要求使用支持的计算配置。
对于具有经典计算的作业,Databricks 建议对支持的工作负载使用共享访问模式。 如果需要,请使用单用户访问模式。
配置有 Unity Catalog 的增量实时表管道具有一些限制。 请参阅限制。
限制对生产作业的权限
触发、停止或重启作业运行的用户需要“可以管理运行”权限。
查看作业配置或监视运行的用户需要“可以查看”权限。
仅向受信任的用户授予“可管理”或“为所有者”权限以修改生产代码。
作业所有者和管理员可以通过作业访问控制授予对作业的精细权限。 可以使用以下权限:
备注
每个权限都包含下表中其下面的权限授予。
权限 | 授予 |
---|---|
为所有者 | 默认情况下,用于“运行身份”的标识。 |
可管理 | 用户可以编辑作业定义,包括权限。 用户可以暂停和恢复计划。 |
可以管理运行 | 用户可以触发和取消作业运行。 |
可以查看 | 用户可以查看作业运行结果。 |
有关作业权限级别的信息,请参阅 作业 ACL。
若要在工作区 UI 中配置作业的权限,请使用以下步骤选择现有作业:
- 单击边栏中
“工作流”。
- 在“名称”列中单击作业名称。
- 在“作业详细信息”面板中,单击“编辑权限”。 此时将显示权限设置对话框。
- 单击“选择用户、组或服务主体...”字段,然后开始键入用户、组或服务主体。 该字段搜索工作区中的所有可用标识。
- 单击“添加” 。
- 单击“ 保存”。
只有工作区管理员可以编辑作业所有者。 必须只分配一个作业所有者。 作业所有者可以是用户或服务主体。