Azure FunctionsのIPアドレス確認方法と変更条件|受信・送信IPの注意点

Azure Functionsで外部DBやAPIのファイアウォール許可リストを設定している場合、最初に押さえるべき結論は「IPアドレスは関数単位ではなくFunction App単位で管理され、特にConsumptionプランとPremiumプランではスケールにより変わる可能性がある」という点です。
2026年5月更新の公式情報では、アウトバウンドIPアドレスのAzure portalでの確認手順が整理され、outboundIpAddressespossibleOutboundIpAddressesを確認する流れが明確になりました。固定IP前提で運用している管理者や、接続先サービスの許可リストを設定する開発者は、現在のIPだけでなく「変わる条件」と「固定化する方法」まで確認する必要があります。(GitHub)

目次

Azure Functionsの「IP addresses in Azure Functions」で押さえるべき変更点

今回の更新は、Azure FunctionsのIPアドレス仕様が根本的に変わったというより、Function Appの受信IP・送信IPをどこで確認し、どの条件で変わるのかを運用者向けに整理した内容です。GitHub上の公式ドキュメント履歴では、更新日が2026年5月5日に変更され、Azure portalからアウトバウンドIPを確認する手順が、Azure portal内のResource Explorerを使う説明に差し替えられています。(GitHub)

特に重要なのは、次の3点です。

確認ポイント実務上の意味
IPアドレスはFunction App単位個別の関数ごとに受信IPや送信IPを固定して管理する考え方ではない
送信IPは複数あり、接続ごとに事前予測できないDB、API、ストレージなどの許可リストには、必要な送信IPをまとめて登録する必要がある
Consumption/PremiumではスケールによりIPが変わり得る現在表示されているIPだけを許可すると、負荷増加時やスケール時に通信障害が起きる可能性がある

Azure FunctionsのIPアドレスを扱うときは、「今見えているIPを控える」だけでは不十分です。プラン、スケール方式、接続先のファイアウォール仕様、将来の移行計画まで含めて判断する必要があります。

受信IPと送信IPの違いを正しく理解する

Azure FunctionsのIPアドレスには、大きく分けて受信IPと送信IPがあります。受信IPは外部からFunction AppへアクセスするときのIP、送信IPはFunction Appから外部サービスへ接続するときの送信元IPです。

種類使われる場面主な確認方法注意点
受信IPアドレスHTTPトリガーなど、外部からFunction Appへアクセスする場合nslookup関数単位ではなくFunction App単位。HTTP要求では既定ドメインまたはカスタムドメインを使う
送信IPアドレスFunction AppからDB、API、Key Vaultなど外部リソースへ接続する場合Azure portal、Azure CLI、Azure PowerShellどの送信IPが使われるかは事前に分からない。プランやスケールで変わる可能性がある

Microsoft Learnでは、IPアドレスは個別の関数ではなくFunction Appに関連付けられ、HTTP要求で個別関数を呼び出すには受信IPではなくfunctionappname.azurewebsites.netの既定ドメインまたはカスタムドメインを使うと説明されています。(Microsoft Learn)

受信IPアドレスの確認方法

受信IPアドレスは、ローカルPCなどからnslookupで確認できます。

nslookup <APP_NAME>.azurewebsites.net

<APP_NAME>にはFunction App名を入れます。カスタムドメインを使っている場合は、そのカスタムドメインに対してnslookupを実行します。公式情報では、Function Appは最初に単一の受信IPアドレスを使い、ConsumptionプランまたはPremiumプランではイベント駆動のスケールアウトにより、受信IPアドレスが追加される可能性があるとされています。(Microsoft Learn)

送信IPアドレスの確認方法

送信IPアドレスは、Azure portal、Azure CLI、Azure PowerShellで確認できます。2026年5月更新では、Azure portalでの確認手順が、Azure portalにサインインしてResource Explorerへ移動し、対象Function AppのJSONからoutboundIpAddressespossibleOutboundIpAddressesを確認する流れに更新されています。(GitHub)

Azure CLIでは、次のコマンドを使います。

az functionapp show \
  --resource-group <GROUP_NAME> \
  --name <APP_NAME> \
  --query outboundIpAddresses \
  --output tsv
