为 Databricks 应用配置网络

Databricks Apps 支持精细的网络控制,帮助你保护和管理应用与 Internet 和内部资源通信的方式。 可以使用 IP 访问列表、前端专用连接和网络策略的组合来配置入口(传入)和出口(传出)流量规则。

网络体系结构

Azure Databricks 在无服务器计算平面上部署应用,在无服务器计算平面上直接接收流量。 这类似于其他路由优化服务,如模型服务和矢量搜索。

连接过程如下所示:

  1. 对 Azure Databricks 应用的初始用户请求使用控制平面启动 OAuth 身份验证,以验证会话并授权访问应用。
  2. 成功身份验证后,所有后续请求将直接路由到无服务器计算平面,而无需遍历控制平面。

为无服务器计算平面配置的网络安全策略适用于 Databricks Apps 流量。 这包括 IP 访问列表和前端专用连接配置。

入口控件

使用以下功能限制从公共 Internet 访问 Azure Databricks 工作区和应用。

  • IP 访问列表: 通过在工作区级别启用 IP 访问列表,限制工作区和应用对已知和受信任的 IP 范围的访问。 仅允许来自配置的 IP 范围的流量。 有关详细信息,请参阅 配置工作区的 IP 访问列表
  • 前端专用连接: 通过 Azure 专用链接连接路由入口流量,以通过 VNet 安全地访问应用。

    必须为 databricksapps.com 域配置条件 DNS 转发,以确保通过专用连接正确解析名称。 否则,应用程序域名的 DNS 查询可能会解析为公共 IP 地址,而不是私有终结点。 有关设置说明,请参阅 “配置前端专用链接”。

出口控制

若要控制来自应用的出站流量,请创建网络连接配置(NCC),并将网络策略应用到托管应用的工作区。

网络连接配置

使用 网络连接配置 安全地将应用连接到 Azure 服务。 NCC 提供稳定的子网 ID,可将其添加到存储账户的防火墙中,以明确允许应用和其他无服务器计算资源的访问。

若要进一步限制发往专用目标的出口流量,请为 Azure 资源配置无服务器专用终结点,或通过 VNet 中的 Azure 负载均衡器路由流量。

网络策略

使用 网络策略 对 Databricks 应用和其他无服务器工作负荷强制实施出口限制。 如果需要满足组织或合规性要求来控制出站连接,这非常有用。

注释

网络策略仅在高级层上可用。

如果你的应用需应用网络策略,请注意:

  • 必须限制对特定一组已批准的外部域的访问
  • 需要防止意外数据外泄
  • 必须遵守限制出站 Internet 流量的安全或符合性标准

配置网络策略的最佳做法

遵循以下准则以避免意外的中断,并确保应用可以访问所需的资源:

  • 仅允许必要的目标地址。 为应用所需的公共或专用资源添加完全限定的域名(FQDN)。
  • 根据需要包括包存储库。 如果应用安装了公共 Python 或 Node.js 包,可能需要允许如 pypi.org(Python)或 registry.npmjs.org(Node)的域名。 您的应用程序可能需要额外或不同的域,具体取决于您的特定依赖项。 如果没有这些存储库,依赖于 requirements.txtpackage.json 的应用构建可能会失败。
  • 使用干运行模式验证网络策略。 此模式模拟策略强制实施,而不会阻止流量。
  • 使用 system.access.outbound_network 表查看被拒绝的连接尝试。 这有助于识别可能需要允许的域。 请参阅 检查拒绝日志
  • 添加任何必需的外部域,例如未在 Unity 目录中注册的受信任 API 或 Azure 存储帐户。

加密和流量路由

Databricks Apps 使用专用路由路径和多个加密层来保护网络通信和保护数据。

流量路由

Azure Databricks 控制层、计算层、其他 Azure Databricks 资源与云服务之间的数据流量通过云提供商的全球网络传输,不会经过公共互联网。

用户与databricksapps.com之间的流量可能会根据用户的网络位置遍历公共互联网。 若要避免公共 Internet 路由,请配置前端专用连接。

传输中的加密

与应用之间的所有网络通信均已加密:

  • 用户流量: 用户与databricksapps.com之间的通信使用传输层安全(TLS)1.3加密。
  • 控制平面流量: Azure Databricks 控制平面与计算平面之间的通信使用双向 TLS(mTLS)进行管理活动,包括应用创建、更新和删除等。

静态加密

Databricks Apps 使用以下方法加密存储的数据:

  • 应用程序代码: Azure Databricks 将应用代码存储在工作区文件中,并使用与笔记本和其他工作区文件相同的加密。
  • 计算存储: 应用使用通过 AES-256 加密的临时主机操作系统磁盘以及云提供商的默认加密实现。