既定では、規則が一致したために Azure Front Door Web Application Firewall (WAF) が要求をブロックすると、"要求がブロックされました" というメッセージを含む 403 状態コードが返されます。既定のメッセージには、要求の ログ エントリ へのリンクに使用される追跡参照文字列も含まれます。
この記事では、Azure portal、PowerShell、または Azure CLI を使用して、ユース ケースの参照文字列を使用してカスタム応答状態コードとカスタム メッセージを構成する方法について説明します。
[前提条件]
アクティブなサブスクリプションを持つ Azure アカウント。
無料でアカウントを作成できます。
Azure Cloud Shell または Azure PowerShell。
この記事の手順では、Azure Cloud Shell で Azure PowerShell コマンドレットを対話型で実行します。 Cloud Shell でコマンドレットを実行するには、コード ブロックの右上隅にある [Cloud Shell を開く] を選択します。
[コピー] を選択してコードをコピーし、続いて Cloud Shell に貼り付けて実行します。 Azure portal 内から Cloud Shell を実行することもできます。
また、Azure PowerShell をローカルにインストールしてコマンドレットを実行することもできます。 この記事では、Azure PowerShell モジュールが必要です。 PowerShell をローカルで実行している場合は、Connect-AzAccount コマンドレットを使用して Azure にサインインします。
アクティブなサブスクリプションを持つ Azure アカウント。
無料でアカウントを作成できます。
Azure Cloud Shell または Azure CLI。
この記事の手順では、Azure Cloud Shell で Azure CLI コマンドを対話型で実行します。 Cloud Shell でコマンドを実行するには、コード ブロックの右上隅にある [Cloud Shell を開く] を選択します。
[コピー] を選択してコードをコピーし、Cloud Shell に貼り付けて実行します。 Azure portal 内から Cloud Shell を実行することもできます。
また、Azure CLI をローカルにインストールしてコマンドを実行することもできます。 この記事では、Azure CLI バージョン 2.67.0 以降と フロント ドア 拡張機能が必要です。
az --version コマンドを実行して、インストールされているバージョンを確認します。 Azure CLI をローカルで実行する場合は、az login コマンドを使用して Azure にサインインします。
応答状態コードと本文をカスタマイズするには、次の手順に従います。
Azure portal で Front Door WAF ポリシーに移動します。
[ 設定] で、[ ポリシー設定] を選択します。
[応答の状態コードをブロックする] ボックスと [応答本文をブロックする] ボックスに、それぞれカスタム 応答状態コード と 応答本文 を入力します。
保存 を選択します。
応答状態コードと本文をカスタマイズするには、 Update-AzFrontDoorWafPolicy コマンドレットを 使用します。
# Update WAF policy settings to customize response body and status code
Update-AzFrontDoorWafPolicy `
-Name 'myWAFPolicy' `
-ResourceGroupName 'myResourceGroup' `
-RequestBodyCheck 'Enabled' `
-RedirectUrl 'https://learn.microsoft.com/en-us/azure/web-application-firewall/' `
-CustomBlockResponseStatusCode '403' `
-CustomBlockResponseBody '<html><head><title>WAF Demo</title></head><body><p><h1><strong>WAF Custom Response Page</strong></h1></p><p>Please contact us with this information:<br>{{azure-ref}}</p></body></html>'
応答状態コードと本文をカスタマイズするには、 az network front-door waf-policy update コマンドを 使用します。
# Update WAF policy settings to customize response body and status code
az network front-door waf-policy update \
--name 'myWAFPolicy' \
--resource-group 'myResourceGroup' \
--request-body-check 'Enabled' \
--redirect-url 'https://learn.microsoft.com/en-us/azure/web-application-firewall/' \
--custom-block-response-status-code '403' \
--custom-block-response-body 'PGh0bWw+PGhlYWQ+PHRpdGxlPldBRiBEZW1vPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+PGgxPjxzdHJvbmc+V0FGIEN1c3RvbSBSZXNwb25zZSBQYWdlPC9zdHJvbmc+PC9oMT48L3A+PHA+UGxlYXNlIGNvbnRhY3QgdXMgd2l0aCB0aGlzIGluZm9ybWF0aW9uOjxicj57e2F6dXJlLXJlZn19PC9wPjwvYm9keT48L2h0bWw+'
注
--custom-block-response-body
パラメーターの値は、base64 でエンコードされた文字列である必要があります。
前の例では、応答コードは 403 として保持され、次のカスタム メッセージが表示されました。"この情報を使用して、お問い合わせください。"
注
{{azure-ref}}
は、応答本文に一意の参照文字列を挿入します。 この値は FrontDoorAccessLog
および FrontDoorWebApplicationFirewallLog
ログの TrackingReference フィールドと一致します。
重要
ブロック応答本文を空白のままにすると、WAF は通常の WAF ブロックに対して 403 Forbidden 応答を返し、レート制限ブロックに対しては 429 リクエストが多すぎます を返します。
次のステップ