每个 Azure Databricks 工作区都有一个与之关联的 Azure 存储帐户,该帐户位于一个托管资源组中,被称为 工作区存储帐户。 此帐户包含工作区系统数据(作业输出、系统设置和日志)、Databricks 文件系统根目录,在某些情况下包含 Unity 目录工作区目录。 只能使用 Azure CLI 或 PowerShell 将工作区存储帐户的访问权限限制为授权资源和网络。
工作区存储帐户的防火墙支持是什么?
默认情况下,工作区存储帐户接受来自所有网络的经过身份验证的连接。 启用防火墙支持时,Azure Databricks会阻止公共网络访问,并仅限制对授权资源的访问。 如果组织具有Azure策略要求存储帐户是专用的,则可能需要对此进行配置。
启用防火墙支持后,Azure Databricks 之外的服务若需访问工作区存储帐户,必须使用具有专用链接的专用终结点。 Azure Databricks无服务器计算必须使用服务终结点或专用终结点来访问工作区存储帐户。
Azure Databricks 使用 Azure 托管标识创建一个 访问连接器,以访问工作区存储帐户。
要求
您的工作区必须启用 VNet 注入,以便从经典计算平面进行连接。
工作区必须为来自经典计算平面的连接启用安全群集连接(无公共 IP/NPIP)。
你的工作区必须采用高级计划。
必须为存储帐户的专用终结点设置独立的子网。 除了这两个用于基本 Azure Databricks 功能的主要子网外,还有其他子网。
该子网必须与工作区位于同一 VNet 中,或者位于工作区可访问的独立 VNet 中。 以 CIDR 表示法使用最小大小
/28。如果将 Cloud Fetch 与 Microsoft Fabric Power BI 服务 配合使用,则必须始终使用网关进行工作区存储帐户的专用访问或禁用 Cloud Fetch。 请参阅 步骤 2(建议):为 Cloud Fetch 客户端 VNet 配置专用终结点。
对于Azure CLI或 PowerShell 部署方法,必须在启用默认工作区存储防火墙之前创建Azure Databricks访问连接器并保存其资源 ID。 这需要使用系统分配的托管标识或用户分配的托管标识。 请参阅 Databricks 的Access 连接器。 不能在托管资源组中使用Azure Databricks访问连接器。
将 Azure Databricks 外部的服务连接到存储帐户
步骤 1:创建存储帐户的专用终结点
为您的工作区存储帐户从用于 VNet 注入的 VNet 创建两个专用终结点,目标子资源值分别为:
注意
如果在托管资源组上收到拒绝分配的错误,则工作区可能早于当前托管资源组权限模型。 在继续操作之前,请联系Azure Databricks帐户团队更新托管资源组配置。
如果收到有关运行计算资源的警告,请在执行步骤 1 到 4 之前停止工作区中的所有计算。
转到你的工作区。
在“基本信息”下,单击“托管资源组”的名称。
在 “资源”下,记下工作区存储帐户的名称。 名称通常以
dbstorage. 开头。在门户顶部的搜索框中,输入并选择 “专用终结点”。
单击 + 创建。
在“资源组名称栏”中输入您的资源组。
重要
该资源组不能与工作区存储帐户所在的托管资源组相同。
在 “名称” 字段中,输入此专用终结点的唯一名称:
- 对于为每个源网络创建的第一个专用终结点,请创建一个 DFS 终结点。 Azure Databricks建议添加后缀
-dfs-pe。 - 对于为每个源网络创建的第二个专用终结点,请创建一个 Blob 终结点。 Azure Databricks建议添加后缀
-blob-pe。
“网络接口名称”字段会自动填充。
- 对于为每个源网络创建的第一个专用终结点,请创建一个 DFS 终结点。 Azure Databricks建议添加后缀
将区域字段设置为你的工作区所在地区。
单击“ 下一步:资源”。
在 连接方法 中,选择 连接到我目录中的 Azure 资源。
在 “订阅”中,选择包含工作区的订阅。
在 资源类型 中,选择 Microsoft.Storage/storageAccounts。
在 “资源”中,选择工作区存储帐户。
在 “目标”子资源中,选择目标资源类型。
- 对于为每个源网络创建的第一个专用终结点,请将其设置为 dfs。
- 对于为每个源网络创建的第二个专用终结点,请将其设置为 blob。
单击 Next: 虚拟网络。
在“虚拟网络”字段中选择一个 VNet。
在子网字段中,将子网设置为一个与存储帐户的专用终结点相分离的独立子网。
此字段可能会使用专用终结点的子网自动填充,但可能需要显式设置它。 不要将两个工作区子网用于Azure Databricks工作区的基本功能,这两个子网通常称为
private-subnet和public-subnet。根据需要更改 专用 IP 配置 和 应用程序安全组 默认值。
单击“ 下一步:DNS”。 “DNS”选项卡中会自动填充你先前选择的正确订阅和资源组。 请根据需要更改这些设置。
注意
如果在目标子资源类型(dfs 或 blob)没有将专用 DNS 区域附加到工作区虚拟网络 (VNet),Azure 将创建新的专用 DNS 区域。 如果工作区 VNet 上已存在该子资源类型的专用 DNS 区域,Azure会自动选择它。 VNet 每个子资源类型只能有一个专用 DNS 区域。
单击“ 下一步:标记 ”并根据需要添加标记。
单击下一步:检查 + 创建,并检查各字段。
单击 “创建” 。
步骤 2(建议):为 Cloud Fetch 客户端 VNet 配置专用终结点
Cloud Fetch 是 ODBC 和 JDBC 中的一种机制,它通过云存储并行提取数据,以更快地将数据传送到 BI 工具。 如果从 BI 工具提取大于 100 MB 的查询结果,则可能使用 Cloud Fetch。
注意
如果将Microsoft Fabric Power BI 服务用于Azure Databricks并在工作区存储帐户上启用防火墙支持,则必须配置虚拟网络数据网关或本地数据网关,以允许对存储帐户进行专用访问。 这可确保Fabric Power BI 服务可以继续访问工作区存储帐户,并且 Cloud Fetch 继续正常运行。
此要求不适用于 Power BI Desktop。
如果使用 Cloud Fetch,请在 Cloud Fetch 客户端的 VNet 中为工作区存储帐户创建专用终结点。
对于 Cloud Fetch 客户端的每个源网络,请创建以下两个专用终结点,它们使用两个不同的“目标子资源”值:dfs 和 blob。 有关详细步骤 ,请参阅步骤 1:为存储帐户创建专用终结点 。 在这些步骤中,创建专用终结点时,对于“虚拟网络”字段,请确保为每个 Cloud Fetch 客户端指定您的源虚拟网络
步骤 3:确认终结点的批准状态
创建存储帐户的所有专用终结点后,请验证它们是否已获得批准。 它们可能会自动批准,或者可能需要在存储帐户上批准它们。
- 在 Azure 门户中转到工作区。
- 在“基本信息”下,单击“托管资源组”的名称。
- 在“资源”下,单击名称以 开头的“存储帐户”类型的资源
dbstorage。 - 在边栏中,单击“网络”。
- 单击专用终结点连接。
- 检查连接状态以确认其显示为已批准,或者选择相应选项并单击批准。
来自无服务器计算的连接
注意
Azure Databricks正在将所有已启用防火墙的现有工作区存储帐户整合到允许AzureDatabricksServerless服务标记的网络安全边界中。 预计到 2026 年底,此载入将完成。
启用防火墙支持时,Azure Databricks会自动纳入工作区存储帐户到一个允许 AzureDatabricksServerless 服务标签的网络安全边界。 这允许Azure Databricks无服务器计算通过服务终结点进行连接。 若要改为通过专用终结点进行连接,请联系Azure Databricks帐户团队。
如果要管理自己的网络安全边界,可以解除Azure Databricks预配的网络安全边界并附加自己的边界。 切换会导致服务短暂暂停。 提前准备更换网络安全外围,并规划维护时段。
使用 Azure CLI 启用存储防火墙支持
若要使用具有系统分配标识的访问连接器启用防火墙支持,请在Cloud Shell运行:
az databricks workspace update \ --resource-group "<resource-group-name>" \ --name "<workspace-name>" \ --subscription "<subscription-id>" \ --default-storage-firewall "Enabled" \ --access-connector "{\"id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>\", \"identity-type\":\"SystemAssigned\"}"若要使用具有用户分配标识的访问连接器启用防火墙支持,请在Cloud Shell运行:
az databricks workspace update \ --resource-group "<resource-group-name>" \ --name "<workspace-name>" \ --subscription "<subscription-id>" \ --default-storage-firewall "Enabled" \ --access-connector "{\"id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>\", \"identity-type\":\"UserAssigned\", \"user-assigned-identity-id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>\"}"若要使用访问连接器禁用防火墙支持,请在Cloud Shell运行:
az databricks workspace update \ --name "<workspace-name>" \ --subscription "<subscription-id>" \ --resource-group "<resource-group-name>" \ --default-storage-firewall "Disabled"
使用 PowerShell 启用存储防火墙支持
若要使用具有系统分配标识的访问连接器启用防火墙支持,请在Cloud Shell运行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -Sku "Premium" ` -AccessConnectorId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>" ` -AccessConnectorIdentityType "SystemAssigned" ` -DefaultStorageFirewall "Enabled"若要使用具有用户分配标识的访问连接器启用防火墙支持,请在Cloud Shell运行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -Sku "Premium" ` -AccessConnectorId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>" ` -AccessConnectorIdentityType "UserAssigned" ` -AccessConnectorUserAssignedIdentityId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>" ` -DefaultStorageFirewall "Enabled"若要使用访问连接器禁用防火墙支持,请在Cloud Shell运行:
Update-AzDatabricksWorkspace ` -Name "<workspace-name>" ` -ResourceGroupName "<resource-group-name>" ` -SubscriptionId "<subscription-ID>" ` -DefaultStorageFirewall "Disabled"