概要
AzureのApplication GatewayのWAF構成(レガシWAF)が2027年03月15日に廃止されるとマイクロソフトから2022年10月にアナウンスがありました。
このEOLに対応するため、WAF構成(レガシWAF) の Application Gateway(WAF_v2) が存在するか、社内のAzureリソースを調査した所、複数存在しているという事が判明しました。
本件に対応するため、PowerShell、またはAzure CLI(azコマンド)を用いたWAF構成(レガシWAF)からWAFポリシーへ関連付けを変更する手順をご紹介します。
前提
- PowerShell、またはAzure CLI(azコマンド)を使用するため、自身の環境でセットアップしてください。
- 既存のリソースと同じリソースグループに展開してください。
- リソース内部の各種名称や各種設定については既存リソースを踏襲等、適宜変更してください。
- 記載しているコマンドと既存リソースに差異がある場合はコマンド or オプションを適宜変更してください。
PowerShell
1. サブスクリプションへの接続
Connect-AzAccount -Subscription <SUBSCRIPTION_ID> -UseDeviceAuthentication
2. MS公式手順
PowerShellスクリプトを使用した公式アップグレード手順がMSのサイトで公開されています。
Azure PowerShell を使用して Web Application Firewall ポリシーをアップグレードする
3. 動作確認
アプリケーション側の観点で動作確認を実施
Azure CLI(azコマンド)
1. テナントへのログイン
対象のテナントにCLIからログイン。
az login --tenant <TENANT_NAME> (例: <テナント名>.onmicrosoft.com)
2. WAFポリシーの作成
既存のWAF構成(レガシWAF)のルールセットやバージョンを踏襲。
az network application-gateway waf-policy create \
--name <POLICY_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--type <WAF_RULE_SET_NAME> \
--version <WAF_RULE_SET_VERSION>
3. WAFポリシーの特定のルールを無効化
既存のWAF構成(レガシWAF)のルールを踏襲。
az network application-gateway waf-policy managed-rule rule-set update \
--policy-name <POLICY_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--type <WAF_RULE_SET_NAME> \
--version <WAF_RULE_SET_VERSION> \
--group-name <WAF_RULE_GROUP_NAME> \
--rule rule-id=<WAF_RULE_ID> \
rule-id=<WAF_RULE_ID> \
rule-id=<WAF_RULE_ID> \ ...
4. WAFポリシーの防御モードとリクエストボディチェックの有効化
既存のWAF構成(レガシWAF)の防御モードとリクエストボディチェックを踏襲。
az network application-gateway waf-policy policy-setting update \
--policy-name <POLICY_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--mode <MODE> \
--request-body-check REQUEST_BODY_CHECK \
--state <STATE>
5. WAFポリシーの除外を追加
既存のWAF構成(レガシWAF)の除外を踏襲。
az network application-gateway waf-policy managed-rule exclusion add \
--policy-name <POLICY_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--match-operator <MATCH_OPERATOR> \
--match-variable <MATCH_VARIABLE> \
--selector <SELECTOR>
6. WAFポリシーの関連付けを変更
WAFポリシーの関連付けと同時に既存のWAF構成(レガシWAF)のパラメーター(webApplicationFirewallConfiguration)を削除
az network application-gateway update \
--name <APPLICATION_GATEWAY_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--set firewallPolicy.id=<WAF_POLICY_RESOURCE_ID> \
--remove webApplicationFirewallConfiguration
7. 動作確認
アプリケーション側の観点で動作確認を実施