次の方法で共有


ILB App Service Environment を Azure Application Gateway と統合する

App Service Environment は、ユーザーの Azure 仮想ネットワークのサブネットに Azure App Service をデプロイしたものです。 アプリへのアクセスには、外部エンドポイントまたは内部エンドポイントを使用してデプロイできます。 内部エンドポイントを使用した App Service Environment のデプロイは、内部ロード バランサー (ILB) App Service Environment と呼ばれます。

Web アプリケーション ファイアウォール は、着信する Web トラフィックを検査して、SQL インジェクション、クロスサイト スクリプティング、マルウェアのアップロード、アプリケーション DDoS、およびその他の攻撃をブロックすることにより、Web アプリケーションのセキュリティを確保するのに役立ちます。 Azure Marketplace から WAF デバイスを取得することも、Azure Application Gateway を使用することもできます。

Azure Application Gateway は、レイヤー 7 負荷分散、TLS オフロード、および Web アプリケーション ファイアウォール (WAF) 保護を提供する仮想アプライアンスです。 これは、パブリック IP アドレスでリッスンし、トラフィックをアプリケーション エンドポイントにルーティングします。 以下では、WAF で構成されたアプリケーション ゲートウェイを ILB App Service Environment のアプリと統合する方法について説明します。

アプリケーション ゲートウェイと ILB App Service Environment の統合は、アプリ レベルで行われます。 アプリケーション ゲートウェイを ILB App Service Environment で構成する場合、ILB App Service Environment の特定のアプリに対して行うことになります。

高レベルの統合図のスクリーンショット

このチュートリアルでは次を行います。

  • Azure Application Gateway を作成します。
  • ILB App Service Environment 上のアプリを指すようにアプリケーション ゲートウェイを構成します。
  • アプリケーション ゲートウェイを指すパブリック DNS ホスト名を編集します。

前提条件

アプリケーション ゲートウェイを ILB App Service Environment と統合するには、次のものが必要です。

  • ILB App Service Environment。
  • ILB App Service Environment のプライベート DNS ゾーン。
  • ILB App Service Environment で実行するアプリ。
  • アプリケーション ゲートウェイのパブリック DNS 名。
  • アプリケーション ゲートウェイに TLS 暗号化を使用する必要がある場合は、アプリケーション ゲートウェイにバインドするために使用される有効な公開証明書が必要です。

ILB App Service Environment

ILB App Service Environment を作成する方法の詳細については、「Azure portal で App Service Environment を作成する」および「Azure Resource Manager テンプレートを使用して App Service Environment を作成する」を参照してください。

  • ILB App Service Environment が作成されると、既定のドメインは <YourAseName>.appserviceenvironment.net となります。

    ILB App Service Environment の概要を示すスクリーンショット。

  • 内部ロードバランサーは、受信アクセス用にプロビジョニングされます。 受信アドレスは、[App Service Environment 設定] の IP アドレスで確認できます。 この IP アドレスにマップされたプライベート DNS ゾーンは、後で作成できます。

    ILB App Service Environment の IP アドレス設定から受信アドレスを取得するスクリーンショット。

プライベート DNS ゾーン

内部的な名前解決には、プライベート DNS ゾーンが必要です。 次の表に示すレコード セットを使用して App Service Environment 名を使用して作成します (手順については、「クイックスタート - Azure portal を使用して Azure プライベート DNS ゾーンを作成する」を参照してください)。

名前 Type
* A App Service Environment の受信アドレス
@ A App Service Environment の受信アドレス
@ SOA App Service Environment の DNS 名
*.scm A App Service Environment の受信アドレス

ILB App Service Environment 上の App Service

ILB App Service Environment で App Service プランとアプリを作成する必要があります。 ポータルでアプリを作成するときに、ILB App Service Environment を [リージョン] として選択します。

アプリケーション ゲートウェイへのパブリック DNS 名

インターネットからアプリケーション ゲートウェイに接続するには、ルーティング可能なドメイン名が必要です。 この例では、ルーティング可能なドメイン名 asabuludemo.com を使用し、このドメイン名 app.asabuludemo.com を使用して App Service に接続する計画を立てました。 このアプリ ドメイン名にマップされた IP アドレスは、アプリケーション ゲートウェイの作成後に Application Gateway のパブリック IP アドレスに設定する必要があります。 アプリケーション ゲートウェイにマップされたパブリック ドメインでは、App Service でカスタム ドメインを構成する必要はありません。 App Service ドメインを使用してカスタム ドメイン名を購入できます。

