AWS
waf
route53
Geolocation

AWS Route53とWAFのGeolocation機能を検証

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のほうが良い。