你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 上 SaaS 工作负荷的网络

你的网络为客户如何访问 SaaS 应用程序提供主干,并支持解决方案组件之间的通信。 设计网络的方式直接影响解决方案的安全性、操作、成本、性能和可靠性。 随着云环境的增长,网络策略的结构化方法变得更加重要。

确定网络部署策略和拓扑

SaaS 解决方案具有独特的网络要求。 随着载入更多客户及其使用量的增加,网络要求会发生变化。 由于资源有限(如 IP 地址范围),处理增长可能会很困难。 网络设计会影响安全性和客户隔离。 规划网络策略有助于管理增长、提高安全性并减少运营复杂性。

设计注意事项

  • 根据租户模型规划网络部署策略。 确定网络资源是共享给客户、专用于单个客户还是组合。 此选项会影响应用程序的功能、安全性和客户隔离。

    在多个客户之间共享网络资源(例如虚拟网络和 Azure Front Door 配置文件)很常见。 此方法可降低成本和运营开销。 它还简化了连接。 可以轻松地将客户的资源与共享资源(例如共享存储帐户或控制平面)连接。

    但是,可能需要为每个客户提供专用网络资源才能建立高度安全性和合规性。 例如,若要支持客户之间的高度网络分段,请使用虚拟网络作为边界。 当所有客户中的网络资源数超过单个共享网络的容量时,可能需要专用资源。

    考虑立即和将来的要求,规划每个客户需要的网络资源数量。 客户要求和 Azure 资源限制可能会强制实现特定结果。 不同的资源可能需要不同的部署策略,例如将单独的网络用于与客户拥有的 Azure 虚拟网络进行虚拟网络对等互连。

    有关在 SaaS 解决方案中共享资源的详细信息,请参阅 SaaS 工作负载的资源组织。

  • 了解网络拓扑。 网络拓扑通常分为三类:

    • 平面网络:具有子网的单一隔离网络,用于分段。 适用于具有简单网络布局的单个多租户应用程序。 平面网络可以达到资源限制,在缩放时需要更多网络,增加开销和成本。 如果计划托管多个应用程序或使用同一虚拟网络中的专用部署标记,则可能需要复杂的网络布局。

    • 中心辐射:一个集中式中心网络,与隔离的辐射网络对等互连。 适用于高可伸缩性和客户隔离性,因为每个客户或应用程序都有自己的辐射,仅与中心通信。 可以根据需要快速部署更多辐射,以便中心内的资源可供所有辐射使用。 默认情况下禁用通过中心的可传递或辐射型通信,这有助于在 SaaS 解决方案中保持客户隔离。

    • 无网络:用于 Azure PaaS 服务,可在其中托管复杂工作负荷,而无需部署虚拟网络。 例如,Azure App 服务允许通过 Azure 主干网络与其他 PaaS 服务直接集成。 尽管此方法简化了管理,但它限制了部署安全控制的灵活性以及优化性能的能力。 此方法适用于云本机应用程序。 随着解决方案的发展,预期会随着时间的推移过渡到中心辐射型拓扑。

      权衡:复杂性和安全性。 在没有定义的网络边界的情况下开始,可以减少管理网络安全组、IP 地址空间和防火墙等网络组件的运营负担。 但是,网络外围对于大多数工作负荷至关重要。 如果没有网络安全控制,请依靠强标识和访问管理来保护工作负荷免受恶意流量的侵害。

  • 了解多区域体系结构如何影响网络拓扑。 在使用虚拟网络的多区域体系结构中,大多数网络资源单独部署在每个区域中,因为防火墙、虚拟网络网关和网络安全组不能在区域之间共享。

设计建议

建议 好处
确定共享哪些网络组件以及哪些组件专用于客户。

共享按实例收费的资源,例如Azure 防火墙、Azure Bastion 和 Azure Front Door。
体验安全与隔离要求之间的平衡支持,同时降低成本和运营负担。
从平面拓扑或无网络方法开始。

请首先查看安全要求,因为这些方法提供有限的隔离和流量控制。
可以使用更简单的网络拓扑来降低解决方案的复杂性和成本。
考虑中心辐射型拓扑以满足复杂的需求,或者在为每个客户部署专用虚拟网络时。 使用中心跨客户网络托管共享网络资源。 可以通过中心网络共享资源来更轻松地缩放和提高成本效益。

