AWSその他

【AWS】CloudFlontのIP制限と地理的制限

AWS
この記事は約3分で読めます。

implの藤谷です。
cloudflontを利用したawsネットワークにアクセスできるコンピュータやVPNのIPを制限したり、特定の国からのアクセスを制限する方法を解説します。

ユースケース

この機能を必要とするケースは、下記のようなものが考えられます。

  • テスト用ドメインにcname登録されたcloudflontに、関係する開発者しかアクセスできないようにする。
  • サービスの仕様上、特定地域のみからのアクセスを許可する
    もしくは、特定地域からのアクセスを拒否する

CloudFlont distributionの確認

テスト用のディストリビューションを作成します。
cloudflontのoriginにalbを設定し、ec2内のnext.jsにアクセスできるようになっています。

cloudflontのドメインにアクセス

WAFを利用したIP制限

IP sets

下記、IP setsリソース作成手順

  1. WAFの「IP sets」に移動
  2. Create IP setをクリックし、制限したいIPを設定してリソースを作成(今回は検証の為、自身のIPを設定)
  3. リソースを確認

Web ACLs

下記、Web ACLsリソース作成手順

  1. Web ACLsに移動
  2. Create web ACLをクリックしてリソース作成
    下記、重要な設定
    ・name
    ・RulesからRule typeにIP setを選択し、IP setsで作成したリソースを設定
    ・Default web ACL action for requests that don’t match any rules
     ↓
     ホワイトリストの場合はAllow、ブラックリストの場合はBlock

IP制限確認

cloudflontに戻って先程nextにアクセスしたドメインに際アクセスします。
IP制限が機能して403のアクセス不可画面が表示されており、成功です。

地理的制限

次に、地理的制限によるアクセスコントロールを行います。
cloudflontのメニューから「地理的制限」を選んで編集をクリックすると、許可とブロックに分けて国を選択することができます。
今回は自身が見えなくなる検証を行うのでブロックリストで「日本」を選択します。

設定後のcloudflontドメインアクセスでは、下記の403が表示されます。
「block access from your country」の記述があり、国で制限がかかっていることがわかります。

最後に、地理的制限を外してcloudflontからec2のnextにアクセスできることを確認します。

終わりに

今回は以上になります。
ここまで読んで頂き、ありがとうございました。