Application Gatewayにおいて送信元がFront Doorの通信のみ許可させる方法

インターネット ⇒ Front Door ⇒ Application Gateway ⇒ Webサーバ

という、よくある通信経路があったとします。

Application GatewayにおいてFront Door以外からの通信を拒否する方法を紹介します。

以下のような通信を拒否する方法です。

インターネット  ⇒ × Application Gateway ⇒ Webサーバ

方法1:NSGを使う

Front Door が送信元となる通信の IP アドレスは、AzureFrontDoor.Backend サービス タグに含まれています。

そのため、Azure ポータルで Application Gateway が存在している仮想ネットワークにネットワーク セキュリティ グループ (NSG) を関連付けて、NSG の受信セキュリティ規則において、以下のような AzureFrontDoor.Backend サービス タグから TCP ポート 80 と 443 への通信のみを許可するルールを定義します。

参考サイト

– パブリック IP ベースの配信元

https://learn.microsoft.com/ja-jp/azure/frontdoor/origin-security?tabs=application-gateway&pivots=front-door-standard-premium#public-ip-address-based-origins

– 構成例

https://learn.microsoft.com/ja-jp/azure/frontdoor/origin-security?tabs=application-gateway&pivots=front-door-standard-premium#example-configuration

(抜粋)

—–

Application Gateway は仮想ネットワークにデプロイされます。 ネットワーク セキュリティ グループ規則を構成して、AzureFrontDoor.Backend サービス タグからポート 80 と 443 への受信アクセスを許可し、"インターネット" サービス タグからポート 80 と 443 への受信トラフィックを禁止します。

カスタム WAF ルールを使用してヘッダー値 X-Azure-FDID を確認します。 詳細については、「Application Gateway で Web アプリケーション ファイアウォール v2 のカスタム規則を作成して使用する」を参照してください。

—–

注意点

Front Door のサービスは世界中のエッジ サーバーに分散配置されており、複数のユーザでエッジ サーバーを共有して利用するマネージド サービスになるため、上記の NSG の設定だけでは Application Gateway へのアクセスを対象の Front Door のみに絞れていない状況になります (他のユーザの Front Door から自分のApplication Gateway に対して接続できる状況になります)。

Application Gatewayに接続できる、Front Doorを制限したい場合は以下の方法2が使えます。

方法2:WAF ポリシーのカスタム ルールを使う

WAF ポリシーのカスタム ルールでリクエスト ヘッダー “X-Azure-FDID" に対象の Front Door の ID が設定されているリクエストのみを許可します。これにより特定のFront Doorからの通信のみをApplication Gatewayで受け入れることができます。

注意点

Application GatewayのSKUを、WAFが含まれるメニューへアップグレードする必要があります。

(アップグレード手順)

– Application Gateway Standard v2 を Application Gateway WAF v2 にアップグレードする

https://learn.microsoft.com/ja-jp/azure/web-application-firewall/ag/upgrade-ag-waf-policy?tabs=portal#upgrade-application-gateway-standard-v2-to-application-gateway-waf-v2