az functionapp show \
  --resource-group <GROUP_NAME> \
  --name <APP_NAME> \
  --query possibleOutboundIpAddresses \
  --output tsv

PowerShellでは、次のように確認できます。

$functionApp = Get-AzFunctionApp -ResourceGroupName <GROUP_NAME> -Name <APP_NAME>
$functionApp.OutboundIPAddress
$functionApp.PossibleOutboundIPAddress

outboundIpAddressesは現在Function Appで利用可能な送信IPの集合です。一方、possibleOutboundIpAddressesは、他の価格レベルへスケールした場合に使われる可能性があるIPも含みます。許可リストを作るときは、現在値だけでなく、将来的に使われる可能性がある範囲まで確認する必要があります。(Microsoft Learn)

送信IPを許可リストに入れるときの判断基準

Azure FunctionsからAzure SQL Database、外部SaaS、社内API、決済APIなどへ接続する場合、接続先のファイアウォールで送信元IPを制限することがあります。このとき、outboundIpAddressesだけを登録して終わりにすると、プランやスケール条件によっては障害の原因になります。

公式情報では、Function Appからの送信接続は利用可能な送信IPのいずれかを送信元として使い、特定の接続がどのIPを使うかは事前に分からないとされています。そのため、接続先サービス側ではFunction Appの送信IPをすべて許可する必要があります。(Microsoft Learn)

運用ケース推奨される考え方注意点
小規模な検証環境outboundIpAddressesを確認して一時的に許可本番と同じ安定性は期待しない
Dedicatedプランで価格レベルを固定possibleOutboundIpAddressesも含めて影響を確認価格レベル変更時に送信IPセットが変わる可能性がある
Consumption/Premiumで動的スケール現在の送信IPだけに依存しない確定的な許可リストには向かない
厳密な送信元固定が必要PremiumまたはDedicatedでVNet NAT Gatewayを検討ネットワーク設計とコスト確認が必要
受信・送信とも強く制御したいApp Service Environmentを検討Isolated層の設計・費用・運用体制が必要

特にConsumptionプランとPremiumプランでは、スケール時に新しい送信IP範囲が割り当てられる可能性があります。公式情報でも、これらのプランでは報告される送信IPだけを使って確定的な許可リストを作ることはできず、動的スケール中に使われ得るすべてのアドレスを含めるには、データセンター全体を許可リストに追加する必要があると説明されています。(Microsoft Learn)

ただし、データセンター全体のIP範囲を許可すると、許可範囲が広くなります。セキュリティレビューや監査で「なぜこの広い範囲を許可するのか」を説明できない場合は、NAT Gatewayなどで送信元を固定する設計に寄せたほうが現実的です。

IPアドレスが変わる主なタイミング

Azure FunctionsのIPアドレスは、常に固定されるものではありません。変更条件を知らないままデプロイ、証明書更新、プラン変更を行うと、外部サービスへの接続失敗やアクセス制限の誤動作につながります。

受信IPアドレスが変わる可能性がある操作

受信IPアドレスは、次のような操作で変わる可能性があります。

操作起こり得る影響
Function Appを削除し、別のリソースグループで再作成する新しい受信IPになる可能性がある
同じリソースグループ・リージョンの最後のFunction Appを削除し、再作成する以前のIPを維持できない可能性がある
TLSバインドを削除する証明書更新作業などで受信IPが変わる可能性がある
Consumption/Premiumで運用する操作していなくても受信IPが変わる可能性がある

公式情報では、Function Appの削除・再作成、同じリソースグループとリージョンの最後のFunction Appの削除後の再作成、TLSバインドの削除などが受信IP変更の条件として挙げられています。また、ConsumptionプランとPremiumプランでは、これらの操作をしていなくても受信IPが変わる可能性があります。(Microsoft Learn)

実務では、証明書更新時にTLSバインドを削除して作り直す運用が危険です。事前に影響範囲を洗い出し、DNS、WAF、監視、外部連携先の許可設定を確認してから作業する必要があります。

送信IPアドレスが変わる可能性がある操作

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