有効なパブリック証明書

セキュリティを強化するために、セッションの暗号化に TLS 証明書をバインドします。 TLS 証明書をアプリケーション ゲートウェイにバインドするには、次の情報を含む有効な公開証明書が必要です。 App Service 証明書を使用して、TLS 証明書を購入し、.pfx 形式でエクスポートできます。

名前 説明
共通名 <yourappname>.<yourdomainname> (例: app.asabuludemo.com)
または *.<yourdomainname>、例: *.asabuludemo.com
アプリケーション ゲートウェイの標準証明書またはワイルドカード証明書
サブジェクトの別名 <yourappname>.scm.<yourdomainname> (例: app.scm.asabuludemo.com)
または *.scm.<yourdomainname>、例: *.scm.asabuludemo.com
App Service kudu Service に接続することを許可する SAN。 App Service kudu サービスをインターネットに発行しない場合は、省略可能な設定です。

証明書ファイルは秘密キーを持ち、.pfx 形式で保存する必要があります。 証明書は後でアプリケーション ゲートウェイにインポートされます。

アプリケーション ゲートウェイの作成

基本的なアプリケーション ゲートウェイの作成については、「チュートリアル: Azure portal を使用して Web アプリケーション ファイアウォールのあるアプリケーション ゲートウェイを作成する」を参照してください。

このチュートリアルでは、Azure portal を使用して、ILB App Service Environment でアプリケーション ゲートウェイを作成します。

Azure portal で、 [新規]>[ネットワーク]>[アプリケーション ゲートウェイ] を選択してアプリケーション ゲートウェイを作成します。

  1. 基本設定

    [レベル] ドロップダウン リストで、[Standard V2] または [WAF V2] を選択して、アプリケーション ゲートウェイで WAF 機能を有効にすることができます。

  2. フロントエンドの設定

    フロントエンド IP アドレスの種類に [パブリック][プライベート] 、または [両方] を選択します。 [プライベート] または [両方] に設定する場合、アプリケーション ゲートウェイ サブネットの範囲内に静的 IP アドレスを割り当てる必要があります。 この場合、パブリック エンドポイントにのみパブリック IP を設定します。

    • パブリック IP アドレス - アプリケーション ゲートウェイのパブリック アクセスにパブリック IP アドレスを関連付ける必要があります。 この IP アドレスを記録します。後で DNS サービスにレコードを追加する必要があります。

      アプリケーション ゲートウェイ フロントエンド設定からパブリック IP を取得する場面のスクリーンショット。

  3. バックエンド設定

    バックエンド プール名を入力し、 [ターゲットの種類][App Services] または [IP アドレスまたは FQDN] を選択します。 この場合、 [App Services] に設定し、ターゲット ドロップダウン リストから App Service 名を選択します。

    バックエンド設定でバックエンド プール名を追加したスクリーンショット。

  4. 構成設定

    [構成] 設定で、[ルーティング規則の追加] アイコンを選択して、ルーティング規則を追加する必要があります。

    構成設定にルーティング規則を追加したスクリーンショット。

    ルーティング規則で、リスナーバックエンド ターゲットを構成する必要があります。 HTTPS リスナーは、概念実証デプロイやセキュリティ強化のために追加できます。

    • HTTP プロトコルを使用してアプリケーション ゲートウェイに接続するには、次の設定を使用してリスナーを作成します。

      パラメーター 価値 説明
      規則の名前 例: http-routingrule ルーティング名
      リスナー名 例: http-listener リスナー名
      フロントエンド IP パブリック インターネット アクセスの場合は、[パブリック] に設定します
      Protocol HTTP TLS 暗号化を使用しない
      Port 80 既定の HTTP ポート
      リスナーの種類 マルチサイト アプリケーション ゲートウェイでマルチサイトのリッスンを許可する
      ホストの種類 複数またはワイルドカード リスナーの種類がマルチサイトに設定されている場合は、複数、またはワイルドカード Web サイト名に設定します。
      ホスト名 例: app.asabuludemo.com App Service のルーティング可能なドメイン名に設定します。

      アプリケーション ゲートウェイ ルーティング規則の HTTP リスナーのスクリーンショット。

    • TLS 暗号化を使用してアプリケーション ゲートウェイに接続するには、次の設定を使用してリスナーを作成します。

      パラメーター 価値 説明
      規則の名前 例: https-routingrule ルーティング名
      リスナー名 例: https-listener リスナー名
      フロントエンド IP パブリック インターネット アクセスの場合は、[パブリック] に設定します
      Protocol HTTPS TLS 暗号化を使用する
      ポート 443 既定の HTTPS ポート
      HTTPS 設定 証明書のアップロード CN と、.pfx 形式の秘密キーが含まれている証明書をアップロードします。
      リスナーの種類 マルチサイト アプリケーション ゲートウェイでマルチサイトのリッスンを許可する
      ホストの種類 複数またはワイルドカード リスナーの種類がマルチサイトに設定されている場合は、複数、またはワイルドカード Web サイト名に設定します。
      ホスト名 例: app.asabuludemo.com App Service のルーティング可能なドメイン名に設定します。

      アプリケーション ゲートウェイ ルーティング規則の HTTPS リスナー。

    • [バックエンド ターゲット][バックエンド プール][HTTP 設定] を構成する必要があります。 バックエンド プールは、前の手順で構成されました。 [新規追加] リンクを選択して、HTTP 設定を追加します。

      HTTP 設定を追加するための新しいリンクを追加する画面のスクリーンショット。

    • HTTP 設定を次の表に示します。

      パラメーター 価値 説明
      HTTP 設定名 例: https-setting HTTP 設定名
      バックエンド プロトコル HTTPS TLS 暗号化を使用する
      バックエンド ポート 443 既定の HTTPS ポート
      既知の CA 証明書を使用する はい ILB App Service Environment の既定のドメイン名は .appserviceenvironment.net です。 このドメインの証明書は、信頼された公開ルート証明機関によって発行されます。 [信頼されたルート証明書] 設定では、既知の CA の信頼されたルート証明書を使用するように設定できます。
      新しいホスト名でオーバーライドする はい ILB App Service Environment でアプリに接続すると、ホスト名ヘッダーが上書きされます
      [ホスト名の上書き] バックエンド ターゲットからホスト名を選択する バックエンド プールを App Service に設定する場合は、バックエンド ターゲットからホストを選択できます。
      カスタム プローブを作成する いいえ 既定の正常性プローブを使用する

      [HTTP 設定の追加] ダイアログのスクリーンショット。

