App Service 環境の Web アプリケーション ファイアウォール (WAF) を構成するConfiguring a Web Application Firewall (WAF) for App Service Environment

概要Overview

Web アプリケーション ファイアウォール (WAF) は、着信する Web トラフィックを検査して、SQL インジェクション、クロスサイト スクリプティング、マルウェアのアップロード、アプリケーション DDoS、およびその他の攻撃をブロックすることにより、Web アプリケーションのセキュリティを確保するのに役立ちます。Web application firewalls (WAF) help secure your web applications by inspecting inbound web traffic to block SQL injections, Cross-Site Scripting, malware uploads & application DDoS and other attacks. さらに、データ損失防止 (DLP) のためにバックエンド Web サーバーからの応答を検査することもできます。They also inspect the responses from the back-end web servers for Data Loss Prevention (DLP). App Service 環境が提供する分離と追加スケーリングと組み合わせることで、悪意のある要求と大量のトラフィックに対処する必要がある、ビジネスに不可欠な Web アプリケーションをホストする理想的な環境が用意されます。Combined with the isolation and additional scaling provided by App Service Environments, this provides an ideal environment to host business critical web applications that need to withstand malicious requests and high volume traffic. Azure では、Application Gateway で WAF 機能が提供されます。Azure provides a WAF capability with the Application Gateway. App Service Environment と Application Gateway を統合する方法については、ILB ASE と Application Gateway の統合に関するドキュメントを参照してください。To see how to integrate your App Service Environment with an Application Gateway read the Integrate your ILB ASE with an Application Gateway document.

Azure Application Gateway に加えて、Azure 用 Barracuda WAF のように Azure Marketplace で入手できるマーケットプレース オプションがいくつかあります。In addition to the Azure Application Gateway, there are multiple marketplace options like the Barracuda WAF for Azure that are available on the Azure Marketplace. このドキュメントの残りの部分では、App Service Environment と Barracuda WAF デバイスを統合する方法について説明します。The rest of this document focuses on how to integrate your App Service Environment with a Barracuda WAF device.

注意

この記事は、Web アプリについて言及していますが、API アプリとモバイル アプリにも適用されます。Although this article refers to web apps, it also applies to API apps and mobile apps.

セットアップSetup

このドキュメントでは、複数の負荷分散されたBarracuda WAF インスタンスの背後に App Service 環境を構成して、WAF からのトラフィックのみが App Service 環境に到着でき、DMZ からアクセスできないようにします。For this document, we configure the App Service Environment behind multiple load balanced instances of Barracuda WAF so that only traffic from the WAF can reach the App Service Environment and it is not accessible from the DMZ. さらに、Azure Traffic Manager を Barracuda WAF インスタンスの前に配置して、Azure のデータセンターとリージョン全体で負荷が分散されるようにします。We also have Azure Traffic Manager in front of the Barracuda WAF instances to load balance across Azure data centers and regions. 設定の概要図は次のようになります。A high-level diagram of the setup would look like the following image:

この図は、Web Application Firewall のインスタンスに接続するオプションの Azure Traffic Manager を示しています。その接続先のネットワーク ACL では、2 つのリージョンの Web、API、Mobile Apps を含んだ App Service Environment 内のファイアウォールからのトラフィックのみが許可されます。

注意

App Service 環境での ILB のサポートの導入により、ASE を DMZ からアクセスできないように設定し、プライベート ネットワークでのみ使用できるように構成することができます。With the introduction of ILB support for App Service Environment, you can configure the ASE to be inaccessible from the DMZ and only be available to the private network.

App Service 環境の構成Configuring your App Service Environment

App Service 環境の構成については、このテーマに関するドキュメントを参照してください。To configure an App Service Environment, refer to our documentation on the subject. App Service Environment を作成した後、その環境の中に Web Apps、API Apps、Mobile Apps を作成できます。これらはすべて、次のセクションで構成する WAF の背後で保護されます。Once you have an App Service Environment created, you can create Web Apps, API Apps, and Mobile Apps in this environment that will all be protected behind the WAF we configure in the next section.

Barracuda WAF クラウド サービスを構成するConfiguring your Barracuda WAF Cloud Service

Barracuda には、その WAF を Azure の仮想マシンにデプロイすることに関する 詳細な記事 があります。Barracuda has a detailed article on deploying its WAF on a virtual machine in Azure. ただし、これらの手順に従うときは、冗長性を持たせ、単一障害点の発生を防ぐために、少なくとも 2 つの WAF インスタンスの VM を同じクラウド サービスにデプロイします。But because we want redundancy and not introduce a single point of failure, you want to deploy at least two WAF instance VMs into the same Cloud Service when following these instructions.

クラウド サービスへのエンドポイントの追加Adding Endpoints to Cloud Service

2 つ以上の WAF VM インスタンスをクラウド サービスに用意した後、 Azure Portal を使用して、次の図に示すように、アプリケーションで使用される HTTP エンドポイントと HTTPS エンドポイントを追加できます。Once you have 2 or more WAF VM instances in your Cloud Service, you can use the Azure portal to add HTTP and HTTPS endpoints that are used by your application as shown in the following image:

エンドポイントを構成する

アプリケーションがその他のエンドポイントを使用する場合は、それも、この一覧に追加してください。If your applications use other endpoints, make sure to add them to this list as well.

管理ポータルを使用した Barracuda WAF の構成Configuring Barracuda WAF through its Management Portal

Barracuda WAF は、管理ポータルによる構成で TCP ポート 8000 を使用します。Barracuda WAF uses TCP Port 8000 for configuration through its management portal. WAF VM のインスタンスが複数ある場合は、ここに示す手順を VM インスタンスごとに繰り返す必要があります。If you have multiple instances of the WAF VMs, you need to repeat the steps here for each VM instance.

