将计算资源分配给组

重要

此功能目前以公共预览版提供。

本文介绍如何使用“专用”访问模式创建分配给组的计算资源。

通过专用组访问模式,用户可获得标准访问模式群集的运行效率,同时安全地支持标准访问模式不支持的语言和工作负载,例如用于 ML 的 Databricks Runtime、Spark 机器学习库 (MLlib)、RDD API 和 R。

通过启用专用组群集公共预览版,工作区还将有权访问新的简化计算 UI。 此新 UI 会更新访问模式的名称并简化计算设置。 请参阅使用简单窗体来管理计算

要求

要使用专用组访问模式:

  • 工作区管理员必须使用预览 UI 启用计算:专用组群集预览。 请参阅管理 Azure Databricks 预览版
  • 必须为 Unity Catalog 启用工作区。
  • 必须使用 Databricks Runtime 15.4 或更高版本。
  • 分配的组必须拥有工作区文件夹的 CAN MANAGE 权限,他们可以在该文件夹中保存组集群使用的笔记本、ML 试验和其他工作区项目。

什么是专用访问模式?

专用访问模式是最新版本单用户访问模式。 通过专用访问权限,可将计算资源分配给单个用户或组,仅允许分配的用户访问使用计算资源。

当用户连接到专用于组(组群集)的计算资源时,用户的权限会自动缩小到组的权限范围,让用户能够安全地与组内其他成员共享资源。

创建专用于组的计算资源

  1. 在 Azure Databricks 工作区中,转到“计算”并单击“创建计算”
  2. 展开“高级”部分。
  3. 在“访问模式”下,单击“手动”,然后从下拉菜单中选择“专用”(原名:单用户)。
  4. 在“单个用户或组”字段中,选择要分配给此资源的组。
  5. 配置其他所需计算设置,然后单击“创建”

管理组群集的最佳做法

在使用组群集时,用户权限的范围会缩小到组,因此 Databricks 建议为计划用于组群集的每个组创建一个 /Workspace/Groups/<groupName> 文件夹。 然后,将文件夹的 CAN MANAGE 权限分配给组。 这样可避免组出现权限错误。 组的所有笔记本和工作区资产均应在组文件夹中进行管理。

还必须修改以下工作负载,以在组群集上运行:

  • MLflow:确保从组文件夹运行笔记本,或运行 mlflow.set_tracking_uri("/Workspace/Groups/<groupName>")
  • AutoML:为 AutoML 运行将可选的 experiment_dir 参数设置为 "/Workspace/Groups/<groupName>"
  • dbutils.notebook.run:确保组对正在执行的笔记本拥有 READ 权限。

组权限示例

使用组群集创建数据对象时,该组将分配为对象所有者。

例如,如果笔记本已附加到组群集并运行以下命令:

use catalog main;
create schema group_cluster_group_schema;

然后运行此查询,以检查架构的所有者:

describe schema group_cluster_group_schema;

组架构的示例说明

审核组专用的计算活动

组群集运行工作负载时涉及两个关键标识:

  1. 在组群集上运行工作负载的用户
  2. 其权限用于执行实际工作负载操作的组

审核日志系统表在以下参数下记录这些标识:

  • 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;

查看审核日志系统表参考,以获取更多查询示例。 请参阅审核日志系统表引用

限制

专用组访问模式“公共预览版”具有以下已知限制:

  • 世系系统表不会记录在组群集上运行的工作负载的 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() 正确使用组的权限。