Azure API 管理中的 IP 地址

适用于:所有 API 管理层级

本文介绍如何检索 Azure API 管理的 IP 地址。 如果该服务位于虚拟网络中,IP 地址可以是公共或专用地址。 可以使用 IP 地址创建防火墙规则、筛选到后端服务的传入流量或限制出站流量。

公共 IP 地址

开发人员、基本层、标准层或高级层中的每个 API 管理实例都具有仅属于该实例的公共 IP 地址。 (它们不与其他资源共享。

可以从 Azure 门户中资源的概述仪表板中检索 IP 地址:

显示 API 管理中的 IP 地址的屏幕截图。

还可以使用此 API 调用以编程方式提取它们:

GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>?api-version=<api-version>

公共 IP 地址将显示在响应中:

{
  ...
  "properties": {
    ...
    "publicIPAddresses": [
      "172.31.0.1"
    ],
    ...
  }
  ...
}

多区域部署中,每个区域部署有一个公共 IP 地址。

虚拟网络中 API 管理的 IP 地址

如果 API 管理实例位于虚拟网络中,则它具有两种类型的 IP 地址:公共和专用。

  • 公共 IP 地址用于端口上的 3443内部通信,用于管理配置(例如,通过 Azure 资源管理器)。 在 外部 虚拟网络配置中,它们还用于运行时 API 流量。 在 内部 虚拟网络配置中,公共 IP 地址仅用于 Azure 内部管理作,并且不会向 Internet 公开实例。

  • 专用虚拟 IP (VIP) 地址仅在 内部虚拟网络模式下可用,用于从网络内部连接到 API 管理终结点:网关、开发人员门户和管理平面,以便直接访问 API。 可以使用这些地址在网络中设置 DNS 记录。

你将在 Azure 门户和 API 调用的响应中看到这两种类型的地址:

显示 API 管理中的 VIP 地址的屏幕截图。

GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ApiManagement/service/<service-name>?api-version=<api-version>

{
  ...
  "properties": {
    ...
    "publicIPAddresses": [
      "172.31.0.1"
    ],
    "privateIPAddresses": [
      "192.168.1.5"
    ],
    ...
  },
  ...
}

重要

内部负载均衡器和 API 管理单元的专用 IP 地址是动态分配的。 因此,在部署 API 管理实例之前,无法预测其专用 IP。 此外,更改为其他子网,然后返回可能会导致专用 IP 地址发生变化。

出站流量的 IP 地址

API 管理对虚拟网络或对等互连虚拟网络外部的连接使用公共 IP 地址。 它在虚拟网络或对等虚拟网络中的连接中使用专用 IP 地址。

  • 在外部或内部虚拟网络中部署 API 管理时,API 管理连接到专用(面向 Intranet 的)后端时,子网中的内部 IP 地址(动态 IP 或 DIP、地址)用于运行时 API 流量。 将请求从 API 管理发送到面向专用后端时,将显示专用 IP 地址作为请求的来源。

    因此,如果 IP 限制列出了虚拟网络或对等互连虚拟网络中的安全资源,我们建议将整个 API 管理 子网范围 与 IP 规则配合使用(在内部模式下),而不仅仅是与 API 管理资源关联的专用 IP 地址。

  • 将请求从 API 管理发送到公共(面向 Internet)的后端时,将始终显示公共 IP 地址作为请求的来源。

消耗、基本 v2、标准 v2 和高级 v2 层 API 管理实例的 IP 地址

如果在共享基础结构上运行的服务层中创建 API 管理实例,则它没有专用 IP 地址。 目前,以下服务层中的实例在共享基础结构上运行,且没有确定性的 IP 地址:消耗、基本 v2、标准 v2 和高级 v2。

如果需要将消耗、基本 v2、标准 v2 或高级 v2 层实例使用的出站 IP 地址添加到允许列表,可以将实例的数据中心(Azure 区域)添加到允许列表。 可以 下载列出所有 Azure 数据中心 IP 地址的 JSON 文件。 然后,查找应用于实例所在运行区域的 JSON 片段。

例如,下面的 JSON 片段是西欧允许列表的样子:

{
  "name": "AzureCloud.westeurope",
  "id": "AzureCloud.westeurope",
  "properties": {
    "changeNumber": 9,
    "region": "westeurope",
    "platform": "Azure",
    "systemService": "",
    "addressPrefixes": [
      "13.69.0.0/17",
      "13.73.128.0/18",
      ... Some IP addresses not shown here
     "213.199.183.0/24"
    ]
  }
}

有关此文件何时更新以及 IP 地址何时更改的信息,请展开下载中心页的“详细信息”部分。

对 IP 地址的更改

在 API 管理的开发人员、基本层、标准层和高级层中,公共 IP 地址或地址(VIP)和专用 VIP 地址(如果在内部虚拟网络模式下配置)在服务的生存期内是静态的,但以下例外:

  • 将删除 API 管理,然后重新创建。

  • 服务订阅被禁用或警告(例如,由于未付款),然后恢复。 详细了解订阅状态。

  • (开发人员层级和高级层级)在该服务中添加或删除 Azure 虚拟网络。

  • (开发人员层和高级层)API 管理在外部和内部虚拟网络部署模式之间切换。

  • (开发人员层和高级层)API 管理将移动到其他子网或配置了不同的公共 IP 地址资源。

  • (高级层级)可用性区域已启用、添加或删除。

  • (高级层级)在多区域部署中,如果某个区域搬迁然后重建,则区域 IP 地址将发生变化。

    重要

    从内部虚拟网络更改为外部虚拟网络或更改网络中子网时,可以配置其他 公共 IP 地址。 如果未提供,则会自动配置 Azure 托管的公共 IP 地址。