🐕

Application GatewayとFront Doorを組み合わせたときにFront Doorへのアクセスを制限したい

2023/11/28に公開

はじめに

Application Gateway -> Front Door -> App Serviceという少しトリッキーなネットワーク構成を検証してみました。
この時Front Doorへの直接のリクエストをガードしようと思い、Application Gatewayの書き換えルールとFront Doorのルールエンジンを組み合わせることで対処してみたので残しておきます。

前提

  • Application Gatewayにはカスタムのドメインを設定し、仮に example.com とする。
  • Front Doorのフロントエンドにもカスタムのドメインを設定し、仮に fd.example.com とする。
  • 今回Front Doorはクラシックモデルを採用しておりますが、最新のStandard, Premiumにも対応できると考えてます。
  • Application GatewayのバックエンドプールはFQDNとして fd.example.comを登録。正常性プローブもfd.example.com当てにチェックをするものとします。

設定内容

Application Gatewayの設定

書き換えセットでリクエストヘッダーにカスタムヘッダーを用意します

この時のヘッダー名と値を控えておく。実際の値は予測の難しいランダムな値が良いかと思います。

Front Doorの設定

ルールエンジンに以下の通り設定します。
ヘッダー名とヘッダー値に先ほど控えた値を入力し、演算子を等しくないとすることで、Application Gateway経由以外のアクセスは正規のリクエストとなるようリダイレクトとするようにします。

検証

curlで試してみます。
Application Gatewayへのアクセス

curl -I https://example.com

HTTP/2 200
date: Sun, 19 Nov 2023 21:54:36 GMT
content-type: text/html; charset=utf-8
cache-control: private, no-cache, no-store, max-age=0, must-revalidate
...
vary: Accept-Encoding
x-xss-protection: 1; mode=block
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
strict-transport-security: max-age=31536000; preload
x-azure-ref: 20231119T215435Z-ztfdcw114t29x7m9th0tcwpwng...
x-cache: CONFIG_NOCACHE

Front Doorへのアクセス
Application Gatewayへのカスタムドメインにリダイレクトされること確認。

curl -I https://fd.example.com

HTTP/2 302
date: Sun, 19 Nov 2023 21:55:24 GMT
content-type: text/html
content-length: 0
location: https://example.com/
x-azure-ref: 20231119T215524Z-4k89tm5knh6k3ds4375t1eub1w...
x-cache: CONFIG_NOCACHE

最後に

タイトルに掲げたアクセス制限については達成できました。これにプラス、Front DoorとApp Serviceのアクセス制限設定を付け加えることでよりセキュアなネットワーク環境がで構築できると思います。

ただ、冒頭の構成は運用環境にはコスト的にも構成的にもおすすめはしないので、フロントにはApplication Gateway、もしくはFront Doorのいずれかを選択することが望ましいです。

株式会社フライヤー Tech Blog

Discussion