WAFに地域を制限する新機能がでました。geolocationについて検証しました。ついでにroute53のgeolocationも検証しました。
1.route53のgeolocation検証
検証
アクセスをUS(アメリカ)だけに限定して、あらゆる方法で日本からのアクセスどこまで防いでくれるか検証
検証環境
・route53にて[test.example.com]と登録後geolocaionをUSに設定する。(ドメインは例です。)
・EC2静的webホストのインスタンスを作成
・EC2にEIPを付与
・Applicattion load blanceでインスタンスを紐付け
ALBのヘルスチェックを通して検証
結果(左アクセス方法と右結果)
ドメインアクセス--------------------------拒否(ドメインが見つかりませんでした。)
EC2のパブリックドメイン-----------------アクセスできた
EC2のEIP------------------------------------アクセスできた
ALBのドメイン-----------------------------アクセスできた
ALBのネットワークインターフェース----アクセスできた
感想
当たり前ですがRoute53を通らない方法でやると通る。
2.WAFのGeoMatch検証
検証
US以外のアクセスすべて拒否設定で日本からアクセス検証
(上記のroute53で設定した。geolocationはもとに戻しています。)
検証環境
・EC2静的webホストのインスタンスを作成
・EC2にEIPを付与
・Applicattion load blanceでインスタンスを紐付け
・WAFGeoMatchをUS(アメリカ)以外全部拒否設定
結果(左アクセス方法と右結果)
ドメインアクセス--------------------------拒否(HTTPStatus:403)
EC2のパブリックドメイン-----------------アクセスできた
EC2のEIP------------------------------------アクセスできた
ALBのドメイン-----------------------------拒否(HTTPStatus:403)
ALBのネットワークインターフェース----拒否(HTTPStatus:403)
感想
通常のアクセスする順番が「クライアント⇒route53⇒ALB(WAFアタッチ)⇒EC2」なので、WAFで拒否してくれるが、EC2に直接アクセスするとALBは通らないのでアクセス可能になってしまう。
本来であれば、WEBインスタンスを作るときにEC2に直接EIPとパブリックドメインはつけることがないので問題ないと思います。
地域のアクセス制限するのならWAFのほうが良い。