重要
此功能目前以公共预览版提供。
此页面描述了如何在现有的 Azure Databricks 工作区中禁用对旧版 Databricks 文件系统(DBFS)根目录和挂载的访问。 若要在新建工作区的帐户级别禁用 DBFS 根和挂载,请使用 “禁用旧功能” 帐户设置。
将基于文件的工作流迁移到 Unity 目录卷、外部位置或工作区文件后,可以阻止用户上传、修改或访问 DBFS 根和 DBFS 装载中的数据。 禁用 DBFS 根目录和装载可以增强您的安全态势,因为这将移除对不受 Unity Catalog 控制的共享存储的访问。
什么是 DBFS 根目录和挂载点?
DBFS 是 Databricks 工作区中的分布式文件系统,可在 URI 方案 dbfs:
中访问,并用于与基于云的存储进行交互。
dbfs:
URI 方案用于访问工作区中的多个存储区域,包括:
-
DBFS 根:可以直接在文件系统的根目录下访问的区域,例如当您键入
dbfs:/
时。 所有工作区用户都可以访问直接在 DBFS 根下创建的内容,但以下保留前缀下的内容除外,每个内容都受特殊条件的约束。 请参阅什么是 DBFS 根? -
DBFS 装载:一种用于定义外部云存储访问的旧方法,可在其下
dbfs:/mnt/<mount_name>
访问。 请参阅 装载对象存储。 -
保留的 Azure Databricks 前缀: Unity 目录卷和其他 Azure Databricks 系统路径使用的前缀,例如
dbfs:/databricks-datasets/
MLflow 资产路径。 例如,dbfs:/Volumes/
。
所有路径也可以通过 POSIX 样式的路径访问。 请参阅是否需要提供用于访问数据的 URI 方案?
有关 DBFS(包括 DBFS 根和装载)的详细信息,请参阅 什么是 DBFS?
正在禁用哪些功能?
禁用 DBFS 根目录和挂载后:
禁用并阻止通过所有接口(UI、API、CLI、FUSE)访问现有工作区中的 DBFS 根目录和挂载点。
尝试从 DBFS 根目录读取或写入文件,装载失败并出现错误。 例如,禁用了 “公共 DBFS 根”错误消息。
不再可从 UI 访问 DBFS 浏览器和 “上传到 DBFS ”选项。 除非恢复设置,否则引用 DBFS 根目录和挂载的作业、笔记本或脚本将无法运行。
不再可从常见功能访问 DBFS 选项,例如:
- 集群库
- 群集日志传送
- MLflow 跟踪/模型注册表(非 UC)
- AutoML 实验
- DLT 管道
使用静态
/files
笔记本文件嵌入失败并出现 500 错误。 请参阅 在笔记本中嵌入静态图像。挂载/卸载操作被阻止。
文件存储操作被阻止。
在工作区中禁用 DBFS 根目录和装载会导致 Databricks Runtime 版本低于 13.3 LTS 的版本也被禁用。
哪些内容不受影响?
dbfs:
URI 方案仍然是 Azure Databricks 的核心,禁用 DBFS 根和 DBFS 装载不会禁用 dbfs:
URI 本身。 以下将继续按预期工作:
-
Unity Catalog 卷:卷通过
dbfs:/Volumes
前缀和 POSIX 样式/Volumes
路径保持可访问。 有关详细信息,请参阅是否需要提供用于访问数据的 URI 方案?什么是 Unity 目录卷? 请参阅“连接到 DBFS 根外部位置”(旧版)。 -
系统路径:只读数据仍可使用
dbfs:/databricks-datasets/
其他 Azure Databricks 系统路径(例如 MLflow 资源路径)访问。 - 内部工作区系统数据:这包括 Azure Databricks 自动生成的内容,例如笔记本修订、作业运行详细信息、命令结果和 Spark 日志。 请参阅工作区存储帐户。
注释
DBFS 根目录下已有的数据和挂载不会被删除。 如果在工作区级别设置中通过使用 禁用 DBFS 根和装载 来重新启用 DBFS 根和装载,则数据将再次变为可访问。
下面是一些路径示例,这些路径仍可访问且不受 DBFS 根目录和装载禁用的影响:
类别 | 路径 | DESCRIPTION |
---|---|---|
Unity 目录卷 | dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file_name> |
保留为 UC 卷,只能通过特定于 UC 的 API 访问,并受 UC 治理规则的约束。 有关详细信息,请参阅 哪些路径用于访问卷中的文件?。 |
系统路径 | dbfs:/databricks/mlflow-registry dbfs:/databricks/mlflow-tracking |
指向由 Azure Databricks 内部 API 在工作区系统数据中撰写内容的路径,这些路径为只读路径。 |
系统路径 | dbfs:/databricks-datasets/ |
默认在 Azure Databricks 工作区中装载的只读数据集集合体。 请参阅 DBFS 中已挂载的 Databricks 数据集浏览。 |
dbfs:
前缀(URI 方案)是可选的,在大多数情况下可以省略。 请参阅是否需要提供用于访问数据的 URI 方案?
何时可以禁用 DBFS 根目录和挂载点?
可以随时禁用 DBFS。 但是,如果现有工作流仍依赖于它,则它们可能会中断。 Databricks 建议仅在完成以下操作后禁用非关键环境中的 DBFS 根目录和挂载点:
- 已经将依赖于 DBFS 根目录或挂载的所有工作流迁移到 Unity Catalog 卷、外部位置或工作区文件。
- 已将所有作业和群集升级到 Databricks Runtime 13.3 LTS 或更高版本。
注释
在继续之前,可以使用 监测脚本 扫描剩余的 DBFS 根目录和装载使用情况。
禁用 DBFS 根目录及挂载点
注释
如果缺少禁用 DBFS 根目录和挂载设置,则帐户管理员必须在帐户控制台的预览中启用Unity Catalog: 禁用旧功能设置。
可以在现有工作区和新工作区中禁用 DBFS 根目录和装载。
作为工作区管理员,请按照以下步骤禁用 DBFS 根目录和装载点:
登录到 Azure Databricks 工作区。
单击右上角的用户配置文件图标,然后选择“设置”。
导航到工作区管理员并单击“ 安全性”。
将 禁用 DBFS 根和安装点 设置为 禁用:无法使用 DBFS 根和安装点。
等待最多 20 分钟才能使设置生效。
重启所有正在运行的群集。
- 传播时间延迟:该过程最多可能需要 20 分钟,以完全传播关于 DBFS 根目录和挂载点被禁用的信息。
- 群集重启:任何正在运行的全用途计算和 SQL 仓库都必须 手动 重启,这必须在 20 分钟的传播时间后完成,才能使更改生效。 如果未重启,此类群集将继续能够访问 DBFS 根目录和装载。
请参阅 Notebook 示例:查找长时间运行的计算 ,以获取用于识别和重启长时间运行的全用途计算的示例。