チュートリアル:Azure portal を使用して Web アプリケーション ファイアウォールのあるアプリケーション ゲートウェイを作成する
- [アーティクル]
-
-
このチュートリアルでは、Azure portal を使用して、Web アプリケーション ファイアウォール (WAF) のあるアプリケーション ゲートウェイを作成する方法を示します。 WAF は、OWASP ルールを使用してアプリケーションを保護します。 こうしたルールには、SQL インジェクション、クロスサイト スクリプティング攻撃、セッション ハイジャックなどの攻撃に対する保護が含まれます。 アプリケーション ゲートウェイを作成してから、それをテストして正しく動作していることを確認します。 Azure Application Gateway では、ポートにリスナーを割り当て、ルールを作成し、バックエンド プールにリソースを追加することによって、お客様のアプリケーション Web トラフィックを特定のリソースに転送します。 わかりやすくするために、このチュートリアルでは、パブリック フロントエンド IP、このアプリケーション ゲートウェイで単一サイトをホストするための基本リスナー、バックエンド プールに使用される 2 つの Linux 仮想マシン、および基本要求ルーティング規則を使用する簡単な設定を使用します。
このチュートリアルでは、以下の内容を学習します。
- WAF 対応のアプリケーション ゲートウェイの作成
- バックエンド サーバーとして使用される仮想マシンの作成
- ストレージ アカウントの作成と診断の構成
- アプリケーション ゲートウェイのテスト
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
Azure portal にサインインします。
Azure portal の左側のメニューにある [リソースの作成] を選択します。 [リソースの作成] ウィンドウが表示されます。
[ネットワーク] を選択し、[人気の Azure サービス] の一覧から [Application Gateway] を選択します。
[基本] タブで、次のアプリケーション ゲートウェイの設定に以下の値を入力します。
[リソース グループ] :リソース グループには、myResourceGroupAG を選択します。 存在しない場合は、 [新規作成] を選択して作成します。
[アプリケーション ゲートウェイ名] :アプリケーション ゲートウェイの名前として「myAppGateway」と入力します。
[レベル] : [WAF V2] を選択します。
[WAF ポリシー]: [新規作成] を選択し、新しいポリシーの名前を入力して [OK] を選択します。
マネージド コア ルール セット (CRS) を含む基本の WAF ポリシーが作成されます。
お客様が作成するリソースの間で Azure による通信が行われるには、仮想ネットワークが必要です。 新しい仮想ネットワークを作成することも、既存の仮想ネットワークを使用することもできます。 この例では、アプリケーション ゲートウェイの作成と同時に新しい仮想ネットワークを作成します。 Application Gateway インスタンスは、個別のサブネットに作成されます。 この例では 2 つのサブネットを作成します。1 つはアプリケーション ゲートウェイ用で、後でバックエンド サーバー用を 1 つ追加します。
[仮想ネットワークの構成] で、[新規作成] を選択して新しい仮想ネットワークを作成します。 [仮想ネットワークの作成] ウィンドウが開いたら、次の値を入力して、仮想ネットワークとサブネットを作成します:
Name:仮想ネットワークの名前として「myVNet」と入力します。
アドレス空間: 10.0.0.0/16 アドレスの範囲を受け入れます。
[サブネット名] (Application Gateway サブネット): [サブネット] エリアには、既定 という名前のサブネットが表示されます。 このサブネットの名前を myAGSubnet に変更し、既定の IPv4 アドレス範囲 10.0.0.0/24 のままにします。
アプリケーション ゲートウェイ サブネットには、アプリケーション ゲートウェイのみを含めることができます。 その他のリソースは許可されません。
[OK] を選択して [仮想ネットワークの作成] ウィンドウを閉じ、仮想ネットワークの設定を保存します。
[基本] タブで、その他の設定の既定値をそのまま使用し、 [次へ:フロントエンド] を選択します。
[フロントエンド] タブで、 [フロントエンド IP アドレスの種類] が [パブリック] に設定されていることを確認します。
ユース ケースに従って、フロントエンド IP を [パブリック] または [両方] に設定できます。 この例では、パブリック フロントエンド IP を選びます。
注意
Application Gateway v2 SKU では、[パブリック] と [両方] のフロントエンド IP アドレスの種類が現在サポートされています。 [プライベート] フロントエンド IP 構成のみは、現在サポートされていません。
[パブリック IP アドレス] として [新規追加] を選択し、パブリック IP アドレス名として「myAGPublicIPAddress」と入力し、 [OK] を選択します。
バックエンド を選択します。
バックエンド プールは、要求を処理するバックエンド サーバーに要求をルーティングするために使用されます。 バックエンド プールは、NIC、仮想マシン スケール セット、パブリック IP、内部 IP、完全修飾ドメイン名 (FQDN)、および Azure App Service などのマルチテナント バックエンドで構成できます。 この例では、アプリケーション ゲートウェイを使用して空のバックエンド プールを作成した後、バックエンド ターゲットをバックエンド プールに追加します。
[バックエンド] タブで、 [バックエンド プールの追加] を選択します。
開いた [バックエンド プールの追加] ウィンドウで、次の値を入力して空のバックエンド プールを作成します。
- Name:バックエンド プールの名前として「myBackendPool」と入力します。
- [ターゲットを持たないバックエンド プールを追加します] : [はい] を選択して、ターゲットを持たないバックエンド プールを作成します。 アプリケーション ゲートウェイを作成した後で、バックエンド ターゲットを追加します。
[バックエンド プールの追加] ウィンドウで、 [追加] を選択してバックエンド プールの構成を保存し、 [バックエンド] タブに戻ります。
[バックエンド] タブで、 [次へ:構成] を選択します。
[構成] タブで、ルーティング規則を使用して作成したフロントエンドとバックエンド プールを接続します。
[ルーティング規則] 列で [ルーティング規則の追加] を選択します。
開いた [ルーティング規則の追加] ウィンドウで、 [規則名] に「myRoutingRule」と入力します。
[優先度] に、優先度番号を入力します。
ルーティング規則にはリスナーが必要です。 [ルーティング規則の追加] ウィンドウ内の [リスナー] タブで、リスナーの次の値を入力します。
[リスナー名] :リスナーの名前として「myListener」と入力します。
フロントエンド IP プロトコル: [パブリック IPv4] を選択して、フロントエンド用に作成したパブリック IP を選択します。
[リスナー] タブで他の設定の既定値をそのまま使用し、 [バックエンド ターゲット] タブを選択して、ルーティング規則の残りの部分を構成します。
[バックエンド ターゲット] タブで、 [バックエンド ターゲット] の [myBackendPool] を選択します。
[バックエンド設定] で、[新規追加] を選択して新しいバックエンド設定を作成します。 この設定によって、ルーティング規則の動作が決まります。 開いた [Add Backend setting](バックエンド設定の追加) ウィンドウで、[Backend settings name](バックエンド設定名) として「myBackendSetting」と入力します。 ウィンドウの他の設定については既定値をそのまま使用し、[追加] を選択して [ルーティング規則の追加] ウィンドウに戻ります。
[ルーティング規則の追加] ウィンドウで [追加] を選択してルーティング規則を保存し、 [構成] タブに戻ります。
タグ、次へ:確認と作成 をクリックします。
[確認と作成 ] タブの設定を確認し、 [作成] を選択して、仮想ネットワーク、パブリック IP アドレス、およびアプリケーションゲートウェイを作成します。 Azure によるアプリケーション ゲートウェイの作成には数分かかる場合があります。
次のセクションに進む前に、デプロイが正常に完了するまで待機します。
- myVNet 仮想ネットワークを開きます。
- [設定] で、 [サブネット] を選択します。
- [+ サブネット] を選択します。
- [名前]に「myBackendSubnet」と入力します。
- [開始アドレス] には、「10.0.1.0」と入力します。
- [追加] を選択してサブネットを追加します。
この例では、ターゲットのバックエンドとして仮想マシンを使用します。 既存の仮想マシンを使用することも、新しい仮想マシンを作成することもできます。 Azure によってアプリケーション ゲートウェイのバックエンド サーバーとして使用される 2 つの仮想マシンを作成します。
これを行うには、次を実行します。
- バックエンド サーバーとして使用される 2 つの新しい Linux VM (myVM と myVM2) を作成します。
- NGINX を仮想マシンにインストールして、アプリケーション ゲートウェイが正常に作成されたことを確認します。
- バックエンド サーバーをバックエンド プールに追加します。
Azure portal で、 [リソースの作成] を選択します。 [リソースの作成] ウィンドウが表示されます。
[仮想マシン] で、[作成] を選択します。
[基本] タブで、次の仮想マシンの設定に以下の値を入力します。
- [リソース グループ] :リソース グループ名には、myResourceGroupAG を選択します。
- [仮想マシン名] : 仮想マシンの名前として「myVM」と入力します。
- [イメージ]: Ubuntu Server 20.04 LTS - Gen2。
- [認証の種類]: パスワード
- [ユーザー名]: 管理者ユーザーの名前を入力します。
- [パスワード] : 管理者のパスワードを入力します。
- [パブリック受信ポート] : [なし] を選択します。
他の既定値をそのまま使用し、 [Next: ディスク] を選択します。
[ディスク] タブの既定値をそのまま使用し、 [Next: Networking](次へ : ネットワーク) を選択します。
[ネットワーク] タブで、 [仮想ネットワーク] に myVNet が選択されていること、および [サブネット] が myBackendSubnet に設定されていることを確認します。
[パブリック IP] で、 [なし] を選択します。
他の既定値をそのまま使用し、 [Next: 管理] を選択します。
[次へ: 監視] を選択し、[起動の診断] を [無効] に設定します。 他の既定値をそのまま使用し、 [確認および作成] を選択します。
[確認および作成] タブで、設定を確認し、検証エラーを修正してから、 [作成] を選択します。
仮想マシンの作成が完了するのを待って先に進みます。
この例では、Azure がアプリケーション ゲートウェイを正常に作成したことを確認するためにのみ、仮想マシンに NGINX をインストールします。
Bash Cloud Shell を開きます。 そのためには、Azure portal の上部のナビゲーション バーで [Cloud Shell] アイコンを選択して、ドロップダウン リストで [Bash] を選択します。
ご利用のサブスクリプションに対して bash セッションが設定されていることを確認します:
az account set --subscription "<your subscription name>"
次のコマンドを実行して、NGINX を仮想マシンにインストールします。
az vm extension set \
--publisher Microsoft.Azure.Extensions \
--version 2.0 \
--name CustomScript \
--resource-group myResourceGroupAG \
--vm-name myVM \
--settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
2 つ目の仮想マシンを作成し、先ほど完了した手順を使用して NGINX をインストールします。 仮想マシン名とコマンドレットの --vm-name
設定に myVM2 を使用します。
バックエンド プールヘのバックエンド サーバーの追加
[すべてのリソース] を選択し、myAppGateway を選択します。
左側のメニューで [バックエンド プール] を選択します。
[myBackendPool] を選択します。
[ターゲットの種類] の下のドロップダウン リストで [仮想マシン] を選択します。
[ターゲット] で、myVM に関連付けられているネットワーク インターフェイスをドロップダウン リストから選択します。
myVM2 についても同じ手順を繰り返します。
[保存] を選択します。
デプロイが完了するまで待ってから次の手順に進んでください。
NGINX はアプリケーション ゲートウェイを作成するのには不要ですが、Azure によってアプリケーション ゲートウェイが正常に作成されたかどうかを確認するためにインストールしました。 Web サービスを使用して、アプリケーション ゲートウェイをテストします。
[概要] ページで、アプリケーション ゲートウェイのパブリック IP アドレスを見つけます。
または、[すべてのリソース] を選択し、検索ボックスに「myAGPublicIPAddress」と入力してから、検索結果でそれを選択できます。 Azure によって、 [概要] ページにパブリック IP アドレスが表示されます。
そのパブリック IP アドレスをコピーし、ブラウザーのアドレス バーに貼り付けます。
応答を確認します。 応答が有効であれば、アプリケーション ゲートウェイが正常に作成され、バックエンドと正常に接続できることが保証されます。
アプリケーション ゲートウェイと共に作成したリソースが不要になったら、リソース グループを削除します。 リソース グループを削除することで、アプリケーション ゲートウェイとそのすべての関連リソースも削除します。
リソース グループを削除するには:
- Azure portal の左側のメニューにある [リソース グループ] を選択します。
- [リソース グループ] ページで、リストの myResourceGroupAG を探して選択します。
- [リソース グループ] ページで、 [リソース グループの削除] を選択します。
- [TYPE THE RESOURCE GROUP NAME](リソース グループ名を入力してください) に「myResourceGroupAG」と入力し、 [削除] を選択します。