Azure API 管理中的 IP 地址

适用于:所有 API 管理层级

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

公共 IP 地址

开发者、基础、标准或高级层的每个API管理实例都有该实例独占的公共IP地址。 (它们不与其他资源共享。

在Azure门户中,从资源的总览仪表盘获取IP地址:

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

或者,通过以下 API 调用程序化获取它们:

GET https://management.chinacloudapi.cn/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 地址:公共和专用。

  • 在端口3443内部通信时使用公共IP地址来管理配置,比如通过Azure 资源管理器。 在 外部 虚拟网络配置中,也使用它们来承载运行时 API 流量。 在内部虚拟网络配置中,只使用公网IP地址进行Azure内部管理操作。 他们不会把你的实例暴露给互联网。

  • 使用仅在 内部虚拟网络模式下可用的私有虚拟IP(VIP)地址,从网络内部连接到API管理端点:网关、开发者门户以及用于直接访问API的管理平面。 利用这些地址在网络内设置DNS记录。

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

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

GET https://management.chinacloudapi.cn/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 管理会使用子网中的内部 IP 地址(动态 IP 或 DIP 地址)来处理运行时 API 流量。 当 API Management 向私有后端发送请求时,请求的起点会显示一个私有 IP 地址。

    因此,如果IP限制列出了虚拟网络或对等虚拟网络中的安全资源,应使用整个API管理 子网范围 并使用IP规则,而非仅使用与API管理资源关联的私有IP地址。

  • 当 API Management 向面向互联网的公共后端发送请求时,请求的起点始终可见一个公共 IP 地址。

对 IP 地址的更改

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

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

  • 服务订阅被禁用或警告(例如,由于未付款),然后恢复。 了解更多关于订阅州的信息。

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

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

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

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

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

    重要

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