为无服务器计算访问配置防火墙

本文介绍如何使用 Azure Databricks 帐户控制台 UI 为无服务器计算配置 Azure 存储防火墙。 也可以使用网络连接配置 API

若要为无服务器计算访问配置专用终结点,请参阅配置无服务器计算的专用连接

重要

从 2024 年 12 月 4 日起,Databricks 将开始收取连接到外部资源的无服务器工作负荷的网络成本。 计费将逐步实施,直到 2024 年 12 月 4 日之后才会向你收费。 在启用计费之前,不会对使用情况进行追溯收费。 启用计费后,可能会向你收取以下费用:

  • 通过 专用链接 与资源的专用连接。 通过专用链接与资源的专用连接,将无限期免除对资源的数据处理费用。 将收取每小时费用。
  • 通过 NAT 网关与资源的公共连接。
  • 数据传输费用(例如,当无服务器计算和目标资源位于不同的区域时)。

为无服务器计算启用防火墙概述

无服务器网络连接由网络连接配置 (NCC) 负责管理。 帐户管理员在帐户控制台中创建 NCC,支持将一个 NCC 附加到一个或多个工作区

NCC 包含一个用作默认规则的 Azure 资源类型的网络标识列表。 当 NCC 附加到工作区时,该工作区中的无服务器计算使用其中一个网络来连接 Azure 资源。 可以在 Azure 资源防火墙上将那些网络加入允许列表。 如果有非存储 Azure 资源防火墙,请联系帐户团队,了解如何使用 Azure Databricks 稳定的 NAT IP。

支持从无服务器 SQL 仓库、作业、笔记本、增量实时表管道和模型服务 CPU 终结点启用 NCC 防火墙。

可以选择性地配置仅从已授权的网络(包括无服务器计算)对工作区存储帐户进行网络访问。 请参阅为工作区存储帐户启用防火墙支持。 将 NCC 附加到工作区时,会自动将网络规则添加到用作工作区存储帐户的 Azure 存储帐户中。

有关 NCC 的详细信息,请参阅什么是网络连接配置 (NCC)?

跨区域存储访问的成本影响

只有当 Azure 资源与 Azure Databricks 工作区位于同一区域时,防火墙才适用。 对于来自 Azure Databricks 无服务器计算的跨区域流量(例如,工作区位于美国东部区域,ADLS 存储位于西欧),Azure Databricks 通过 Azure NAT 网关服务路由流量。

要求

  • 你的工作区必须采用高级计划

  • 你必须是 Azure Databricks 帐户管理员。

  • 每个 NCC 最多可附加至 50 个工作区。

  • 每个 Azure Databricks 帐户每个区域最多可以有 10 个 NCC。

  • 必须具有对 Azure 存储帐户网络规则的 WRITE 访问权限。

步骤 1:创建网络连接配置并复制子网 ID

Databricks 建议在同一业务部门的工作区以及共享相同区域连接属性的工作区之间共享 NCC。 例如,如果某些工作区使用存储防火墙,而其他工作区使用专用链接的替代方法,请对这些用例使用单独的 NCC。

  1. 作为帐户管理员,请转到帐户控制台。
  2. 在边栏中,单击云资源
  3. 单击“网络连接配置”
  4. 单击“添加网络连接配置”
  5. 键入 NCC 的名称。
  6. 选择区域。 这必须与工作区区域匹配。
  7. 单击“添加” 。
  8. 在 NCC 列表中,单击新的 NCC。
  9. 网络标识下的默认规则中,单击查看全部
  10. 在对话框中,单击“复制子网”按钮
  11. 单击“关闭” 。

步骤 2:将 NCC 附加到工作区

你可将 NCC 附加到 NCC 所在的同一区域中最多 50 个工作区。

如要使用 API 将 NCC 附加到工作区,请参阅帐户工作区 API

  1. 在帐户控制台边栏中,单击工作区
  2. 单击工作区名称。
  3. 单击“更新工作区”
  4. “网络连接配置” 字段中,选择 NCC。 如果该 NCC 不可见,请确认已为工作区和 NCC 选择了相同的区域。
  5. 单击“更新” 。
  6. 等待 10 分钟,让更改生效。
  7. 重启工作区中任何正在运行的无服务器计算资源。

如果使用此功能连接到工作区存储帐户,则配置已经完成。 网络规则会自动添加到工作区存储帐户。 对于其他存储帐户,请继续执行下一步。

步骤 3:锁定存储帐户

如果尚未将 Azure 存储帐户的访问权限限制为仅允许列出的网络,请立即执行此操作。 无需为工作区存储帐户执行此步骤。

创建存储防火墙还会影响从经典计算平面到资源的连接。 还必须添加网络规则,以便从经典计算资源连接到存储帐户。

  1. 转到 Azure 门户。
  2. 导航到数据源的存储帐户。
  3. 在左侧导航栏中,单击“网络”。
  4. 在“公用网络访问”字段中,检查该值。 默认情况下,该值从所有网络启用。 将此更改为从所选虚拟网络和 IP 地址启用。

步骤 4:添加 Azure 存储帐户网络规则

无需为工作区存储帐户执行此步骤。

  1. 为每个子网添加一个 Azure 存储帐户网络规则。 可以使用 Azure CLI、PowerShell、Terraform 或其他自动化工具执行此操作。 请注意,此步骤无法在 Azure 门户用户界面中完成。

    以下示例使用 Azure CLI:

    az storage account network-rule add --subscription "<sub>" \
        --resource-group "<res>" --account-name "<account>" --subnet "<subnet>"
    
    • 请将 <sub> 替换为存储帐户的 Azure 订阅名称。
    • <res> 替换为存储帐户的资源组。
    • <account> 替换为存储帐户的名称
    • <subnet> 替换为无服务器计算子网的 ARM 资源 ID (resourceId)。

    运行所有命令后,可以使用 Azure 门户查看你的存储帐户并确认“虚拟网络”表中是否有一个代表新子网的条目。 但是,无法在 Azure 门户中更改网络规则。

    提示

    • 添加存储帐户网络规则时,请使用网络连接 API 来检索最新的子网。
    • 避免在本地存储 NCC 信息。
    • 忽略终结点状态列中的“权限不足”或网络列表下面的警告。 这只是表示你无权读取 Azure Databricks 子网,但不会阻碍 Azure Databricks 无服务器子网联系 Azure 存储的能力。

    “虚拟网络”列表中的新条目示例

  2. 为每个子网重复此命令一次。

  3. 要确认你的存储帐户使用 Azure 门户中的这些设置,请导航到存储帐户中的网络

    确认已将公共网络访问设为已在选定的虚拟网络和 IP 地址中启用,同时虚拟网络部分列出了允许的网络。