Azure Web アプリケーション ファイアウォールに対するカスタム応答を構成する

この記事では、Azure Web Application Firewall が要求をブロックした場合のカスタム応答ページを構成する方法を説明しています。

既定では、一致するルールのために Azure Web Application Firewall が要求をブロックすると、"要求はブロックされました" というメッセージとともに 403 状態コードが返されます。既定のメッセージには、要求のログ エントリへのリンクに使用される追跡参照文字列も含まれます。 ユース ケースの参照文字列を使用して、カスタム応答状態コードとカスタム メッセージを構成することができます。

ポータルを使用してカスタム応答状態コードとメッセージを構成する

カスタム応答状態コードと本文は、Azure Web Application Firewall ポータルの [ポリシー設定] で構成できます。

Azure Web Application Firewall のポリシー設定を示すスクリーンショット。

先の例では、応答コードを 403 のままにして、次の図に示すように簡単な "Please contact us" (お問い合わせください) メッセージを構成しました。

カスタム応答の例を示すスクリーンショット。

"{{azure-ref}}" によって、応答本文に一意の参照文字列が挿入されます。 この値は FrontDoorAccessLog および FrontDoorWebApplicationFirewallLog ログの TrackingReference フィールドと一致します。

"{{azure-ref}}" によって、応答本文に一意の参照文字列が挿入されます。 この値は FrontdoorAccessLog および FrontdoorWebApplicationFirewallLog ログの TrackingReference フィールドと一致します。

PowerShell を使用してカスタム応答状態コードとメッセージを構成する

PowerShell を使用してカスタム応答状態コードとメッセージを構成するには、次の手順に従います。

PowerShell 環境をセットアップする

Azure PowerShell には、Azure リソースの管理に Azure Resource Manager モデルを使う一連のコマンドレットが用意されています。

Azure PowerShell をローカル コンピューターにインストールして、すべての PowerShell セッションで使用することができます。 ページの手順に従って Azure の資格情報を使ってサインインします。 次に、Az PowerShell モジュールをインストールします。

サインインのための対話型ダイアログを使用して Azure に接続する

Connect-AzAccount
Install-Module -Name Az

最新バージョンの PowerShellGet がインストールされていることを確認します。 次のコマンドを実行したら、PowerShell を再度開きます。

Install-Module PowerShellGet -Force -AllowClobber

Az.FrontDoor モジュールのインストール

Install-Module -Name Az.FrontDoor

リソース グループを作成する

Azure で、関連するリソースをリソース グループに割り当てます。 ここでは、New-AzResourceGroup を使用してリソース グループを作成します。

New-AzResourceGroup -Name myResourceGroupWAF

カスタム応答が設定された新しい WAF ポリシーの作成

次の例は、New-AzFrontDoorWafPolicy を使用して、405 に設定されたカスタム応答状態コードと "You are blocked" というメッセージを含む新しい Web アプリケーション ファイアウォール (WAF) ポリシーを作成する方法を示しています。

# WAF policy setting
New-AzFrontDoorWafPolicy `
-Name myWAFPolicy `
-ResourceGroupName myResourceGroupWAF `
-EnabledState enabled `
-Mode Detection `
-CustomBlockResponseStatusCode 405 `
-CustomBlockResponseBody "<html><head><title>You are blocked.</title></head><body></body></html>"

Update-AzFrontDoorFireWallPolicy を使用して、既存の WAF ポリシーのカスタム応答コードまたは応答本文の設定を変更します。

# modify WAF response code
Update-AzFrontDoorFireWallPolicy `
-Name myWAFPolicy `
-ResourceGroupName myResourceGroupWAF `
-EnabledState enabled `
-Mode Detection `
-CustomBlockResponseStatusCode 403
# modify WAF response body
Update-AzFrontDoorFireWallPolicy `
-Name myWAFPolicy `
-ResourceGroupName myResourceGroupWAF `
-CustomBlockResponseBody "<html><head><title>Forbidden</title></head><body>{{azure-ref}}</body></html>"

次のステップ

Azure Front Door 上の Azure Web Application Firewall について説明します。