使用虚拟网络保护 Azure API 管理的入站或出站流量

默认情况下,API 管理实例是通过公共终结点从 Internet 访问的,充当公共后端的网关。 API 管理提供了多个选项,以使用 Azure 虚拟网络保护对 API 管理实例和后端 API 的访问。 可用选项取决于 API 管理实例的服务层级。 选择网络功能以满足组织的需求。

下表对虚拟网络选项做了比较。 有关详细信息,请参阅本文的后面部分和指向详细指南的链接。

网络模型 支持的层 支持的组件 支持的流量 使用方案
虚拟网络注入 - 外部 开发人员、高级 开发人员门户、网关、管理平面和 Git 存储库 可以允许 Internet、对等虚拟网络、Express Route 和 S2S VPN 连接的入站和出站流量。 对专用后端和本地后端的外部访问
虚拟网络注入 - 内部 开发人员、高级 开发人员门户、网关、管理平面和 Git 存储库 可以允许对等虚拟网络、Express Route 和 S2S VPN 连接的入站和出站流量。 对专用后端和本地后端的内部访问
入站专用终结点 开发人员、基本、标准、高级 仅网关(托管网关受支持,自承载网关不受支持) 仅允许来自 Internet、对等虚拟网络、Express Route 和 S2S VPN 连接的入站流量。 保护到 API 管理网关的客户端连接

虚拟网络注入(经典层)

在 API 管理经典开发人员层和高级层中,将 API 管理实例部署(“注入”)到可控制访问权限的非 Internet 可路由网络的子网中。 在虚拟网络中,API 管理实例可以安全地访问其他联网的 Azure 资源,还可以使用各种 VPN 技术连接到本地网络。

你可以使用 Azure 门户、Azure CLI、Azure 资源管理器模板或其他工具进行配置。 可以使用网络安全组控制其中部署了 API 管理的子网的入站和出站流量。

有关部署步骤和网络配置的详细信息,请参阅:

访问选项

使用虚拟网络,你可以将开发人员门户、API 网关和其他 API 管理终结点配置为可从 Internet(外部模式)或仅在虚拟网络中(内部模式)访问。

  • 外部 - 可以通过外部负载均衡器从公共 Internet 访问 API 管理终结点。 网关可以访问虚拟网络中的资源。

    与外部虚拟网络建立的连接的示意图。

    在外部模式下使用 API 管理访问部署在虚拟网络中的后端服务。

  • 内部 - 只能通过内部负载均衡器从虚拟网络内部访问 API 管理终结点。 网关可以访问虚拟网络中的资源。

    与内部虚拟网络建立的连接的示意图。

    在内部模式中使用 API 管理可以:

    • 通过使用 Azure VPN 连接或 Azure ExpressRoute,使专用数据中心内托管的 API 可被第三方安全访问。
    • 通过公共网关公开基于云的 API 和本地 API,以便启用混合云方案。
    • 使用单一网关终结点管理托管在多个地理位置的 API。

入站专用终结点

API 管理支持专用终结点,以便与 API 管理实例建立安全的入站客户端连接。 每个安全连接使用来自虚拟网络和 Azure 专用链接的专用 IP 地址。

显示使用专用终结点与 API 管理建立安全连接的关系图。

通过专用终结点和专用链接,你可以:

  • 创建到 API Management 实例的多个专用链接连接。

  • 使用专用终结点通过安全的连接发送入站流量。

  • 使用策略来区分来自专用终结点的流量。

  • 将传入流量仅限制到专用终结点,防止数据外泄。

重要

  • 只能为发到 API 管理实例的入站流量配置专用终结点连接。 当前不支持出站流量。

    你可以使用外部或内部虚拟网络模型,从 API 管理实例建立到专用终结点的出站连接。

  • 若要启用专用终结点,API Management 实例不能是通过外部或内部虚拟网络来配置的。

有关详细信息,请参阅使用入站专用终结点以专用方式连接到 API 管理

高级网络配置

使用 Web 应用程序防火墙保护 API 管理终结点

在某些情况下,可能需要安全地对 API 管理实例进行外部和内部访问,并灵活地访问专用后端和本地后端。 对于这些情况,可以选择使用 Web 应用程序防火墙 (WAF) 管理对 API 管理实例终结点的外部访问。

例如,在内部虚拟网络中部署 API 管理实例,并使用面向 Internet 的 Azure 应用程序网关来路由公共访问:

显示 API 管理实例前的应用程序网关的关系图。

有关详细信息,请参阅使用应用程序网关在内部虚拟网络中部署 API 管理

详细了解使用 API 管理的虚拟网络配置:

若要了解有关 Azure 虚拟网络的详细信息,请先了解 Azure 虚拟网络概述中的信息。