GA された Azure Front Door Service で WAF 対策(パブリックプレビュー)を設定してみたよ

Azure

こんにちは。

Azure Front Door Service が GA されましたね。

Azure Front Door Service is now generally available | Microsoft Azure Blog
Every internet facing web application, whether serving a large audience or a small set of users in a single region, is b...

GA と同じ日に、WAF 機能のパブリックプレビューもアナウンスされたので、このサイトに設定してみました。

Web application firewall at Azure Front Door service | Microsoft Azure Blog
We have heard from many of you that security is a top priority when moving web applications onto the cloud. Today, we ar...

ちなみに、今回の設定は次のドキュメントに記載されています。

Configure WAF custom rules and the Default Rule Set for Azure Front Door
Learn how to configure a web application firewall (WAF) policy that consists of custom and managed rules for an existing...

 

設定してみた

Azure Front Door Service の WAF を設定する際の構成とかはひとまずおいておいて、こんな感じで設定してみました。

カスタムルールは、ひとまず後回しにして、今回は Azure-managed rule sets を Detection mode(検出モード)で設定してみました。

設定する前に、Az.FrontDoor モジュールのアップデートしました。
アップデートした後のバージョンは、0.73 です。

Connect-AzAccount

Install-Module PowerShellGet -Force -AllowClobber
Install-Module -Name Az.FrontDoor -Force

 

バージョン確認~

PS C:\WINDOWS\system32> get-module -Name  Az.FrontDoor

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     0.7.3      Az.FrontDoor                        {Disable-AzFrontDoorCustomDomainHttps, Enable-AzFrontDoorC...

あとは、ドキュメントに沿ってこんな感じのコマンドで設定しました。
変数に「2」がついてるあたりが、やり直しした感満載ですねw

PS C:\WINDOWS\system32> $managedRules = New-AzFrontDoorManagedRuleObject -Type DefaultRuleSet -Version "preview-0.1"

PS C:\WINDOWS\system32> $myWAFPolicy2=New-AzFrontDoorFireWallPolicy -Name mngpoldetect -ResourceGroupName memobogfd -ManagedRule $managedRules -EnabledState Enabled -Mode Detection

PS C:\WINDOWS\system32> $FrontDoorObjectExample = Get-AzFrontDoor -ResourceGroupName  memobogfd  -Name memobog

PS C:\WINDOWS\system32> $FrontDoorObjectExample[0].FrontendEndpoints[1].WebApplicationFirewallPolicyLink = $myWAFPolicy2.Id

PS C:\WINDOWS\system32> Set-AzFrontDoor -InputObject $FrontDoorObjectExample[0]

FrontendEndpoints[1] としているのは、Frontend hosts を複数設定している環境の2番目のに、今回作成した WAF のポリシーを適用したためです。
※ ドキュメントでは、[0]になってるはず~。

 

変数に 2 をついてるのは、最初は、Detection Mode ではなくて、Prevention Mode で設定したんですよねー。そしたら、このブログの編集を行うのも全部ブロックされちゃったのでDetection に変更しようと、Set-AzFrontDoorFireWallPolicy で変更しようとしたら、コマンドエラーになっちゃったんですよねー。

Az.FrontDoor を 0.73 にする前は動いていたと思うのですが、別に作って付け替えちゃえばいいのでってことで、こんな感じになりましたー。

 

WAF の設定の確認

WAF がちゃんと動いているかは、Azure Monitor の メトリックスの「WebApplicationFirewallRequestCount」で確認しました。

設定後ちゃんと数値が増えてるので、動作してるっぽい。


 

ちゃんと、ブロックされた時のログもでてますなー。(っていうか、ブロックされた時のスクショとっておけばよかった。。。)

 

監視およびログについては、以下のドキュメントに記載されてます。

Azure Web Application Firewall monitoring and logging
Learn about Azure Web Application Firewall in Azure Front Door monitoring and logging.

 

WAF のポリシーの設定の構成

自分の頭の整理のために、WAF のポリシーの設定時の構成についてまとめておきます。

ちょっとネストが深い気もするけど、一度ぶら下げたら、Front Door Service 側の変更をしなくてもいいから、これでいいような気も。。

まとめ

Azure Front Door サービスの GA は思ったよりも早かったなーって思いますが、もともと、MS のサービスで使われている分、こなれたサービスなんだろうなーって思います。

で、WAF も入ってきてサービスとして MVP の範囲がそろってきたのかなーって思います。

でも、Application Gateway V2 よりも、GA が早いとは思わなかったなぁー。

コメント

タイトルとURLをコピーしました