チュートリアル: Azure Front Door と Azure Web Application Firewall (WAF) を使用して、Web アプリケーションをすばやくスケーリングし保護する
重要
Azure Front Door (クラシック) は、2027 年 3 月 31 日に廃止されます。 サービスの中断を回避するには、2027 年 3 月までに Azure Front Door の Standard または Premium レベルに Azure Front Door (クラシック) プロファイルを移行することが重要です。 詳細については、Azure Front Door (クラシック) の廃止に関するページを参照してください。
Web アプリケーションでは、トラフィックの急増や、サービス拒否攻撃 (DoS) などの悪意ある攻撃が頻発します。 Azure Front Door を Azure WAF とともに使用すると、アプリケーションをスケーリングし、そのような脅威から保護するのに役立ちます。 このチュートリアルでは、任意の Web アプリ (実行されているのが Azure の内部でも外部でも) 向けに Azure WAF を使用した Azure Front Door を構成する方法について説明します。
このチュートリアルでは、Azure CLI を使用します。 Azure portal、Azure PowerShell、Azure Resource Manager、Azure REST API を使用することもできます。
このチュートリアルで学習する内容は次のとおりです。
- Front Door を作成する。
- Azure WAF ポリシーを作成する。
- WAF ポリシーに対するルール セットを構成する。
- WAF ポリシーと Front Door を関連付ける。
- カスタム ドメインを構成する。
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
前提条件
このチュートリアルでは、Azure CLI を使用します。 Azure CLI の概要。
ヒント
Azure Cloud Shell で Bash を使用すると、Azure CLI を手軽に使い始めることができます。
Azure CLI に
front-door
拡張機能を追加するようにしてください。az extension add --name front-door
Note
このチュートリアルで使用するコマンドの詳細については、「Front Door 用の Azure CLI のリファレンス」を参照してください。
Azure Front Door リソースを作成する
az network front-door create --backend-address <backend-address> --accepted-protocols <protocols> --name <name> --resource-group <resource-group>
--backend-address
: 保護対象アプリケーションの完全修飾ドメイン名 (FQDN)。例えば、myapplication.contoso.com
。--accepted-protocols
: Azure Front Door でサポートされているプロトコル。例えば、--accepted-protocols Http Https
。--name
: Azure Front Door リソースの名前。--resource-group
: この Azure Front Door リソースのリソース グループ。 詳細については、「リソース グループの管理」を参照してください。
後で必要になるため、応答の hostName
値をメモしておいてください。 hostName
は、Azure Front Door リソースの DNS 名です。
Azure Front Door 用の Azure WAF プロファイルを作成する
az network front-door waf-policy create --name <name> --resource-group <resource-group> --disabled false --mode Prevention
--name
: 新しい Azure WAF ポリシーの名前。--resource-group
: この WAF リソースのリソース グループ。
前述のコマンドでは、防止モードで WAF ポリシーが作成されます。
Note
まず検出モードで WAF ポリシーを作成し、悪意のある要求をブロックせずに監視しログしてから、防止モードに切り替えることを検討してください。
後で必要になるため、応答の ID
値をメモしておいてください。 ID
の形式は次のとおりです。
/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/<WAF-policy-name>
WAF ポリシーにマネージド ルール セットを追加する
既定のルール セットを追加します。
az network front-door waf-policy managed-rules add --policy-name <policy-name> --resource-group <resource-group> --type DefaultRuleSet --version 1.0
ボット保護ルール セットを追加します。
az network front-door waf-policy managed-rules add --policy-name <policy-name> --resource-group <resource-group> --type Microsoft_BotManagerRuleSet --version 1.0
--policy-name
: Azure WAF リソースの名前。--resource-group
: WAF リソースのリソース グループ。
WAF ポリシーと Azure Front Door リソースを関連付ける
az network front-door update --name <name> --resource-group <resource-group> --set frontendEndpoints[0].webApplicationFirewallPolicyLink='{"id":"<ID>"}'
--name
: Azure Front Door リソースの名前。--resource-group
: Azure Front Door リソースのリソース グループ。--set
:frontendEndpoint
のWebApplicationFirewallPolicyLink
属性を新しい WAF ポリシー ID で更新します。
Note
カスタム ドメインを使用していない場合は、次のセクションをスキップできます。 Azure Front Door リソースを作成したときに取得した hostName
を顧客に提供します。
Web アプリケーションのカスタム ドメインを構成する
DNS レコードを更新して、カスタム ドメインを Azure Front Door hostName
に指定します。 具体的な手順については、DNS サービス プロバイダーのドキュメントを参照してください。 Azure DNS を使用する場合は、「DNS レコードを更新する」を参照してください。
ゾーン頂点ドメイン (例えば、contoso.com) には、Azure DNS とそのエイリアス レコードの種類を使用します。
Azure Front Door の構成を更新して、カスタム ドメインを追加します。
カスタム ドメインで HTTPS を有効にするには、Azure Front Door で証明書を設定する必要があります。
Web アプリケーションをロック ダウンする
Azure Front Door のエッジのみが Web アプリケーションと通信できるようにします。 「バックエンドへのアクセスを Azure Front Door のみにロックする方法」を参照してください。
リソースをクリーンアップする
リソース グループ、Front Door、WAF ポリシーが不要になったら、それらを削除します。
az group delete --name <resource-group>
--name
: このチュートリアルで使用したすべてのリソースのリソース グループの名前。
次のステップ
Azure Front Door のトラブルシューティングは、次を参照してください。