Azure API Management の IP アドレス

この記事では、Azure API Management サービスの IP アドレスを取得する方法について説明します。 サービスが仮想ネットワーク内にある場合、IP アドレスはパブリックまたはプライベートにすることができます。 IP アドレスを使用して、ファイアウォール規則の作成、バックエンド サービスへの受信トラフィックのフィルター処理、または送信トラフィックの制限を行うことができます。

API Management サービスの IP アドレス

Developer、Basic、Standard、または Premium レベルのすべての API Management サービス インスタンスには、そのサービス インスタンス専用のパブリック IP アドレスがあります (他のリソースとは共有されません)。

IP アドレスは、Azure portal のリソースの概要ダッシュボードから取得できます。

API Management の 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": [
      "13.77.143.53"
    ],
    ...
  }
  ...
}

複数リージョンのデプロイでは、各地域のデプロイにパブリック IP アドレスが 1 つあります。

VNet 内の API Management サービスの IP アドレス

API Management サービスが仮想ネットワーク内にある場合、パブリックとプライベートの 2 種類の IP アドレスがあります。

  • パブリック IP アドレスは、ポート 3443 での内部通信に使用されます。これは、構成の管理用です (たとえば、Azure Resource Manager 経由)。 外部 VNet 構成では、ランタイム API トラフィックにも使用されます。

  • 内部 VNet モードのみ使用可能なプライベート仮想 IP (VIP) アドレス は、ネットワーク内から API Management エンドポイント (ゲートウェイ、開発者ポータル、および直接 API アクセス用の管理プレーン) に接続するために使用されます。 ネットワーク内の DNS レコードを設定するために、これらを使用できます。

Azure portal と API 呼び出しの応答に両方の型のアドレスが表示されます。

VNet での API Management の IP アドレス

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

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

送信トラフィックの IP アドレス

API Management では、VNet またはピアリングされた VNet 外の接続にはパブリック IP アドレス、VNet またはピアリングされた VNet 内の接続にはプライベート IP アドレスが使用されます。

  • API Management が外部または内部仮想ネットワークにデプロイされていて、API Management がプライベート (イントラネットに接続する) バックエンドに接続するときは、サブネットの内部 IP アドレス (動的 IP、つまり DIP アドレス) がランタイム API トラフィックに使用されます。 要求が API Management からプライベート バックエンドに送信されるときは、プライベート IP アドレスが要求の送信元として表示されます。

    そのため、IP 制限によって VNet またはピアリングされた VNet 内のセキュリティで保護されたリソースが一覧表示される場合、(内部モードで) API Management リソースに関連付けられているプライベート IP アドレスだけでなく、API Management サブネット範囲全体を IP 規則と共に使用することをお勧めします。

  • 要求が API Management からパブリック (インターネットに接続された) バックエンドに送信されると、パブリック IP アドレスが要求の送信元として常に認識されます。

従量課金レベルの API Management サービスの IP アドレス

API Management サービスが従量課金レベルのサービスの場合、専用 IP アドレスはありません。 従量課金レベルのサービスは、決定論的 IP アドレスを使用せずに、共有インフラストラクチャ上で実行されます。

従量課金レベルのインスタンスに使う送信 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.180.192/27",
     "213.199.183.0/24"
    ]
  }
}

このファイルがいつ更新されるかや IP アドレスがいつ変更されるかの詳細については、[ダウンロード センター] ページ[詳細] セクションを展開してください。

IP アドレスの変更

API Management の Developer、Basic、Standard、Premium の各レベルで、パブリック IP アドレス (VIP) とプライベート VIP アドレス (内部 VNet モードで構成されている場合) は、次の例外を除いて、サービスの有効期間にわたって静的です。

  • API Management サービスが削除された後、再作成された。

  • サービスのサブスクリプションが (未払いなどの理由により) 中断または警告ありとなり、その後復元された。

  • (Developer と Premium レベル) Azure Virtual Network がサービスに追加されるか、サービスから削除された。

  • (Developer と Premium レベル) API Management サービスで、外部と内部の VNet デプロイ モードが切り替えられた。

  • (Developer レベルと Premium レベル) API Management サービスは別のサブネットに移動されます。

  • (Premium レベル) 可用性ゾーンが有効、追加、または削除されている。

  • (Premium レベル) 複数リージョンのデプロイで、リージョンが空いていて再び復元されると、そのリージョンの IP アドレスが変更される。

    重要

    外部から内部の仮想ネットワーク (またはその逆) に変更する場合、ネットワーク内のサブネットを変更する場合、または API Management インスタンスの可用性ゾーンを更新する場合は、以前に構成したものとは異なるパブリック IP アドレス リソースを構成する必要があります。 必要に応じて、元の IP アドレスに戻すことができます。