在此阶段,你将为Azure Databricks工作区设计网络基础结构,包括体系结构模式、连接选项和安全控制。
了解 Azure Databricks 网络配置
Azure Databricks中的网络体系结构控制三种不同的通信路径:
- 入站(前端)连接:用户通过 UI 和 API 访问管理控制台和工作区。
- 出站(无服务器)连接:从 Databricks 无服务器计算到客户资源的工作负荷连接。
- 经典(后端)连接:保护从经典计算平面到控制平面的连接。
如何强制实施网络安全直接取决于计算模型:
- 经典计算:工作负荷在客户管理的云网络中运行,因此网络状况主要通过客户管理的分段、路由、专用连接和出口控制来实现。
- 无服务器计算:工作负荷在Azure Databricks托管的计算平面中运行,因此管理员更依赖平台控制和帐户级配置来管理连接,尤其是出站访问,同时仍符合相同的风险模型和企业网络要求。
管理员应将这些网络控制视为工作区边界和工作区级防护措施的补充。 工作区控件定义用户操作和允许的执行模式,而网络控制限制可访问性和数据移动路径。 通过使用这两个保护层,组织可以减少安全爆炸半径,并避免过度依赖任何单一控制层。
设计虚拟专用网络配置
Azure Databricks提供了灵活的网络选项,以符合组织在经典和无服务器计算体系结构中的安全性和符合性状况。
客户管理虚拟网络用于经典工作区
Azure Databricks经典工作区部署在云环境中的虚拟网络(VNET)内。 为了获得最大控制,Azure Databricks建议为经典工作区使用客户管理的虚拟网络。 此模型提供对网络拓扑、子网范围和安全组的最大控制,这对于满足严格的安全性和符合性要求至关重要。
无服务器计算(Azure Databricks 托管的连接)
对于无服务器计算资源(如无服务器 SQL 仓库),Azure Databricks管理计算平面网络,提供操作简单性和减少管理开销。 但是,此模型仍提供对数据平面安全性和访问的可靠控制:
- 安全入口/出口:安全群集连接和Private Link等功能可确保工作区、计算和数据源之间的专用通信,而不考虑计算模型。
- 无服务器专用连接:网络连接配置(NCC)使你可以为Azure Databricks托管的无服务器计算定义出口规则,从而对计算平面流量的定向位置提供精细控制。
通过这种分层方法,可为 Lakehouse 体系结构中的各种工作负荷选择操作简单性和精细的网络控制的最佳平衡。
安全群集连接 (SCC)
安全群集连接(SCC)已成为默认建议,是工作区的默认部署模式。 SCC 将控制平面调用转换为计算平面调用:
每个群集在控制平面中启动与 SCC 中继的连接,从而建立安全通信隧道。 然后,控制平面通过此隧道将群集管理任务发送回群集。 因此,经典计算平面节点上不需要开放端口或公共 IP 地址。 从经典计算平面到控制平面的所有通信都是出站的。
SCC 体系结构优势
- 计算节点上不需要公共 IP 地址。
- 在计算安全组中不需要入站端口。
- 简化了网络安全态势。
- 减少计算资源的攻击面。
SCC 最佳做法
- 为所有新工作区启用 SCC(默认值)。
- 使用 SCC 作为基线安全态势策略。
- SCC 与Private Link和其他高级网络功能兼容。
设计 IP 访问控制策略
配置 IP 访问列表,以通过检查用户或 API 客户端是否来自已知的“良好”IP 地址范围(例如 VPN 或办公室网络)来限制可连接到Azure Databricks的 IP 地址。 如果用户切换到“错误的”IP 地址(例如从 VPN 断开连接时),则已建立的用户会话不起作用。
IP 访问列表级别
- 工作区级 IP 访问列表:应用于单个工作区。
- 帐户级 IP 访问列表:应用于帐户和帐户控制台访问中的所有工作区。
IP 访问列表模式
- 公司 VPN:仅允许从企业 VPN IP 范围进行访问。
- Office 网络:允许从特定办公室位置进行访问。
- 云提供商网络:允许从特定云区域或 VPN 进行访问。
- 混合方法:合并不同用户类型的多个 IP 范围。
IP 访问列表的最佳做法
- 从帐户级 IP 访问列表开始,以便实现一致的强制。
- 使用工作区级别列表满足特定于工作区的要求。
- 记录 IP 范围及其用途。
- 规划远程工作方案(VPN 要求)。
- 在完全强制实施之前测试 IP 访问列表。
设计数据外泄保护
可以通过保护网络、限制路由和添加网络防火墙来限制工作区的出站访问,从而设置工作区的数据外泄保护。
数据外泄保护模式
- 网络分段:在隔离的 VNET 中部署工作区。
- 出口筛选:使用网络防火墙控制出站流量。
- 专用连接:使用Private Link防止互联网暴露。
- 工作区功能:禁用可能会泄露数据的功能(例如笔记本导出、数据下载按钮)。
数据外泄保护的最佳做法
- 根据数据敏感度评估数据外泄保护。
- 对高度敏感的环境使用Private Link。
- 配置网络防火墙以仅允许所需的目标。
- 禁用可启用数据外泄的工作区功能。
有关详细的数据外泄设置指南,请参阅 网络。
设计Private Link的策略
Private Link允许从云提供商的虚拟网络和内部网络到云提供商服务的专用连接,从而避免暴露于公共互联网。
Private Link 体系结构
- Front-end Private Link:与工作区 UI 和 API 的专用连接。
- 后端Private Link:从计算到控制平面服务的专用连接。
Private Link仅在工作区级别受支持。 IP 访问列表可以继续保护帐户级服务。
Private Link 的最佳做法
- 对具有高度敏感数据的工作区使用Private Link。
- 启用前端和后端Private Link以实现最大隔离。
- 规划专用链接终结点的DNS配置。
- 在生产使用之前测试Private Link连接。
Azure网络体系结构
Azure Databricks需要两个专用子网:“容器”(也称为“专用”)和“主机”(也称为“公共”),每个部署都使用公共子网从节点传出流量。 如果需要其他目的,可以在给定 VNet 中具有其他子网,但需要每个Azure Databricks工作区有两个专用子网。
子网大小调整
地址空间的范围可以是虚拟网络的 /16 到 /24,子网的地址空间范围为 /17 到 /26。 每个节点(Azure Databricks 群集中的虚拟机)都使用 VNet 地址空间中的 2 个专用 IP。
对于每个子网,Azure保留 5 个 IP 地址供内部使用。 一些示例:
| VNet 大小(CIDR) | 最大子网大小(CIDR) | 最大 Microsoft Azure Databricks 群集节点 |
|---|---|---|
| /16 | /17 | 32,763 |
| /20 | /21 | 2043 |
| /24 | /25 | 123 |
安全群集连接
启用安全群集连接时,Azure Databricks工作区子网都是专用子网,因为群集节点没有公共 IP 地址。
服务终结点和专用终结点
若要连接到租户中的资源,可以创建服务终结点以从工作区 VNet 的主机子网访问Azure资源。 对于租户中的存储帐户,可以创建服务终结点策略来限制发到指定存储帐户的流量。
或者,可以创建私有终结点,以便连接到由世纪互联资源运营的 Azure,从而为 Azure Databricks 群集提供私密连接。
网络基础结构节点
对于网络基础结构节点(例如对于Private Link),需要单独的子网。 请考虑使用小于 VNet 大小的一半的子网(例如 CIDR - 2)。 这可用于托管 Azure Databricks 工作区所需的所有专用终结点(例如,存储、SQL 数据库或后端专用链接)。
控制平面连接
若要连接到控制平面中的资源(例如存储帐户、eventhub 和 hivemetastore):
- 将服务终结点添加到存储、SQL 和事件中心的区域,以确保流量通过在 Azure 主干。
- 为了提高安全性,将存储的服务终结点策略附加到工作区子网,以确保存储的流量仅发送到指定的资源。
- 对于事件中心,请使用Azure防火墙仅允许该区域所需的 FQDN。
小窍门
使用 Unity 目录进行数据设计和存储。 可以在工作区级别禁用 Hive 元数据存储。
NAT 网关和防火墙
对于需要 Internet 访问的部署,请在工作区的公共(主机)子网上配置Azure NAT Gateway,以确保Azure主干和公用网络传输的所有出站流量通过该子网传输。
如果数据外泄保护需要防火墙,请在中心 VNet 中的单独子网中安装它。 将 UDR 附加到 Azure Databricks 子网,以通过防火墙路由出口至互联网的流量(0.0.0.0/0)进行检查。
无服务器连接
对于无服务器计算,可以通过以下方式限制对资源的访问:
- 对于支持服务终结点的Azure资源,请列出资源上某个区域的无服务器子网。
- 若要建立专用连接,请从无服务器计算创建专用终结点到支持专用终结点的 Azure 资源。
- 对于无服务器计算,请配置网络策略以限制对外部服务的出站访问。
通过多个工作区共享网络资源
可以在多个工作区之间共享单个 VNet。 在这种情况下,为每个工作区创建单独的子网(主机和容器)。 其他资源(例如专用终结点和 NAT 网关)可以在该 VNet 中的所有工作区之间共享。
中心辐射型体系结构
还可以使用中心辐射型体系结构,其中所有共享资源(例如专用终结点、NAT 网关和防火墙)都部署在中心内。 每个工作区部署在单独的辐射形 VNet 中,并与中心 VNet 对等互连。 这允许集中管理共享资源。
按风险进行网络安全控制
具有不同风险级别的数据和工作负载的客户可以结合工作区和网络控制,在重用共享治理和平台服务时建立明确的操作边界。 工作区边界是分隔域和环境(如 Dev 与 Prod)以及应用工作区范围的控件的有效方法。 然后,网络控制提供一个独立的控制层,用于限制工作负载的运行位置及其可访问的目的地,包括访问内部服务和公共互联网。
分层工作区模型示例
风险较高的工作负荷放置在更严格的连接环境中。 与受限风险分类一致的工作区将部署到更严格的VP/VNet 配置中,并仅限于批准的出口目标,例如专用存储库和内部服务。 风险较低的工作负荷可以在限制较少的网络环境中运行,从而保持开发人员的速度和更广泛的包访问。
此模型允许管理员优化多个层的控制:
- 工作区级控件:定义工作区内的“谁可以做什么”(访问和执行防护措施)。
- 网络级控件:定义“工作负载可以连接的位置”(VLAN/VNet 限制和出口控制)。
设计目标不是“选择正确的层”,而是应用互补控件。 使用工作区创建干净的管理边界,并减少环境之间的爆炸半径。 使用网络分段和出口控制来强制实施连接约束,即使用户在工作区中具有广泛的功能,这些约束仍然有效。
对于无服务器工作区,同样的原则适用,但控制面从客户管理的网络构造转移到无服务器出口控制策略等平台控件。
网络体系结构建议
推荐
- 将工作区部署到客户管理的虚拟网络中,以实现最大控制。
- 子网必须至少为 /26,但在大多数情况下,需要至少 /23(请参阅上面的尺寸定义详细信息)。
- 使用 IP 访问列表限制对已知 IP 范围的访问。
- 在多个工作区之间使用中心辐射结构以共享网络资源。
- 通过跨多个可用性区域部署资源来规划高可用性。
根据要求进行评估
- 对于具有严格网络安全策略的客户:
- 评估其他数据外泄保护。
- 请考虑对高度敏感的工作负荷使用Private Link。
- 配置网络防火墙以控制出口流量。
阶段 4 结果
完成阶段 4 后,应具备:
- 专为工作区设计的网络体系结构(客户管理的 VNET)。
- 定义的安全群集连接(SCC)策略。
- 设计完成的 IP 访问控制策略。
- 已评估的数据泄露保护(针对敏感工作负载)。
- Private Link定义的策略(如果需要符合性)。
- 无服务器连接(NCC)专为无服务器工作负荷而设计。
- 设计了云特定的网络体系结构(AWS/Azure/GCP)。
- 评估了中心辐射型网络体系结构。
- 网络安全控制与风险级别保持一致。
- 根据预期的群集大小计算的子网大小。
下一阶段:阶段 5:设计存储体系结构
实施指南:有关实现网络设计的分步说明,请参阅 “网络”。