APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

1つのWAFからWebアプリごとにグローバルIPアドレスを制限する方法

はじめに

こんにちは。クラウド事業部の宇野です。

AzureのFrontDoorもしくはApplicationGatewayを利用して、複数のアプリを振り分けるケースがあると思います。
その際にアプリごとに接続可能なグローバルIPアドレスを制限するWAFの設定方法を説明していきます。

Azure WAFとは?

Azure WAF(Web Application Firewall)
SQL インジェクションなどの一般的な Web ハッキング手法や、クロスサイト スクリプティングなどのセキュリティ脆弱性から Web アプリを保護するクラウドネイティブ サービスです。

learn.microsoft.com

構成例

今回は例としてFrontDoorのリソースからAアプリとBアプリをそれぞれ異なるグローバルIPアドレスで制限する方法を紹介します。

image.png

事前準備

WAFのリソース作成

事前にWAFリソースを作成しておく必要があります。

■Application GatewayでWAFを作成する場合

learn.microsoft.com

■Front DoorでWAFを作成する場合

learn.microsoft.com

ドメイン名の確認

FrontDoorからAアプリとBアプリのそれぞれのWebアプリを呼んでいるドメイン名を確認しておきます。

image.png

設定方法の流れ

カスタムルールの作成

左メニューの「カスタムルール」を選択し、「カスタムルールの追加」ボタンをクリックします。

image.png

カスタムルールの設定(Aアプリ側)

カスタムルールを以下の通り設定します。

■1つ目の条件

  • 一致の種類:IPアドレス
  • 一致変数:SocketAddr
  • 演算:次の値を含まない
  • IPアドレスまたは範囲:Webアプリ「Aアプリ」に接続させたいグローバルIPアドレス

■2つ目の条件

  • 一致の種類:文字列
  • 一致変数:RequestUri
  • 演算:次の値に一致する
  • 演算子:次の値を含む
  • 一致する値:Webアプリ「Aアプリ」に紐づくFrontDoorのドメイン名

image.png

カスタムルールの設定(Bアプリ側)

カスタムルールを以下の通り設定します。

■1つ目の条件

  • 一致の種類:IPアドレス
  • 一致変数:SocketAddr
  • 演算:次の値を含まない
  • IPアドレスまたは範囲:Webアプリ「Bアプリ」に接続させたいグローバルIPアドレス

■2つ目の条件

  • 一致の種類:文字列
  • 一致変数:RequestUri
  • 演算:次の値に一致する
  • 演算子:次の値を含む
  • 一致する値:Webアプリ「Bアプリ」に紐づくFrontDoorのドメイン名

image.png

おわりに

WAFを初めて作成した際は「検知モード」になっていて先程設定したカスタムルールでブロックされない状態になっているので、「防止モード」に変更することは忘れないようにしましょう。

構成例を元に設定方法をご紹介しましたが、この情報がどなたかの参考になれば嬉しいです。
なにかあれば随時、情報を追記したり修正したりしようと思います。