AWS WAFv2を使って特定のURLに特定のIPのみアクセスを許可する

AWS WAFv2を使って特定のURLに特定のIPのみアクセスを許可する

Clock Icon2025.02.17

こんにちは、こーへいです。

今回は「AWS WAFv2を使って特定のURLに特定のIPのみアクセスを許可する」方法を解説します。

AWS WAF Classic版はこちら。

https://dev.classmethod.jp/articles/awswaf-access-deny/

構成図

貼り付けた画像_2025_02_17_13_36

IP sets作成

まずはアクセスを許可するIP setsを作成します。
貼り付けた画像_2025_02_17_11_15

IP set nameには適当な値を、リージョンは東京、IP Addressesは自分のIPアドレス(cman)を入力しましょう。
貼り付けた画像_2025_02_17_11_14

WAFのルールを作成する

用意したWAFを選択し、ルールを追加します。
貼り付けた画像_2025_02_17_11_20

赤枠通り設定してください。

貼り付けた画像_2025_02_17_11_22

条件1つ目です。赤枠通り設定してください。

「if a request」にて「matches all the statements(AND)」を選ぶことで、2つの条件が合致した時に今回のルールのアクションが作動します。

今回は「特定のURIに一致した」と「特定のIPアドレスに一致しなかった」場合に、Blockアクションが作動する様にします。

貼り付けた画像_2025_02_17_11_50

条件2つ目も赤枠通り設定してください。

こちらで先ほど作成したIP setsを選択しています。

貼り付けた画像_2025_02_17_11_25

アクションはBlockを選択します。

貼り付けた画像_2025_02_17_11_26

作成されました。

貼り付けた画像_2025_02_17_11_27

アクセスする

IP setsに登録したIPアドレスからアクセス

「example.com/index.html」の場合

アクセスできました。
貼り付けた画像_2025_02_17_11_35

「example.com/out/mitaradame.html」の場合

アクセスできました。
貼り付けた画像_2025_02_17_11_36

IP setsに登録していないIPアドレスからアクセス

VPNでアクセス元のIPを変更しました。

「example.com/index.html」の場合

アクセスできました。
貼り付けた画像_2025_02_17_11_41

「example.com/out/mitaradame.html」の場合

意図通り制限されました。
貼り付けた画像_2025_02_17_11_40

[おまけ]ALBの場合について

https://qiita.com/huntas0624/items/9f441106809ba304002a

ALBの場合でもリスナールールを使用することで特定のURLにアクセス可能なIPアドレスを制限することは可能です。

一方でALBの場合はクォータにより登録できるIPアドレスの上限が5、AWS WAFの場合はIP setsに登録できるIPアドレスの上限が1万なので、基本的にはWAFでIP制限した方が良いでしょう。

その他参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.