设计安全的网络外围

网络外围在应用程序和其他网络(包括 Internet)之间建立安全边界。 通过记录网络外围,可以区分不同类型的流量流:

  • 从外部源到达网络的入口流量。
  • 内部流量,在网络内的组件之间。
  • 离开网络的出口流量。

每个流涉及不同的风险和控制。 例如,需要多个安全控制来检查和处理入口流量。

重要

作为一般最佳做法,始终遵循零信任方法。 确保控制并检查所有流量,包括内部流量。

客户可能还具有影响体系结构的特定合规性要求。 例如,如果需要 SOC 2 符合性 ,则必须实现各种网络控制,包括防火墙、Web 应用程序防火墙和网络安全组,以满足安全要求。 即使不需要立即遵守,在设计体系结构时也要考虑这些扩展性因素。

请参阅 SE:06 有关网络和连接的建议

设计注意事项

  • 保护和管理入口流量。 检查此流量是否有传入威胁。

    防火墙允许阻止恶意 IP 并完成高级分析,以防止入侵尝试。 但是,防火墙的成本可能很高。 评估安全要求,以确定是否需要防火墙。

    Web 应用程序容易受到常见攻击,例如 SQL 注入、跨站点脚本和其他 OWASP 前 10 个漏洞。 Azure Web 应用程序防火墙可防范这些攻击,并与 应用程序网关 和 Azure Front Door 集成。 查看这些服务的层,以了解哪些 WAF 功能属于哪些产品。

    DDoS 攻击是面向 Internet 的应用程序的风险。 Azure 提供基本级别的保护,不收费。 Azure DDoS 防护 通过了解流量模式并相应地调整保护,从而提供高级保护,尽管它们会付出代价。 如果使用 Front Door,请利用内置的 DDoS 功能

    除了安全性之外,还可以使用缓存和负载均衡来操作入口流量,以提高应用程序的性能。

    请考虑使用 Azure Front Door 等反向代理服务进行全局 HTTP(S) 流量管理。 或者,使用应用程序网关或其他 Azure 服务进行入站流量控制。 若要详细了解 Azure 中的负载均衡选项,请参阅 负载均衡选项

  • 保护内部流量。 确保应用程序与其组件之间的流量是安全的,以防止恶意访问。 使用内部流量而不是通过 Internet 路由来保护这些资源并提高性能。 Azure 专用链接通常用于通过网络内部 IP 地址连接到 Azure 资源。 对于某些资源类型,服务终结点可以是更具成本效益的替代方法。 如果为资源启用公共 Internet 连接,请了解如何使用 IP 地址和应用程序标识(例如托管标识)限制流量。

  • 保护出口流量。 在某些解决方案中,检查出站流量以防止数据外泄,尤其是针对法规合规性和企业客户。 使用防火墙管理和查看出口流量,阻止与未经授权的位置的连接。

  • 规划如何缩放出站连接和 SNAT。 源网络地址转换(SNAT)端口耗尽可能会影响多租户应用程序。 这些应用程序通常需要每个租户的不同网络连接,并且随着客户群的增长,在客户之间共享资源会增加 SNAT 耗尽的风险。 可以使用 Azure NAT 网关、防火墙(如 Azure 防火墙)或两种方法的组合来缓解 SNAT 耗尽。

设计建议

建议 好处
维护向 Internet 公开的网络终结点的目录。 捕获 IP 地址(如果静态)、主机名、端口、协议以及连接理由等详细信息。

记录计划如何保护每个终结点。
此列表构成了外围定义的基础,允许你对通过解决方案管理流量做出明确的决策。
了解 Azure 服务功能,以限制访问并增强保护。

例如,向客户公开存储帐户终结点需要其他控制,例如共享访问签名、存储帐户防火墙,以及使用单独的存储帐户进行内部和外部使用。
可以选择满足安全、成本和性能需求的控件。
对于基于 HTTP(S)的应用程序,请使用反向代理,例如 Azure Front Door 或 应用程序网关。 反向代理为性能改进、复原能力、安全性以及降低操作复杂性提供了广泛的功能。
使用 Web 应用程序防火墙检查入口流量。