アプリケーション ゲートウェイと ILB App Service Environment の統合を構成する

アプリケーション ゲートウェイから ILB App Service Environment にアクセスするには、プライベート DNS ゾーンへの仮想ネットワーク リンクがあるかどうかを確認する必要があります。 アプリケーション ゲートウェイの仮想ネットワークに関連付けられた仮想ネットワークがない場合は、次の手順で仮想ネットワーク リンクを追加します。

  • プライベート DNS ゾーンとの仮想ネットワーク リンクを構成するには、プライベート DNS ゾーンの構成プレーンにアクセスします。 [仮想ネットワークのリンク]>[追加] を選択します

プライベート DNS ゾーンに仮想ネットワーク リンクを追加します。

  • [リンク名] を入力し、アプリケーション ゲートウェイが存在する各サブスクリプションと仮想ネットワークを選択します。

プライベート DNS ゾーンの仮想ネットワーク リンク設定に対する入力リンク名の詳細のスクリーンショット。

  • バックエンドの正常性状態は、アプリケーション ゲートウェイプレーンでバックエンドの正常性状態から確認できます。

バックエンドの正常性状態からバックエンドの正常性状態を確認するスクリーンショット。

パブリック DNS レコードを追加する

インターネットからアプリケーション ゲートウェイにアクセスする場合は、適切な DNS マッピングを構成する必要があります。

  • アプリケーション ゲートウェイのパブリック IP アドレスは、アプリケーション ゲートウェイ プレーンのフロントエンド IP 構成にあります。

アプリケーション ゲートウェイのフロントエンド IP アドレスは、フロントエンド IP 構成にあります。

  • Azure DNS サービスを使用する例として、レコード セットを追加して、アプリケーションのドメイン名をアプリケーション ゲートウェイのパブリック IP アドレスにマップすることができます。

アプリのドメイン名をアプリケーション ゲートウェイのパブリック IP アドレスにマップするためのレコード セットを追加するスクリーンショット。

接続の検証

  • インターネットからのコンピューター アクセスで、アプリケーション ドメイン名の名前解決をアプリケーション ゲートウェイのパブリック IP アドレスに対して確認できます。

コマンド プロンプトから名前解決を検証します。

  • インターネットからのコンピューター アクセスで、ブラウザーから Web アクセスをテストします。

ブラウザーを開き、Web にアクセスするときのスクリーンショット。