🔐

Azure WAF を使用してWebサイトへのIPアドレス制限を設定したい

2024/02/11に公開

■はじめに

開発途中のWebサイトを開発拠点やお客さま拠点にアクセス元を制御したいときがありますよね!!
本ブログでは『Azure Web Application Firewall(以下、Azure WAF)』を使用して、IPアドレス制限を設定する方法を紹介します。

■前提条件

Azure WAF を使用するため、Azure Front Door(または Azure Applicatoin Gateway)をWebサイトのリスナーに構築してください。本ブログではAzure Front Door Standard(カスタムドメイン割り当て済み)+ 静的WEBアプリの基盤を構築しています。

■IPアドレス制限の設定方法

▼設定手順

Web Application Firewall ポリシー (WAF) コンソールにアクセスし、フロントドアWAFポリシーを作成します。

作成後、左側のメニュー欄(ブレード)から『設定→カスタムルール』を選択し、カスタムルールの追加を行います。本ブログでは検証端末(Amazon EC2)のグローバルIPアドレスを許可リストに登録しました。

設定項目 設定値
ルールの種類 一致
一致の種類 IPアドレス
一致変数 RemoteAddr or SocketAddr ※どっちでもいいです
演算 次の値を含まない
IPアドレスまたは範囲 アクセス元のIPアドレスまたはネットワークアドレスを記載
アクション トラフィックを拒否する

上記の設定を行うことで、IPアドレス制限がかかります。カスタムルールの反映には3分〜5分ほど掛かりました。

▼(初回)Azure Web Application Firewallを関連付けましょう

Azure WAF は Azure Front Doorプロファイルと関連付けする必要があります。IPアドレス制限がかかっていないときは、対象のドメインが設定されているか確認しましょう!

■動作チェック

検証端末からのアクセス → アクセスできた⭕️

別の検証端末からのアクセス → アクセスできない❌

想定どおりの挙動をしましたね👍

■ログを確認しましょう

Azure WAFでブロックされたトラフィックを分析します。ruleName_sにはユーザー側で作成したカスタムルール名を置き換えください。

AzureDiagnostics
| where Category == 'FrontDoorWebApplicationFirewallLog'
| where ruleName_s == 'WhiteList' and action_s == 'Block'
| project TimeGenerated, Category ,ruleName_s, action_s, clientIP_s ,socketIP_s, requestUri_s

■さいごに

最後まで読んでいただき、ありがとうございます!

Azure Front DoorやAzure Application Gatewayを利用するユーザー向けにIPアドレス制限する方法を紹介しました。IPアドレス制限を設けた後、「繋がりません!」と問い合わせが来ても、WAFログを分析できるようにしましょう!

Discussion