プラン送信IPの考え方
Consumption自動スケールにより、いつ変わってもおかしくない前提で考える
Premium自動スケールにより変わり得る。固定したい場合はVNet NAT Gatewayを検討
Dedicated比較的制御しやすいが、価格レベル変更や受信IP変更につながる操作で変わる可能性がある
App Service Environment受信・送信の制御を重視する場合の選択肢

公式情報では、ConsumptionプランとPremiumプランでは自動スケールの挙動により送信IPがいつでも変わる可能性があるとされています。Dedicatedプランでは、受信IPを変える操作やApp Serviceプランの価格レベル変更により、利用可能な送信IPのセットが変わる可能性があります。(Microsoft Learn)

Dedicatedプランでは、StandardとPremium v2の間でスケール変更し、10分待ってから元に戻すことで、送信IPの変更を意図的に発生させる手順も示されています。ただし、本番環境でこれを行う場合は、接続先ファイアウォール、監視、ロールバック手順を準備してから実施すべきです。(Microsoft Learn)

静的な送信IPが必要な場合はNAT Gatewayを検討する

外部サービス側が「固定された送信元IPのみ許可」という条件を求める場合、Function Appに表示される送信IP一覧だけで運用するのはリスクがあります。特に金融系API、社内閉域API、IP制限付きSaaS、監査要件のあるバックエンドでは、送信元IPを安定させる設計が必要です。

公式情報では、Function Appの送信トラフィックを静的なパブリックIP経由に制御する方法として、Virtual Network NAT Gatewayが挙げられています。この構成はPremiumプランまたはDedicatedホスティングプランで利用できると説明されています。(Microsoft Learn)

設計時は、次の順序で判断すると迷いにくくなります。

判断項目確認すべきこと
固定IPが必須か接続先がIP制限必須なのか、認証・Private Link・VNet接続で代替できるのか
現在のプランで対応できるかConsumptionのままでよいのか、Premium/Dedicatedへ移行が必要か
送信だけ固定したいか送信元固定だけならNAT Gatewayが候補
受信も送信も厳密に制御したいかApp Service Environmentを検討
運用負荷を許容できるかサブネット、パブリックIP、ルーティング、監視、コストを管理できるか

NAT Gatewayを使えば送信元IPを制御しやすくなりますが、万能ではありません。Function Appのホスティングプラン、VNet統合、サブネット設計、接続先の許可ルールを合わせて設計する必要があります。

Key Vault参照などで送信IPだけに依存しない

見落としやすいのが、Key Vault参照などのプラットフォームレベル機能です。公式情報では、Key Vault参照のような一部のプラットフォーム機能では、送信元IPがFunction AppのアウトバウンドIP一覧に含まれない場合があり、対象リソース側で特定IPだけに依存する構成は避けるべきだと説明されています。その代わりに、仮想ネットワーク統合を使い、トラフィックをネットワーク経由でルーティングすることが推奨されています。(Microsoft Learn)

つまり、アプリケーションコードから外部APIへHTTP接続する通信と、Azureプラットフォームが内部的に行う参照・取得の通信を同じものとして扱わないことが重要です。

よくある失敗例は次の通りです。

失敗例なぜ問題になるか対策
outboundIpAddressesだけをKey Vault側で許可するプラットフォーム機能の送信元が一致しない可能性があるVNet統合やKey Vault側のネットワーク設定を再確認する
検証環境では動いたため本番も同じ設定にする本番のスケールやプランが異なるとIPが変わる本番プランでpossibleOutboundIpAddressesまで確認する
接続先ごとに許可IPの管理表がない変更時にどの外部サービスへ連絡すべきか分からないDB、SaaS、社内APIごとに許可リスト管理表を作る

受信アクセスを制限するならAccess Restrictionsを使う

Azure Functionsへの受信アクセスをIPアドレスや仮想ネットワークで制限したい場合は、App ServiceのAccess Restrictionsを使います。Access Restrictionsでは、IPアドレスやAzure Virtual Networkサブネットを含む許可・拒否リストを優先順位付きで定義でき、ルールに一致しないアクセスを制御できます。Azure Functionsを含むApp Serviceホスト型ワークロードで利用できます。(Microsoft Learn)

管理画面だけでなく、運用ルールとして次の点を決めておくと安全です。

