设计针对网络分段的解决方案
用于分段的 Azure 功能
在 Azure 上操作时,有许多分段选项。
- 订阅:一种高级构造,它在实体之间提供平台驱动的分离。 它旨在划分公司内大型组织之间的边界,并且需要显式预配不同订阅中的资源之间的通信。
- 虚拟网络 (VNet):在私人地址空间的订阅中创建。 它们提供网络级资源包含,默认情况下,任何两个虚拟网络之间都不允许存在任何流量。 需要显式预配虚拟网络之间的任何通信,这与订阅一样。
- 网络安全组 (NSG):一种访问控制机制,用于控制虚拟网络内的资源之间以及与外部网络(例如 Internet、其他虚拟网络)之间的流量。 NSG 可以通过为子网、VM 或一组 VM 创建外围,将分段策略细化到粒度级别。 有关在 Azure 中可能对子网进行的操作的信息,请参阅子网(Azure 虚拟网络)。
- 应用程序安全组 (ASG):与 NSG 类似,但使用应用程序上下文进行引用。 它允许你将一组 VM 组合到应用程序标记下,并定义流量规则,然后将这些规则应用于每个基础 VM。
- Azure 防火墙:作为服务的云原生状态防火墙,可以部署在 VNet 或 Azure 虚拟 WAN 中心部署中,用于筛选在云资源、互联网和本地之间流动的流量。 请创建规则或策略(使用 Azure 防火墙或 Azure 防火墙管理器),使用第 3 层或第 7 层控制来指定允许/拒绝流量。 还可以使用 Azure 防火墙和第三方来筛选流向 Internet 的流量,使用第三方的方法是引导部分或全部流量流经第三方安全提供程序,以进行高级筛选和用户保护。
分段模式
以下是从网络角度对 Azure 中的工作负载进行分段的一些常见模式。 每种模式都提供不同类型的隔离和连接。 根据组织的需要选择一种模式。
模式1:单个 VNet
工作负载的所有组件都位于单个 VNet 中。 此模式适合在单个区域内操作,因为 VNet 不能跨越多个区域。
保护分段(例如子网或应用程序组)的常见方法是使用 NSG 和 ASG。 也可以使用 Azure 市场或 Azure 防火墙中的网络虚拟化设备 (NVA) 来实施和保护此分段。
在此图中,Subnet1 具有数据库工作负载。 Subnet2 具有 Web 工作负载。 可以配置 NSG,使 Subnet1 只能与 Subnet2 通信,而 Subnet2 只能与 Internet 通信。
假设有这样一个用例,有多个工作负载放置在不同的子网中。 可以放置允许一个工作负载与另一个工作负载的后端通信的控件。
模式 2:通过对等互连进行通信的多个 VNet
资源在多个 VNet 中传播或复制。 VNet 可以通过对等互连进行通信。 当需要将应用程序分组到单独的 VNet 时,此模式适用。 或者,你需要多个 Azure 区域。 一个好处是内置分段,因为必须将一个 VNet 显式对等互连到另一个 VNet。 虚拟网络对等互连不可传递。 可以使用 NSG 和 ASG 在 VNet 中进一步分段,如模式 1 所示。
模式 3:中心辐射模型中的多个 VNet
VNet 被指定为给定区域中的中心,而所有其他 VNet 则作为该区域中的分支。 中心及其分支通过对等互连进行连接。 所有流量都通过中心,该中心可以充当通往其他区域中的其他中心的网关。 在此模式中,安全控制在中心设置,以便以可缩放的方式对这些控制进行分段,并治理其他 VNet 之间的流量。 这种模式的一个好处是,随着网络拓扑的增长,安全状况开销不会增加(除非扩展到新的区域)。
建议的本机选项是 Azure 防火墙。 此选项通过 VNet 和订阅使用第 3 层到第 7 层控制来控制流量流。 可以定义通信规则并以一致的方式进行应用。 下面是一些示例:
- VNet 1 无法与 VNet 2 通信,但可以与 VNet 3 通信。
- VNet 1 无法访问除 *.github.com 之外的公共 Internet。
借助 Azure 防火墙管理器预览版,可以跨多个 Azure 防火墙集中管理策略,使 DevOps 团队可以进一步自定义本地策略。
模式比较
注意事项 | 模式 1 | 模式 2 | 模式 3 |
---|---|---|---|
连接性/路由:每个段互相通信的方式 | 系统路由为任何子网中的任何工作负荷提供默认连接。 | 与模式 1 相同。 | 分支网络之间没有默认连接。 需要集中心中的第 3 层路由器(例如 Azure 防火墙)才能启用连接。 |
网络级别流量筛选 | 默认情况下允许流量。 使用 NSG、ASG 来筛选流量。 | 与模式 1 相同。 | 默认情况下,将拒绝分支虚拟网络之间的流量。 通过 Azure 防火墙配置打开选定路径以允许流量。 |
集中式日志记录 | 虚拟网络的 NSG、ASG 日志。 | 跨所有虚拟网络聚合 NSG、ASG 日志。 | Azure 防火墙记录通过中心发送的所有接受/拒绝的流量。 在 Azure Monitor 中查看日志。 |
意外的开放公共终结点 | DevOps 可能会通过不正确的 NSG、ASG 规则意外打开公共终结点。 | 与模式 1 相同。 | 在分支中意外打开的公共终结点将无法访问,因为返回的数据包将通过状态防火墙(非对称路由)丢弃。 |
应用程序级保护 | NSG 或 ASG 仅提供网络层支持。 | 与模式 1 相同。 | Azure 防火墙支持针对 HTTP/S 和 MSSQL 的 FQDN 筛选,适用于出站流量,跨虚拟网络。 |