はじめに
最近はGeoフィルタリングを利用する機会が増えてきていると思います。WAF(Web Application Firewall)の機能を利用して特定の国からのアクセスを拒否します。
以前、Front Doorを利用したケースを紹介しましたが、今回はApplication Gatewayで行う方法を紹介します。
-
Front Door でGeoフィルタリングをやってみる。WAFポリシーを添えて。 - 技術的な何か。
Front Door でGeoフィルタリングをやってみた話です。結構簡単に設定できます。
level69.net
構成
Application GatewayでGeoフィルタリングを行う場合はWAFの機能を有効にしてGeoフィルタリングのポリシーを割り当てます。
今回の検証では、日本からのアクセスを拒否するという単純なポリシーを割り当てます。
バックエンドにはWebサーバーがあります。
構築
Application Gateway
最初にApplication Gatewayを構成します。もともとApplication Gatewayがある場合は必要ありません。WAFポリシー作成まで読み飛ばしてください。
Application Gatewayの作成を行います。
- 名前:任意
- 地域:任意
- レベル:Standard V2もしくはWAF V2(Standard V2でもWAFを有効化します)
- 負荷スケール:任意(検証なのでインスタンス数1で設定しています)
- 仮想ネットワーク:任意
- サブネット:Application Gateway用のサブネット
他は適当に
フロントエンドの設定を行います。
外部からのアクセスを受け付けるためパブリックのIPアドレスを設定します。
バックエンドプールを追加します。
- 名前:任意
- ターゲットの種類:任意(作成したバックエンドに合わせます)
ルーティングの規則を追加します。
- ルール名:任意
- リスナー名:任意
- フロントエンドIP:パブリック
- 他はそのまま
バックエンドターゲットの設定を行います。
ターゲットは追加したものに指定し、HTTP設定を追加します。
HTTP設定を追加します。
- HTTP設定名:任意
- 他はそのまま(バックエンドに合わせます)
以上で設定は完了ですので、Application Gatewayを作成します。
作成後にApplication Gateway経由でアクセスできることを確認します。
WAFポリシー
WAFポリシーを作成します。既存のポリシーがある場合にはカスタムルールの作成まで読み飛ばしてください。また、その場合はWAFポリシーを開き、カスタムルールを追加します。
以下はApplication Gatewayに適用する場合の設定です。
- 次に対するポリシー:リージョンのWAF(Application Gateway)
- ポリシー名:任意
- 場所:任意
- ポリシーモード:検出(作成後、手動で防止に変更します)
管理されているルールは変更なし
ポリシーの設定は変更なし
カスタムルールを追加します。
- カスタムルール名:任意
- 優先度:10(1~100で任意)
条件によりGeoフィルタリングを行います。
- 一致の種類:geoロケーション
- 一致変数:RemteAddr
操作には「次である」(一致する国をアクセス拒否)、「次ではない」(一致する国以外の国をアクセス拒否)
国または地域を選択します。
トラフィックを拒否する
国、地域を選択します。
Application Gatewayと関連付けを行います。
Application Gatewayを選択します。
警告が出る場合には、現在の構成と・・・にチェックします。
関連付けが行えたことを確認できます。
あとは、ポリシーの作成を行います。
次に、関連付けたWAFのポリシーを防止モードにします。これを忘れるとGeoフィルタリングされません。
WAFポリシーを開きます。概要の上部から防止モードに切り替えます。
以上で設定、作成でGeoフィルタリングの設定は完了です。
確認
実際に日本からのアクセスを拒否しているか確認します。
VPNを利用して明示的に日本からのアクセスを行っています。
HTTPレスポンス 403でアクセスが拒否されていることが分かります。
VPNで明示的にアメリカからのアクセスに変更するとアクセスが行えていることが分かります。
以上で、Geoフィルタリングの確認作業は完了です。
まとめ
Application GatewayでのGeoフィルタリングの方法を解説しました。情勢や、法律といった問題でGeoフィルタリングを行う機会は今後増えてくるのではと予想されます。
AzureではFront DoorやApplication Gatewayなどで、簡単にGeoフィルタリングを行うことが出来ます。既存の環境にも追加することができるので試してみてはいかがでしょうか。