Azure Front DoorのWAFカスタムルール作成手順やカスタムエラー画面設定
Azure Front Door(フロントドア)では、WAFを利用できます。
マネージドルールだけでなく、ユーザー自身でカスタムルールを作成して利用することも可能です。
Azure Front DoorでWAFのカスタムルールを作成する手順や、設定可能な内容について確認しています。
国別でのアクセスブロックなどのカスタムルール設定例も紹介しています。
アクセスをブロックした場合に表示する、カスタムエラー画面の設定手順も紹介しています。
※本記事内では、Azure Web Application FirewallをWAFと記載しています。
※今回は、Azure Front Door Premiumを利用して確認しています。
Front Door WAFでのカスタムルール作成手順
WAFのカスタムルールとは
カスタムルールとは、アクセスを制御するためにユーザー自身が定義した条件のことです。
WAFポリシーのサービス内で定義します。
Azure Front Door 上の Azure Web Application Firewall 用のカスタム ルール
たとえば、指定したIPアドレスや国からのアクセスのみを許可することができます。
また、URLやHTTPメソッドをブロックするなど、柔軟な設定が可能です。
ルールに基づいてアクセスをブロックしたり、許可したりすることができます。ブロックをせずにログのみに記録する設定や、リダイレクトの設定もできます。
一律にブロックするだけでなく、レート制限の設定も可能です。
さらに、複数のルールに優先度をつけて設定することができます。
※Azure Front DoorとApplication GatewayのWAFでは、設定できる内容が異なる場合があります。
WAFのカスタムルールはStandardのSKUでも利用可能
カスタムルールはAzure Front Door Standardでも利用可能です。
レベル間の機能の比較(Azure Front Door のレベルの比較)
セキュリティポリシーを追加し、その中でWAFポリシーを割り当てて利用します。
※WAFのすべての機能を利用するには、Premiumへアップグレードする必要があります。
WAFカスタムルール数の上限
Front Door WAFポリシーでは、設定できるカスタムルールの上限は100個までです。
また、1つのカスタムルール内で設定できる一致条件の上限は10個までという制限もあります。
Front DoorのWAFポリシー作成手順
Azure Front DoorでのWAF有効化からWAFポリシーの適用手順については、こちらで紹介しています。
エンドポイントへのセキュリティポリシー追加手順も紹介しています。
Geoフィルタリングを利用して特定の国からのアクセスをブロック
国別でアクセスを制限するカスタムルールを作成します。
日本からのアクセスをブロックするという設定にしています。
Azure Front Door のドメインに対する geo フィルタリングとは
Front Door WAFポリシーのカスタムルールのメニューから作成します。
※公式サイトで、Azure PowerShellを使用した設定手順が公開されています。
Azure Front Door に使用する geo フィルタリング WAF ポリシーを設定する
ーーー広告ーーー
Front Door WAFのカスタムルールで設定可能な内容
アクセスレート制限の設定手順
カスタムルールの適用条件として、アクセス数(一定期間内のリクエスト数)をレート制限として設定できます。
レート制限の場合、指定した期間(1分または5分)以内にしきい値を超えたアクセス(リクエスト数)があった場合にルールが適用されます。
レート制限はアクセス元IP(ソケットIPアドレス、リモートアドレス)単位で適用されます。
レート制限を利用することで、通常のアクセスは許可しつつ、一定数を超える攻撃的なアクセスのみをブロックすることが可能です。
レート制限 | |
ルールの種類でレート制限を選択すると、レート制限の期間やしきい値を設定できるようになります。 |
![]() |
※レート制限については、リクエストが別のFront Doorサーバに届く場合に注意が必要です。
ルールの種類(一致の種類)
カスタムルールの種類は、一致条件の種類によって設定します。
選択できる一致条件には、Geoロケーション、IPアドレス、サイズ、文字列などがあります。
一致の種類 | |
一致の種類からカスタムルールのタイプを選択します。 |
![]() |
アクションの種類(操作や結果)
アクションの種類(操作や結果)は4種類から選択できます。
“許可"や"拒否"だけでなく、"リダイレクト"や"許可(ログに記録)"も設定可能です。
アクションの種類(操作や結果) | |
ルールに合致した場合のアクションは、4種類から選択できます。 |
![]() |
※Azureポータル上では、結果と表示されます。
IPアドレスを制限するカスタムルール
一致の種類でIPアドレスを選択します。
一致変数はRemoteAddrかSocketAddrから選択できます。
RemoteAddrはX-Forwarded-Forリクエストヘッダーを介して送信される元のクライアントのIPアドレスです。
SocketAddrはWAFが認識するソースIPアドレスであり、プロキシの内側からアクセスされる場合はプロキシサーバーのアドレスになります。
一致の種類でIPアドレスを選択します。
Azure Front Door 用の WAF で IP 制限規則を構成する
一致変数はRemoteAddrかSocketAddrから選択できます。
-
- RemoteAddr
- X-Forwarded-Forリクエストヘッダーを介して送信される元のクライアントのIPアドレス
- SocketAddr
- WAFが認識するソースIPアドレス
- RemoteAddr
IPアドレスを制限する場合の条件設定 | |
一致の種類でIPアドレスを選択し、一致変数を指定します。 “含まれる(合致条件)"または"次の値を含まない(除外条件)"のいずれかを選択します。 |
![]() |
バックエンドのサーバーのアクセスをAzure Front Doorからのみに制限する方法については、こちらで紹介しています。
カスタムルールを利用してIPでFront Doorのアクセス制限する方法についても紹介しています。
リクエストのサイズを制限するカスタムルール
クエリ文字列、URI、要求本文など、リクエストの特定部分の長さをルールの判定基準に設定できます。
一致変数は、QueryString、RequestUri、RequestHeader、PostArgs、RequestBody、Cookiesから選択可能です。
サイズのカスタムルール | |
一致の種類でサイズを選択し、一致変数を指定します。
|
![]() |
![]() |
リクエスト文字列を制限するカスタムルール
クエリ文字列、URI、要求本文など、リクエスト内に含まれる文字列を基準にできます。
一致変数はQueryString、RequestUri、RequestHeader、PostArgs、RequestBody、Cookiesから選択可能です。
一致条件の指定には正規表現が利用できます。
このカスタムルールを使うことで、特定のURLパスへのアクセスを制限できます。
利用できる正規表現には制約があり、一致する値として設定できる正規表現の数にも上限があります。
文字列のカスタムルール | |
一致の種類で文字列を選択し、一致変数を指定します。 |
![]() |
一致変数は、QueryString、RequestUri、RequestHeader、PostArgs、RequestBody、Cookiesの中から選択できます。 |
![]() |
入力された文字列を変換することができます。 |
![]() |
一致する値には正規表現を利用できます。 ※画面の例はWordPressの管理画面へのアクセスを制限する例です。 |
![]() |
1つのカスタムルール内に複数の条件を設定できる
1つのカスタムルール内で複数の条件を設定できます。
複数の一致の種類を組み合わせたカスタムルールも作成できます。
1つのカスタムルール内で複数条件を指定 | |
条件の下にある+(プラス)を選択すると、条件を追加できます。 |
![]() |
![]() |
—広告—
Front Door WAFのカスタムエラー画面設定やブロックされたアクセスログの確認方法
カスタムエラー画面の設定
ポリシー設定では、ブロック時に表示するカスタムエラー画面(ブロック応答本文)を設定できます。
Web アプリケーション ファイアウォール用の Azure Front Door でのポリシー設定
リダイレクト先のURLや応答ステータスコードの設定ができます。
ブラウザに表示するカスタムエラー画面(ブロック応答本文)の設定も可能です。
ポリシー設定でカスタムエラー画面を設定 | |
Front Door WAFポリシーの左側メニューでポリシー設定を選択します。リダイレクトURL、応答コード、応答本文を設定します。 |
![]() |
![]() |
ブロックされたアクセスログの確認方法
診断設定を使ってアクセスログを転送することで、Front Doorのアクセスログなどを確認できます。
Azure Web アプリケーション ファイアウォールの監視とログ記録(WAF ログ)
一致したFront Door WAFポリシー名やカスタムルール名も確認できます。
アクセスログを確認 | |
一致したルール名や、拒否(Block)されたアクセスログを確認できます。 | ![]() |
Log AnalyticsワークスペースでのAzure Front Door(WAF)ログ確認方法については、こちらで紹介しています。
最後に
Azure Front DoorのWAFポリシーを使った、カスタムルールの作成手順や設定できることを確認しました。
IPアドレスを使ったルールだけでなく、Geoロケーションやリクエスト内容の文字列を用いたルール作成も可能でした。
ログを確認できるため、実際のアクセス状況を見たうえでブロックの有効化を判断できます。
また、複数の条件を組み合わせることで、より細やかな設定ができる点も便利です。
引き続き、いろいろ試してみたいと思います。
Azure Front DoorでのWAF有効化やフロンドアWAFポリシーの適用手順については、こちらで紹介しています。
Azure Front Doorの概要やリソース作成手順については、こちらで紹介しています。