将计算资源分配给组
重要
此功能目前以公共预览版提供。
本文介绍如何使用 专用 访问模式创建分配给组的计算资源。
专用组访问模式允许用户获得标准访问模式群集的操作效率,同时安全地支持标准访问模式不支持的语言和工作负载,例如用于 ML 的 Databricks Runtime、Spark 机器学习库(MLlib)、RDD API 和 R。
启用专用组群集的公共预览版本后,您的工作区还能够访问新的简化计算 UI。 此新 UI 更新访问模式的名称并简化计算设置。 请参阅使用简单窗体管理计算。
要求
若要使用专用组访问模式,请执行以下操作:
- 工作区管理员必须使用预览 UI 启用“计算:专用组群集”预览。 请参阅管理 Azure Databricks 预览版。
- 必须为 Unity Catalog 启用该工作区。
- 必须使用 Databricks Runtime 15.4 或更高版本。
- 被指派的组必须对工作区文件夹具有
CAN MANAGE
权限,这个文件夹可以存放用于组群集的笔记本、ML 试验和其他工作区工件。
什么是专用访问模式?
专用访问模式是单用户访问模式的最新版本。 使用专用访问权限,可以将计算资源分配给单个用户或组,仅允许分配的用户(s)访问使用计算资源。
当用户连接到专用于组(组群集)的计算资源时,用户的权限会自动缩小到组的权限范围,使用户能够安全地与组的其他成员共享资源。
创建专用于组的计算资源
- 在 Azure Databricks 工作区中,转到“计算”,然后单击“创建计算”。
- 展开“高级”部分。
- 在 访问模式下,单击 手动,然后从下拉菜单中选择 专用(前者:单用户)。
- 在 单个用户或组 字段中,选择要分配给此资源的组。
- 配置其他所需的计算设置,然后单击 创建。
管理组群集的最佳做法
由于使用组群集时,用户权限的范围限定为组,Databricks 建议为计划用于组群集的每个组创建 /Workspace/Groups/<groupName>
文件夹。 然后,将文件夹的 CAN MANAGE
权限分配给组。 这允许组避免权限错误。 组的所有笔记本和工作区资产都应在组文件夹中进行管理。
还必须修改以下工作负荷,以在组群集上运行:
- MLflow:确保从组文件夹运行笔记本或运行
mlflow.set_tracking_uri("/Workspace/Groups/<groupName>")
。 - AutoML:将可选的
experiment_dir
参数设置为“/Workspace/Groups/<groupName>”
,以用于您的 AutoML 运行。 dbutils.notebook.run
:确保组对正在执行的笔记本具有READ
权限。
组权限示例
使用组群集创建数据对象时,该组将分配为对象的所有者。
例如,如果将笔记本附加到群集组,并运行以下命令:
use catalog main;
create schema group_cluster_group_schema;
然后运行此查询来检查架构的所有者:
describe schema group_cluster_group_schema;
的示例说明
审核组专用计算活动
群集运行负载时涉及两个关键标识:
- 在组群集上运行工作负荷的用户
- 使用其权限来执行实际工作负载操作的组
审核日志系统表将基于以下参数记录这些标识:
identity_metadata.run_by
:执行操作的身份验证用户identity_metadata.run_as
:使用其权限执行操作的授权组。
以下示例查询调出群集组执行的操作的身份元数据:
select action_name, event_time, user_identity.email, identity_metadata
from system.access.audit
where user_identity.email = "uc-group-cluster-group" AND service_name = "unityCatalog"
order by event_time desc limit 100;
查看审核日志系统表参考以获取更多示例查询。 请参阅审核日志系统表参考。
已知问题
- 从组群集中创建的工作区文件和文件夹会使指定的对象所有者为
Unknown
。 这会导致对这些对象的后续操作(如read
、write
和delete
)失败,并出现权限被拒绝错误。
限制
专用组访问模式公共预览版具有以下已知限制:
- 世系系统表不会记录在组群集上运行的工作负载的
identity_metadata.run_as
(授权组)或identity_metadata.run_by
(对用户进行身份验证)标识。 - 传递到客户存储的审核日志不会记录在组群集上运行的工作负荷的
identity_metadata.run_as
(授权组)或identity_metadata.run_by
(验证用户)标识。 必须使用system.access.audit
表来查看身份元数据。 - 附加到组群集时,目录资源管理器不会按仅可访问组的资产进行筛选。
- 不是组成员的组管理员无法创建、编辑或删除组群集。 只有工作区管理员和组成员才能执行此操作。
- 如果重命名了组,则必须手动更新引用组名称的任何计算策略。
- 由于在禁用工作区 ACL 时,缺少固有的安全性和数据访问控制,因此不支持为禁用 ACL 的工作区 (isWorkspaceAclsEnabled == false) 创建群集。
%run
命令当前在组群集上执行时使用用户的权限,而不是组的权限。 类似dbutils.notebook.run()
的替代方案能正确使用该组的权限。