最初に書いておきますが、私は非エンジニアなので、エンジニアの方には参考にならない記事です。(汗)
とあるサイトで管理画面とか特定ディレクトリだけIPアドレスを特定のアドレスに限りたいという、よくあるパターンで要望を受けました。
example.jp/abcd/
みたいなディレクトリとしておきます。
先日別件Bot Controllの設定時にWeb ACLsは既に作ってあったので、「え?そこは書かないの?」という方も多いかと思いますが、すみません。
基本的にはまずは空っぽのWeb ACLsをALB(Application Load Balancer)を選択して作り、
次にWeb ACLsの下にルールを作るのではなく、左メニューにあるIP setsからホワイトリストを作ります。
作ったらここでようやく(Web ACLsの下にIP制限の)ルールを作り追加します。
詳しくは私が一番わかりやすかったBeeXさんという会社Webページをご紹介します。
https://www.beex-inc.com/blog/WAF_CloudFront
ここまでが特定ディレクトリ(/abcd/)に対するIPアドレスIP制限の設定で、次に本題(一部除外Dirの設定)です。
IP制限した特定ディレクトリ(/abcd/)の中で、ここだけは誰でも見れるように解放というか、IPのホワイトリスト外からでも見れるようにする、いわば例外設定です。
まずはその例外設定前の、IP制限ですが、制限するディレクトリ(/abcd/)の設定があります。
Statement 1
ANDでさらに許可するIPアドレスの設定があります。
NOT Statement 2
ここまでが普通のIP制限(ホワイトリスト設定)でですね。
さらに条件を追加で、例外とするディレクトリ(/abcd/efg/)を指定します。
NOT Statement 3
まあエンジニアにとっては朝飯前の設定でも、年寄りの非エンジニアにとってはこうやって備忘録にしておかないとすぐ忘れちゃうんですよ。
あ、そうそう、WAFで特定ディレクトリのIP制限の設定したら、動作テストは必須ですね。
滅多になさそうなミスですが、
例えば/common/ディレクトリを制限したつもりで/commonと書いたら/common.cssまで制限してしまったとか?
まあ私のような非エンジニアの書くことは当てにしないのが一番かも知れません。
なにかあっても自己責任でお願いいたします。
現場からは以上です。