項目決める内容
管理者アクセス社内固定IP、VPN、踏み台環境のどこから許可するか
アプリ利用者アクセス全公開か、特定ネットワーク限定か
WAFやFront Doorとの関係直接Function Appへ来るアクセスを許可するか、前段サービス経由に限定するか
緊急時の解除手順誤設定で403になった場合に誰が復旧するか
ルール数将来的に512ルール制限に近づかないか

Access Restrictionsでは、1つ以上のルールがある場合、暗黙的な拒否が最後に存在します。また、ルールにより許可されない要求にはHTTP 403が返されます。ルール数には512の制限があるため、多数の個別IPを登録する設計では、Azure Front Door、Application Gateway、WAFなどの前段サービスも検討すべきです。(Microsoft Learn)

Consumptionプラン利用者は移行方針も確認する

IPアドレスの話だけを見ると、「今のConsumptionプランの送信IPを許可すればよい」と考えがちです。しかし、Azure Functions全体のホスティング方針も確認しておくべきです。

Microsoft Learnのホスティングオプションでは、Consumptionプランはレガシーのホスティングプランと位置づけられ、新しいサーバーレスFunction AppではFlex Consumptionプランの利用が案内されています。既存のConsumptionプランアプリについても、Flex Consumptionプランへの移行が推奨されています。(Microsoft Learn)

ただし、IPアドレス管理の観点では、移行先を「新しいから」という理由だけで決めないことが大切です。次の条件を合わせて確認してください。

確認項目管理者・開発者が見るべきポイント
OS要件Windows依存のランタイムやPowerShellモジュールがあるか
ネットワーク要件VNet接続、固定送信IP、Private Endpointが必要か
スケール要件突発的なイベント増加にどこまで対応するか
コスト常時起動、Always Ready、NAT Gateway、ASEの費用を含めて試算したか
外部連携接続先のIP許可リスト変更にどれだけ時間がかかるか

Consumptionプランではインスタンスが着信イベント数に応じて動的に追加・削除され、Linux Consumptionプランには提供終了に関する案内もあります。既存環境では、IPアドレスの許可リスト更新と合わせて、ランタイム、OS、ホスティングプランの移行計画を同じタイミングで確認するのが効率的です。(Microsoft Learn)

デプロイ前に確認したいチェックリスト

Azure FunctionsのIPアドレス変更で障害を起こさないためには、デプロイ前に次の項目を確認します。

チェック項目確認方法
Function App名とリージョンAzure portalまたはAzure CLIで確認
現在のホスティングプランConsumption、Premium、Dedicated、ASEなどを確認
受信IPnslookup <APP_NAME>.azurewebsites.net
現在の送信IPoutboundIpAddressesを確認
将来使われ得る送信IPpossibleOutboundIpAddressesを確認
接続先の許可リストDB、SaaS、社内API、Key Vaultなどを洗い出す
IP変更を伴う作業プラン変更、TLSバインド変更、削除・再作成がないか確認
固定IP要件NAT GatewayまたはASEが必要か判断
受信制限Access Restrictions、WAF、Front Doorの設計を確認
ロールバック許可リストの戻し方、DNS、監視アラートを準備

開発者だけで完結しない点にも注意が必要です。外部SaaSのIP許可リスト変更は、セキュリティ部門やベンダー側の申請が必要なことがあります。Azure側のデプロイ予定日だけでなく、接続先の設定反映リードタイムも含めてスケジュールを組みましょう。

すぐに取るべき対応

まず、対象のFunction AppについてoutboundIpAddressespossibleOutboundIpAddressesを確認し、現在の許可リストがどちらに基づいているかを棚卸ししてください。次に、ConsumptionまたはPremiumで運用しているアプリは、スケール時にIPが変わる前提で、データセンター範囲の許可、NAT Gateway、Dedicatedプラン、App Service Environmentのどれが適切かを判断します。

最後に、IPアドレスを「一度設定したら終わり」の項目として扱わないことが重要です。プラン変更、証明書更新、Function Appの再作成、移行作業のたびに見直す運用項目として管理表に入れておけば、Azure Functionsのネットワーク障害をかなり減らせます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次