演習 - Azure Firewall 経由でネットワーク トラフィックをルーティングする
前の演習では、Azure Firewall をデプロイしました。 次に、すべてのネットワーク トラフィックをファイアウォール経由でルーティングし、ファイアウォール規則を使用してトラフィックをフィルター処理する必要があります。 これを行うと、Azure Firewall が Azure Virtual Desktop の送信ネットワーク トラフィックを保護してくれます。
すべてのトラフィックをファイアウォール経由でルーティングする
ホスト プールで使われるサブネットでは、アウトバウンドの既定ルートがファイアウォールを通過するように構成します。 次の 3 つの手順を実行します。
- ホスト プールの VM およびファイアウォールと同じリソース グループにルート テーブルを作成します。
- ルート テーブルを、ホスト プール VM が使用するサブネットに関連付けます。
- ルート テーブルで、ファイアウォールにルートを追加します。
これらの手順を完了すると、すべてのトラフィックが Azure Firewall にルーティングされます。
ルート テーブルを作成する
まず、firewall-route という名前のルート テーブルを作成します。
Azure portal で [ルート テーブル] を検索し、選択します。
[+ 作成] を選択します。
次の値を使用します。
フィールド 値 サブスクリプション 該当するサブスクリプション Resource group learn-firewall-rg リージョン 以前使用したのと同じ場所を選択します。 名前 firewall-route [確認と作成]>[作成] の順に選択します。
デプロイが完了したら、[リソースに移動] を選択します。
ルート テーブルをワークロードのサブネットに関連付ける
ここで、firewall-route をホスト プールのサブネットに関連付けます。
firewall-route の [設定] で [サブネット] を選択します。
[+ 関連付け] を選択します。
次の値を選択します。
フィールド 値 仮想ネットワーク hostVNet Subnet hostSubnet [OK] を選び、関連付けが追加されるまで待ちます。
ルート テーブルにルートを追加する
最後の手順では、ルート テーブルの Azure Firewall にルートを追加します。 この手順を完了すると、ホスト プール仮想ネットワーク上のすべてのネットワーク トラフィックが、Azure Firewall 経由でルーティングされます。
[設定] の [ルート] を選択します。
[+ 追加] を選択します。
次の値を入力します。
フィールド 値 ルート名 fw-rt 変換先の型 [IP アドレス] 宛先 IP アドレス/CIDR 範囲 0.0.0.0/0 ネクストホップの種類 仮想アプライアンス 次ホップ アドレス 前の演習ユニットでコピーしたファイアウォールのプライベート IP アドレスを貼り付けます。 これは、[ファイアウォール] ページに [ファイアウォールのプライベート IP] として列挙されています。 [追加] を選択します。
アプリケーション規則コレクションを作成する
既定では、ファイアウォールによってあらゆるアクセスが拒否されるため、トラフィックのファイアウォール通過を許可する条件を構成する必要があります。
複数の完全修飾ドメイン名 (FQDN) への Azure Virtual Desktop アクセスを許可する規則を含むアプリケーション規則コレクションを作成します。
Azure portal で、[ファイアウォール] を検索し、選択します。
learn-fw ファイアウォールを選択します。
[設定] で、[規則 (クラシック)] を選択します。
[アプリケーション規則コレクション] タブを選択し、[アプリケーション規則コレクションの追加] を選択します。
次の情報を入力します。
フィールド 値 名前 app-coll01 優先度 200 アクション Allow [規則] の [FQDN タグ] セクションで、次の情報を入力します。
フィールド 値 名前 allow-virtual-desktop 変換元の型 IP アドレス source hostVNet のアドレス空間 (10.0.0.0/16 など) FQDN のタグ Windows Virtual Desktop [規則] の [対象 FQDN] セクションで、次の情報を入力します。
フィールド 値 名前 allow-storage-service-bus-accounts 変換元の型 IP アドレス source hostVNet のアドレス空間 (10.0.0.0/16 など) プロトコル:ポート https ターゲットの FQDN *xt.blob.core.windows.net
、*eh.servicebus.windows.net
、*xt.table.core.windows.net
完了すると、フォームは次の図のようになります。
[追加] を選択します。
ネットワーク規則コレクションを作成する
このシナリオでは Microsoft Entra Domain Services (Microsoft Entra Domain Services) を使用しているため、DNS を許可するネットワーク ルールを作成する必要がないとします。 ただし、Azure Virtual Desktop VM から Windows アクティブ化サービスへのトラフィックを許可する規則を作成する必要があります。 ネットワーク規則でキー管理サービス (KMS) を許可するには、Azure グローバル クラウドの KMS サーバーの宛先 IP アドレスを使用します。
[learn-fw]>[規則 (クラシック)] で、[ネットワーク規則コレクション] を選択します。
[ネットワーク規則コレクション] タブを選択し、[ネットワーク規則コレクションの追加] を選択します。
次の情報を入力します。
フィールド 値 名前 net-coll01 優先度 200 アクション Allow [規則] の [IP アドレス] セクションで、次の情報を入力します。
フィールド 値 名前 allow-kms Protocol TCP 変換元の型 IP アドレス source hostVNet のアドレス空間 (10.0.0.0/16 など) 変換先の型 IP アドレス (IP address) Destination Address (宛先アドレス) 23.102.135.246 ターゲット ポート 1688 完了すると、フォームは次の図のようになります。
[追加] を選択します。
作業を確認
この時点で、Azure Virtual Desktop のすべてのネットワーク トラフィックがファイアウォールを経由するようにルーティングされました。 ファイアウォールが想定どおりに動作することを確認してみましょう。 ファイアウォールを経由して Azure Virtual Desktop サービスに至るホスト プールからの送信ネットワーク トラフィックをフィルター処理する必要があります。 サービス コンポーネントの状態を確認することによって、サービスへのトラフィックがファイアウォールによって許可されていることを確認できます。
Azure Cloud Shell で次のコマンドを実行します。
"rdgateway", "rdbroker","rdweb"|% ` {Invoke-RestMethod -Method:Get ` -Uri https://$_.wvd.microsoft.com/api/health}|ft ` -Property Health,TimeStamp,ClusterUrl
3 つすべてのコンポーネント サービスが正常であることが示される、次のような結果が表示されます。
Health TimeStamp ClusterUrl ------ --------- ---------- RDGateway is Healthy 7/2/2021 6:00:00 PM https://rdgateway-c101-cac-r1.wvd.microsoft.com/ RDBroker is Healthy 7/2/2021 6:00:00 PM https://rdbroker-c100-cac-r1.wvd.microsoft.com/ RDWeb is Healthy 7/2/2021 6:00:00 PM https://rdweb-c100-cac-r1.wvd.microsoft.com/
1 つ以上のコンポーネントが正常でない場合、ファイアウォールが想定どおりに動作していないことになります。