避免将基于 Web 的资源(例如App 服务或Azure Kubernetes 服务(AKS)直接公开到 Internet。
可以更有效地保护 Web 应用程序免受常见威胁,并减少解决方案的整体暴露。
保护应用程序免受 DDoS 攻击。

根据公共终结点使用的协议,使用 Azure Front Door 或 Azure DDoS 防护。
保护解决方案免受常见类型的攻击。
如果应用程序需要大规模出口连接,请使用 NAT 网关或防火墙来提供其他 SNAT 端口。 可以支持更高级别的缩放。

跨网连接

在某些情况下,可能需要连接到 Azure 外部的资源,例如客户专用网络中的数据或多云设置中其他云提供商上的资产。 这些需求可能会使网络设计复杂化,需要各种方法来根据具体要求实现跨网络连接。

设计注意事项

  • 确定应用程序需要连接的终结点。 应用程序可能需要与其他服务(如存储服务和数据库)通信。 记录其所有者、位置和连接类型。 然后,可以选择连接到这些终结点的适当方法。 常见方法包括:

    资源位置 所有者 要考虑的连接选项
    Azure 客户
    • 专用终结点(跨 Microsoft Entra ID 租户)
    • 虚拟网络对等互连(跨 Microsoft Entra ID 租户)
    • 服务终结点(跨 Microsoft Entra ID 租户)
    其他云提供商 ISV 或客户
    • 站点到站点 VPN
    • ExpressRoute
    • Internet
    本地 ISV 或客户
    • 站点到站点 VPN
    • ExpressRoute
    • Internet
    • 专用链接和专用终结点。 提供与各种 Azure 资源(包括虚拟机的内部负载均衡器)的安全连接。 他们为客户启用对 SaaS 解决方案的专用访问,尽管它们附带了成本注意事项。

      权衡:安全性和成本。 专用链接可确保流量保留在专用网络中,建议跨 Microsoft Entra 租户建立网络连接。 但是,每个专用终结点会产生成本,这可以根据安全需求进行加法。 服务终结点可以是经济高效的替代方法,在提供某种级别的专用连接的同时,将流量保留在Microsoft主干网络上。

    • 服务终结点。 通过Microsoft主干网络将流量路由到 PaaS 资源,保护服务到服务通信。 它们对于高带宽应用程序来说可能具有成本效益,但需要配置和维护访问控制列表,确保安全性。 对跨 Microsoft Entra ID 租户的服务终结点的支持因 Azure 服务而异。 检查你使用的每个服务的产品文档。

    • 虚拟网络对等互连 连接两个虚拟网络,允许一个网络中的资源访问另一个虚拟网络中的 IP 地址。 它有助于连接到 Azure 虚拟网络中的专用资源。 可以使用网络安全组管理访问权限,但强制隔离可能很困难。 因此,请务必根据特定的客户需求规划网络拓扑。

    • 虚拟专用网络(VPN) 在两个网络(包括跨云提供商和本地位置)之间通过 Internet 创建安全隧道。 站点到站点 VPN 在每个网络中使用网络设备进行配置。 它们提供低成本连接选项,但需要设置,并且不能保证可预测的吞吐量。

    • ExpressRoute 提供 Azure 和其他云提供商或本地网络之间的专用、高性能、专用连接。 它可确保可预测的性能并避免 Internet 流量,但成本更高,需要更复杂的配置。

  • 根据目标进行计划。 可能需要连接到不同Microsoft Entra ID 租户中的资源,尤其是在目标资源位于客户的 Azure 订阅中时。 请考虑使用专用终结点、站点到站点 VPN 或对等互连虚拟网络。 有关详细信息,请参阅 不同Microsoft Entra ID 租户中的对等互连虚拟网络。

    若要连接到另一个云提供商中托管的资源,通常使用公共 Internet 连接、站点到站点 VPN 或 ExpressRoute。 有关详细信息,请参阅连接到其他云提供商

  • 了解连接对网络拓扑的影响。 Azure 虚拟网络只能有一个虚拟网络网关,可以通过站点到站点 VPN 或 ExpressRoute 连接到多个位置。 但是,通过网关的连接数存在限制,隔离客户流量可能会很困难。 对于到不同位置的多个连接,可以通过为每个客户部署单独的虚拟网络来相应地规划网络拓扑。

  • 了解 IP 地址规划的含义。 某些连接方法会自动提供网络地址转换(NAT),避免出现重叠 IP 地址的问题。 但是,虚拟网络对等互连和 ExpressRoute 不执行 NAT。 使用这些方法时,请仔细规划网络资源和 IP 地址分配,以避免 IP 地址范围重叠,并确保将来的增长。 IP 地址规划可能比较复杂,尤其是在连接到客户等第三方时,因此请考虑与 IP 范围的潜在冲突。

  • 了解网络出口计费。 Azure 通常会在离开Microsoft网络或在 Azure 区域之间移动时为出站网络流量计费。 设计多区域或多云解决方案时,了解成本影响非常重要。 体系结构选择(例如使用 Azure Front Door 或 ExpressRoute)可能会影响网络流量的计费方式。

设计建议

建议 好处
首选专用网络方法来跨网络进行连接,以确定安全性的优先级。

评估关联的安全性和性能影响后,才考虑通过 Internet 进行路由。
专用流量遍历安全网络路径,这有助于降低许多类型的安全风险。
连接到 Azure 环境中托管的客户资源时,请使用专用链接、服务终结点或虚拟网络对等互连。 可以将流量保留在Microsoft网络上,这有助于降低与其他方法相比的成本和运营复杂性。
跨云提供商或本地网络进行连接时,请使用站点到站点 VPN 或 ExpressRoute。 这些技术在提供程序之间提供安全连接。

部署到客户拥有的环境

业务模型可能需要在客户的 Azure 环境中托管应用程序或其组件。 客户管理自己的 Azure 订阅,并直接支付运行应用程序所需的资源成本。 作为解决方案提供商,你负责管理解决方案,例如初始部署、应用配置以及向应用程序部署更新。

在这种情况下,客户通常会自带网络,并将应用程序部署到他们定义的网络空间。 Azure 托管应用程序提供促进此过程的功能。 有关详细信息,请参阅 将现有虚拟网络与 Azure 托管应用程序配合使用。

设计注意事项

  • IP 地址范围和冲突。 当客户部署和管理虚拟网络时,他们负责处理网络冲突和缩放。 但是,应预测不同的客户使用方案。 使用 IP 地址高效规划环境中具有最小 IP 地址空间的部署,并避免对 IP 地址范围进行硬编码,以防止与客户范围重叠。

    或者,为解决方案部署专用虚拟网络。 可以使用专用链接或虚拟网络对等互连来让客户连接到资源。 这些方法在跨网络连接介绍。 如果已定义入口点和出口点,请评估 NAT 作为消除 IP 地址重叠导致的问题的方法。

  • 提供用于管理目的的网络访问。 查看部署到客户环境中的资源,并计划如何访问它们以监视、管理或重新配置它们。 将具有专用 IP 地址的资源部署到客户拥有的环境中时,请确保有一个网络路径可从自己的网络访问它们。 考虑如何促进应用程序和资源更改,例如推送新版本的应用程序或更新 Azure 资源配置。

    在某些解决方案中,可以使用 Azure 托管应用程序提供的功能,例如 实时访问部署对应用程序的更新。 如果需要更多控制,可以在客户的网络中托管一个终结点,控制平面可以连接到该终结点,从而提供对资源的访问。 此方法需要额外的 Azure 资源和开发来满足安全、操作和性能要求。 有关如何实现此方法的示例,请参阅 Azure 托管应用程序更新示例

设计建议

建议 好处
使用 Azure 托管应用程序部署和管理客户部署的资源。 Azure 托管应用程序提供一系列功能,使你能够在客户的 Azure 订阅中部署和管理资源。
最大程度地减少在客户的虚拟网络空间内消耗的 IP 地址数。 客户通常具有受限的 IP 地址可用性。 通过将占用空间降到最低,并将缩放与其 IP 地址使用情况分离,可以扩大使用解决方案的客户数量,并启用更高级别的增长。
规划如何获取网络访问权限,以管理客户环境中的资源,考虑监视、资源配置更改和应用程序更新。 可以直接配置所管理的资源。
决定是否要部署专用虚拟网络,还是与客户的现有虚拟网络集成。 通过提前规划,可以确保满足客户的隔离、安全性和与其他系统的集成要求。
默认情况下,在 Azure 资源上禁用公共访问。 尽可能首选专用入口。 你将减少你和客户需要保护的网络资源的范围。

其他资源

多租户是设计 SaaS 工作负载的核心业务方法。 以下文章提供了与网络设计相关的详细信息:

下一步

了解 Azure 上 SaaS 工作负载的数据平台注意事项,了解数据完整性和性能。