注意

WAF 構成が完了したら、WAF を安全に保つために、すべての WAF VM から TCP/8000 エンドポイントを削除してください。Once you are done with WAF configuration, remove the TCP/8000 endpoint from all your WAF VMs to keep your WAF secure.

次の図に示すように、管理エンドポイントを追加して、Barracuda WAF を構成します。Add the management endpoint as shown in the following image to configure your Barracuda WAF.

管理エンドポイントを追加する

ブラウザーを使用して、クラウド サービスの管理エンドポイントを参照します。Use a browser to browse to the management endpoint on your Cloud Service. クラウド サービスの名前が test.cloudapp.net の場合、http://test.cloudapp.net:8000 を参照して、そのエンドポイントにアクセスします。If your Cloud Service is called test.cloudapp.net, you would access this endpoint by browsing to http://test.cloudapp.net:8000. 次の図のようなログイン ページが表示されます。WAF VM の設定フェーズで指定した資格情報を使用してログインできます。You should see a login page like the following image that you can log in using credentials you specified in the WAF VM setup phase.

管理ログイン ページ

ログインすると、次の図のような、WAF 保護に関する基本的な統計情報を示すダッシュボードが表示されます。Once you log in, you should see a dashboard like the one in the following image that presents basic statistics about the WAF protection.

管理ダッシュボード

[サービス] タブをクリックして、保護対象のサービスの WAF を構成できます。Clicking on the Services tab lets you configure your WAF for services it is protecting. Barracuda WAF の構成の詳細については、そのドキュメントを参照してください。For more details on configuring your Barracuda WAF, see their documentation. 次の例では、HTTP と HTTPS でトラフィックを提供する App Service アプリが構成されています。In the following example, an App Service app serving traffic on HTTP and HTTPS has been configured.

管理ダッシュボードでサービスを追加する

注意

お客様の App Service 環境内でアプリケーションがどのように構成され、どのような機能が使用されているかに応じて、80 と 443 以外の TCP ポートに対するトラフィックを転送する必要があります (例: App Service アプリの IP TLS を設定している場合)。Depending on how your applications are configured and what features are being used in your App Service Environment, you need to forward traffic for TCP ports other than 80 and 443, for example, if you have IP TLS setup for an App Service app. App Service 環境で使用されるネットワーク ポートの一覧については、着信トラフィックの制御に関するドキュメントのネットワーク ポートのセクションを参照してください。For a list of network ports used in App Service Environments, see Control Inbound Traffic documentation's Network Ports section.

Microsoft Azure Traffic Manager の構成 (省略可能)Configuring Microsoft Azure Traffic Manager (OPTIONAL)

アプリケーションが複数のリージョンで使用できる場合は、 Azure Traffic Managerの背後でそれらの負荷を分散できます。If your application is available in multiple regions, then you would want to load balance them behind Azure Traffic Manager. これを行うには、次の図に示すように、Azure Portal で、WAF のクラウド サービス名を使用して、Traffic Manager プロファイルにエンドポイントを追加します。To do so, you can add an endpoint in the Azure portal using the Cloud Service name for your WAF in the Traffic Manager profile as shown in the following image.

Traffic Manager のエンドポイント

アプリケーションが認証を必要とする場合は、Traffic Manager がアプリケーションの使用可能性をチェックする ping を実行するための、認証を必要としないリソースがあることを確認します。If your application requires authentication, ensure you have some resource that doesn't require any authentication for Traffic Manager to ping for the availability of your application. 次の図に示すように、Azure Portal[構成] ページで URL を構成できます。You can configure the URL on the Configuration page in the Azure portal as shown in the following image:

Traffic Manager を構成する

Traffic Manager の ping を WAF からアプリケーションに転送するには、次の例に示すように、Barracuda WAF に Web サイト変換を設定して、トラフィックをアプリケーションに転送します。To forward the Traffic Manager pings from your WAF to your application, you need to set up Website Translations on your Barracuda WAF to forward traffic to your application as shown in the following example:

Web サイトの変換

App Service 環境へのトラフィックをネットワーク セキュリティ グループ (NSG) を使用して保護するSecuring Traffic to App Service Environment Using Network Security Groups (NSG)

App Service 環境へのトラフィックを、クラウド サービスの VIP アドレスを使用して WAF からのトラフィックだけに制限する方法の詳細については、 着信トラフィックの制御に関するドキュメント を参照してください。Follow the Control Inbound Traffic documentation for details on restricting traffic to your App Service Environment from the WAF only by using the VIP address of your Cloud Service. このタスクを TCP ポート 80 に対して実行するサンプル PowerShell コマンドを次に示します。Here's a sample PowerShell command for performing this task for TCP port 80.

Get-AzureNetworkSecurityGroup -Name "RestrictWestUSAppAccess" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP Barracuda" -Type Inbound -Priority 201 -Action Allow -SourceAddressPrefix '191.0.0.1'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP

SourceAddressPrefix を、WAF のクラウド サービスの仮想 IP アドレス (VIP) に置き換えます。Replace the SourceAddressPrefix with the Virtual IP Address (VIP) of your WAF's Cloud Service.

注意

クラウド サービスの VIP は、クラウド サービスを削除して再作成すると変更されます。The VIP of your Cloud Service changes when you delete and re-create the Cloud Service. これを行った場合は、ネットワーク リソース グループ内の IP アドレスを必ず更新してください。Make sure to update the IP address in the Network Resource group once you do so.