次の方法で共有


Azure Functions の IP アドレス

この記事では、関数アプリの IP アドレスに関連する次の概念について説明します。

  • 関数アプリで現在使用されている IP アドレスの検索。
  • 関数アプリの IP アドレスが変更される原因となる条件。
  • 関数アプリにアクセスできる IP アドレスを制限する。
  • 関数アプリの専用 IP アドレスの定義。

IP アドレスは、個々の関数ではなく、関数アプリに関連付けられます。 受信 HTTP 要求では、受信 IP アドレスを使用して個々の関数を呼び出すことはできません。既定のドメイン名 (functionappname.azurewebsites.net) またはカスタム ドメイン名を使用する必要があります。

関数アプリの受信 IP アドレス

各関数アプリは、単一の受信 IP アドレスを使用して開始します。 関数アプリが従量課金プランまたは Premium プランで実行されている場合、イベント ドリブン スケールアウトが発生すると、さらに受信 IP アドレスが追加される可能性があります。 アプリで使用されている受信 IP アドレスを検索するには、次の例のように、ローカル コンピューターから nslookup ユーティリティを使用します。

nslookup <APP_NAME>.azurewebsites.net

この例では、 <APP_NAME> を関数アプリ名に置き換えます。 アプリで カスタム ドメイン名を使用する場合は、代わりにそのカスタム ドメイン名に nslookup を使用します。

関数アプリの送信 IP アドレス

各関数アプリには、使用可能な一連の送信 IP アドレスがあります。 バックエンド データベースなど、関数からの送信接続では、使用可能な送信 IP アドレスの 1 つが配信元 IP アドレスとして使用されます。 特定の接続で使用される IP アドレスを事前に把握することはできません。 このため、バックエンド サービスは、関数アプリのすべての送信 IP アドレスに対してファイアウォールを開く必要があります。

ヒント

Key Vault 参照などの一部のプラットフォーム レベルの機能では、配信元 IP が送信 IP の 1 つではない可能性があるため、これらの特定のアドレスに依存するようにターゲット リソースを構成しないでください。 プラットフォームはそのネットワークを介してターゲット リソースにトラフィックをルーティングするため、代わりにアプリで仮想ネットワーク統合を使用することをお勧めします。

関数アプリで使用可能な送信 IP アドレスを確認するには、次のようにします。

  1. Azure Resource Explorer にサインインします。
  2. サブスクリプションを選択します> {your subscription} >providers>Microsoft.Web>sites.
  3. JSON パネルで、関数アプリの名前で終わる id プロパティを持つサイトを見つけます。
  4. outboundIpAddressespossibleOutboundIpAddressesを参照してください。

outboundIpAddressesのセットは現在、関数アプリで使用できます。 possibleOutboundIpAddressesのセットには、関数アプリが他の価格レベルにスケーリングする場合にのみ使用できる IP アドレスが含まれています。

従量課金プランまたは Premium プランで実行される関数アプリがスケーリングされると、新しい範囲の送信 IP アドレスが割り当てられる可能性があります。 これらのプランで実行する場合、報告された送信 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 アドレスの変更

受信 IP アドレスは、次の場合に変更 される可能性があります

  • 関数アプリを削除した後、別のリソース グループ内で再作成する。
  • リソース グループとリージョンの組み合わせに含まれる最後の関数アプリを削除した後、再作成する。
  • 証明書の更新中など、TLS バインディングを削除します。

関数アプリが 従量課金プラン または Premium プランで実行されている場合、ここで行ったようなアクションを実行していない場合でも、受信 IP アドレスも変更される可能性があります。

送信 IP アドレスの変更

送信 IP アドレスの相対的な安定性は、ホスティング プランによって異なります。

従量課金プランと Premium プラン

自動スケーリングの動作により、従量課金プラン または プレミアムプラン で実行されている場合、送信 IP はいつでも変更される可能性があります。

関数アプリの送信 IP アドレス (許可リストに追加する必要がある場合など) を制御する必要がある場合は、Premium ホスティング プランで実行中に 仮想ネットワーク NAT ゲートウェイ を実装することを検討してください。 これを行うには、専用 (App Service) プランで実行することもできます。

専用プラン

関数アプリが専用 (App Service) プランで実行されている場合、関数アプリで使用可能な送信 IP アドレスのセットは、次の場合に変更される可能性があります。

  • 受信 IP アドレスを変更できるアクションを実行します。
  • Dedicated (App Service) プランの価格レベルを変更します。 すべての価格レベルでアプリで使用できるすべての送信 IP アドレスの一覧は、 possibleOutboundIPAddresses プロパティにあります。 「IP アドレスを見つける」を参照してください。

送信 IP アドレスの変更を強制する

専用 (App Service) プランで送信 IP アドレスの変更を意図的に強制するには、次の手順に従います。

  1. App Service プランを Standard と Premium v2 の価格レベルの間でスケールアップまたはスケールダウンします。

  2. 10 分間待ちます。

  3. 最初の価格レベルに戻します。

IP アドレスの制限

関数アプリへのアクセスを許可または拒否する IP アドレスの一覧を構成できます。 詳細については、「Azure App Service のアクセス制限」を参照してください。

専用 IP アドレス

関数アプリで静的な専用 IP アドレスが必要な場合に調べるには、いくつかの方法があります。

静的 IP の送信に関する仮想ネットワーク NAT ゲートウェイ

仮想ネットワーク NAT ゲートウェイを使用して静的パブリック IP アドレスを介してトラフィックを転送することで、関数からの送信トラフィックの IP アドレスを制御できます。 このトポロジは、 Premium プラン または 専用ホスティング プランで実行する場合に使用できます。 詳細については、「 チュートリアル: Azure 仮想ネットワーク NAT ゲートウェイを使用して Azure Functions の送信 IP を制御する」を参照してください。

App Service 環境

IP アドレス (受信と送信の両方) を完全に制御するには、 App Service Environment (App Service プランの 分離層 ) をお勧めします。 詳細については、「 App Service Environment の概要」を参照してください。

関数アプリが App Service 環境で実行されているかどうかを確認するには:

  1. Azure portal にサインインします。
  2. 関数アプリに移動します。
  3. [概要] タブを選択します。
  4. App Service プランレベルは 、App Service プラン/価格レベルの下に表示されます。 App Service Environment の価格レベルは Isolated です

App Service Environment skuIsolated です。

次のステップ

IP の変更の一般的な原因は、関数アプリのスケールの変更です。 関数アプリのスケーリングについて詳しくは、こちらをご覧ください