通过


为工作区存储帐户启用防火墙支持

每个 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 service 配合使用,则必须始终使用 VNet 网关或本地网关进行工作区存储帐户的专用访问。 请参阅 步骤 2(建议):为 Cloud Fetch 客户端 VNet 配置专用终结点

  • 对于Azure CLI或 PowerShell 部署方法,必须在启用默认工作区存储防火墙之前创建Azure Databricks访问连接器并保存其资源 ID。 这需要使用系统分配的托管标识或用户分配的托管标识。 请参阅 Databricks 的Access 连接器。 不能在托管资源组中使用Azure Databricks访问连接器。

将 Azure Databricks 之外的服务连接到存储帐户

步骤 1:创建存储帐户的专用终结点

为您的工作区存储帐户从用于 VNet 注入的 VNet 创建两个专用终结点,目标子资源值分别为:

注意

如果在托管资源组上收到拒绝分配的错误,则工作区可能早于当前托管资源组权限模型。 在继续操作之前,请联系Azure Databricks帐户团队更新托管资源组配置。

如果收到有关运行计算资源的警告,请在执行步骤 1 到 4 之前停止工作区中的所有计算。

  1. 转到你的工作区。

  2. 在“基本信息”下,单击“托管资源组”的名称

  3. “资源”下,记下工作区存储帐户的名称。 名称通常以 dbstorage. 开头。

  4. 在门户顶部的搜索框中,输入并选择 “专用终结点”。

  5. 单击 + 创建

  6. 在“资源组名称栏”中输入您的资源组

    重要

    该资源组不能与工作区存储帐户所在的托管资源组相同。

  7. “名称” 字段中,输入此专用终结点的唯一名称:

    • 对于为每个源网络创建的第一个专用终结点,请创建一个 DFS 终结点。 Azure Databricks建议添加后缀 -dfs-pe
    • 对于为每个源网络创建的第二个专用终结点,请创建一个 Blob 终结点。 Azure Databricks建议添加后缀 -blob-pe

    “网络接口名称”字段会自动填充。

  8. 区域字段设置为你的工作区所在地区。

  9. 单击“ 下一步:资源”。

  10. 连接方法 中,选择 连接到我目录中的 Azure 资源。

  11. “订阅”中,选择包含工作区的订阅。

  12. Resource 类型中,选择Microsoft.Storage/storageAccounts

  13. “资源”中,选择工作区存储帐户。

  14. “目标”子资源中,选择目标资源类型。

    • 对于为每个源网络创建的第一个专用终结点,请将其设置为 dfs
    • 对于为每个源网络创建的第二个专用终结点,请将其设置为 blob
  15. 单击 Next: Virtual Network

  16. 在“虚拟网络”字段中选择一个 VNet

  17. 在子网字段中,将子网设置为一个与存储帐户的专用终结点相分离的独立子网。

    此字段可能会使用专用终结点的子网自动填充,但可能需要显式设置它。 不要将工作区的两个子网用于基本 Azure Databricks 工作区功能,这些子网通常称为 private-subnetpublic-subnet

  18. 根据需要更改 专用 IP 配置应用程序安全组 默认值。

  19. 单击“ 下一步:DNS”。 “DNS”选项卡中会自动填充你先前选择的正确订阅和资源组。 请根据需要更改这些设置。

    注意

    如果目标子资源类型 (dfs 或 blob) 没有其专用 DNS 区域附加到工作区 VNet,Azure 会创建一个新的专用 DNS 区域。 如果工作区 VNet 上已存在该子资源类型的专用 DNS 区域,Azure会自动选择它。 VNet 每个子资源类型只能有一个专用 DNS 区域。

  20. 单击“ 下一步:标记 ”并根据需要添加标记。

  21. 单击下一步:检查 + 创建,并检查各字段。

  22. 单击 “创建”

步骤 2(建议):为 Cloud Fetch 客户端 VNet 配置专用终结点

Cloud Fetch 是 ODBC 和 JDBC 中的一种机制,它通过云存储并行提取数据,以更快地将数据传送到 BI 工具。 如果从 BI 工具提取大于 100 MB 的查询结果,则可能使用 Cloud Fetch。

注意

如果将Microsoft Fabric Power BI service用于Azure Databricks并在工作区存储帐户上启用防火墙支持,则必须配置虚拟网络数据网关或本地数据网关,以允许对存储帐户进行专用访问。 这可确保Fabric Power BI service可以继续访问工作区存储帐户,并且 Cloud Fetch 继续正常运行。

此要求不适用于 Power BI Desktop。

如果使用 Cloud Fetch,请在 Cloud Fetch 客户端的 VNet 中为工作区存储帐户创建专用终结点。

对于 Cloud Fetch 客户端的每个源网络,请创建以下两个专用终结点,它们使用两个不同的“目标子资源”值:dfsblob。 有关详细步骤 ,请参阅步骤 1:为存储帐户创建专用终结点 。 在这些步骤中,创建专用终结点时,对于“虚拟网络”字段,请确保为每个 Cloud Fetch 客户端指定您的源虚拟网络

步骤 3:确认终结点的批准状态

创建存储帐户的所有专用终结点后,请验证它们是否已获得批准。 它们可能会自动批准,或者可能需要在存储帐户上批准它们。

  1. 请进入Azure门户的工作区。
  2. 在“基本信息”下,单击“托管资源组”的名称
  3. 在“资源”下,单击名称以 开头的“存储帐户”类型的资源dbstorage
  4. 在边栏中,单击“网络”
  5. 单击专用终结点连接
  6. 检查连接状态以确认其显示为已批准,或者选择相应选项并单击批准

来自无服务器计算的连接

注意

Azure Databricks 将所有已启用防火墙的现有工作区存储帐户加入到允许 AzureDatabricksServerless 服务标记的网络安全边界。 预计到 2026 年底,此载入将完成。

启用防火墙支持时,Azure Databricks 会自动将工作区存储帐户纳入一个允许 AzureDatabricksServerless 服务标记的网络安全边界。 这允许 Azure Databricks 的无服务器计算通过服务终结点连接。 若要通过专用终结点进行连接,请将专用终结点规则添加到工作区存储帐户的 NCC。 请参阅 配置Azure资源的专用连接

如果要管理自己的网络安全外围,可以分离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"