AWS WAFv2を使って特定のURLに特定のIPのみアクセスを許可する
こんにちは、こーへいです。
今回は「AWS WAFv2を使って特定のURLに特定のIPのみアクセスを許可する」方法を解説します。
AWS WAF Classic版はこちら。
構成図
IP sets作成
まずはアクセスを許可するIP setsを作成します。
IP set nameには適当な値を、リージョンは東京、IP Addressesは自分のIPアドレス(cman)を入力しましょう。
WAFのルールを作成する
用意したWAFを選択し、ルールを追加します。
赤枠通り設定してください。
条件1つ目です。赤枠通り設定してください。
「if a request」にて「matches all the statements(AND)」を選ぶことで、2つの条件が合致した時に今回のルールのアクションが作動します。
今回は「特定のURIに一致した」と「特定のIPアドレスに一致しなかった」場合に、Blockアクションが作動する様にします。
条件2つ目も赤枠通り設定してください。
こちらで先ほど作成したIP setsを選択しています。
アクションはBlockを選択します。
作成されました。
アクセスする
IP setsに登録したIPアドレスからアクセス
「example.com/index.html」の場合
アクセスできました。
「example.com/out/mitaradame.html」の場合
アクセスできました。
IP setsに登録していないIPアドレスからアクセス
VPNでアクセス元のIPを変更しました。
「example.com/index.html」の場合
アクセスできました。
「example.com/out/mitaradame.html」の場合
意図通り制限されました。
[おまけ]ALBの場合について
ALBの場合でもリスナールールを使用することで特定のURLにアクセス可能なIPアドレスを制限することは可能です。
一方でALBの場合はクォータにより登録できるIPアドレスの上限が5、AWS WAFの場合はIP setsに登録できるIPアドレスの上限が1万なので、基本的にはWAFでIP制限した方が良いでしょう。
その他参考
- AWS WAF を使用して特定の URI パスへのアクセスを許可またはブロックする方法を教えてください。
- IPアドレスの他にHTTPヘッダーや位置情報の場合の設定方法についても解説