ファイアウォールを使用して Azure HDInsight クラスターのアウトバウンド ネットワーク トラフィックを構成するConfigure outbound network traffic for Azure HDInsight clusters using Firewall

この記事では、Azure Firewall を使用して HDInsight クラスターからの送信トラフィックをセキュリティで保護するための手順を説明します。This article provides the steps for you to secure outbound traffic from your HDInsight cluster using Azure Firewall. 次の手順では、既存のクラスター用に Azure Firewall を構成することを前提としています。The steps below assume that you're configuring an Azure Firewall for an existing cluster. 新しいクラスターをファイアウォールの内側にデプロイする場合は、最初に HDInsight クラスターとサブネットを作成してから、このガイドの手順に従います。If you're deploying a new cluster and behind a firewall, create your HDInsight cluster and subnet first and then follow the steps in this guide.

バックグラウンドBackground

Azure HDInsight クラスターは、通常は独自の仮想ネットワークにデプロイされます。Azure HDInsight clusters are normally deployed in your own virtual network. クラスターには、その仮想ネットワークの外部にある、正常に機能するためにネットワーク アクセスを必要とするサービスへの依存関係があります。The cluster has dependencies on services outside of that virtual network that require network access to function properly.

受信トラフィックを必要とする依存関係は複数あります。There are several dependencies that require inbound traffic. インバウンド管理トラフィックはファイアウォール デバイスを介して送信できません。The inbound management traffic can't be sent through a firewall device. このトラフィックのソース アドレスは既知であり、こちらで公開されています。The source addresses for this traffic are known and are published here. また、その情報を使用してネットワーク セキュリティ グループ (NSG) ルールを作成し、クラスターへの受信トラフィックをセキュリティで保護することもできます。You can also create Network Security Group (NSG) rules with this information to secure inbound traffic to the clusters.

HDInsight の送信トラフィックの依存関係は、ほぼすべて、背後に静的 IP アドレスがない FQDN を使用して定義されています。The HDInsight outbound traffic dependencies are almost entirely defined with FQDNs, which don't have static IP addresses behind them. 静的アドレスがないということは、ネットワーク セキュリティ グループ (NSG) を使用してクラスターからの送信トラフィックをロックできないことを意味します。The lack of static addresses means that Network Security Groups (NSGs) can't be used to lock down the outbound traffic from a cluster. アドレスは頻繁に変わるので、現在の名前解決に基づいてルールを設定し、それを使用して NSG ルールを設定することができません。The addresses change often enough that one can't set up rules based on the current name resolution and use that to set up NSG rules.

送信アドレスをセキュリティで保護する解決策は、ドメイン名に基づいて送信トラフィックを制御できるファイアウォール デバイスを使用することです。The solution to securing outbound addresses is to use a firewall device that can control outbound traffic based on domain names. Azure Firewall では、宛先の FQDN または FQDN タグに基づいて送信 HTTP および HTTPS トラフィックを制限できます。Azure Firewall can restrict outbound HTTP and HTTPS traffic based on the FQDN of the destination or FQDN tags.

HDInsight に合わせて Azure Firewall を構成するConfiguring Azure Firewall with HDInsight

Azure Firewall を使用して既存の HDInsight からのエグレスをロックダウンする手順の概要は、次のとおりです。A summary of the steps to lock down egress from your existing HDInsight with Azure Firewall are:

  1. ファイアウォールを作成します。Create a firewall.
  2. ファイアウォールにアプリケーション ルールを追加しますAdd application rules to the firewall
  3. ファイアウォールにネットワーク ルールを追加します。Add network rules to the firewall.
  4. ルーティング テーブルを作成します。Create a routing table.

新しいサブネットを作成するCreate new subnet

クラスターが存在する仮想ネットワークに AzureFirewallSubnet という名前のサブネットを作成します。Create a subnet named AzureFirewallSubnet in the virtual network where your cluster exists.

クラスター用の新しいファイアウォールを作成しますCreate a new firewall for your cluster

ファイアウォールをデプロイする」の手順に従って、Test-FW01 という名前のファイアウォールを作成します。「Tutorial: Deploy and configure Azure Firewall using the Azure portal (チュートリアル: Azure portal を使用して Azure Firewall のデプロイと構成を行う)」を参照してください。Create a firewall named Test-FW01 using the steps in Deploy the firewall from Tutorial: Deploy and configure Azure Firewall using the Azure portal.

アプリケーション ルールを使用してファイアウォールを構成するConfigure the firewall with application rules

クラスターで重要な通信を送受信できるようにするアプリケーション ルール コレクションを作成します。Create an application rule collection that allows the cluster to send and receive important communications.

  1. Azure portal で新しいファイアウォール「Test-FW01」を選択します。Select the new firewall Test-FW01 from the Azure portal.

  2. [設定] > [ルール] > [アプリケーション ルール コレクション] > [+ アプリケーション ルール コレクションの追加] の順に移動します。Navigate to Settings > Rules > Application rule collection > + Add application rule collection.

    タイトル:アプリケーション ルール コレクションを追加する

  3. [アプリケーション ルール コレクションの追加] 画面で、次の情報を入力します。On the Add application rule collection screen, provide the following information:

    一番上のセクションTop section

    プロパティProperty Value
    NameName FwAppRuleFwAppRule
    PriorityPriority 200200
    アクションAction AllowAllow

    [FQDN タグ] セクションFQDN tags section

    NameName ソース アドレスSource address FQDN タグFQDN tag メモNotes
    Rule_1Rule_1 * WindowsUpdate と HDInsightWindowsUpdate and HDInsight HDI サービスに必要Required for HDI services

    [ターゲットの FQDN] セクションTarget FQDNs section

    NameName ソース アドレスSource addresses プロトコル:ポートProtocol:Port ターゲット FQDNTarget FQDNS メモNotes
    Rule_2Rule_2 * https:443https:443 login.windows.netlogin.windows.net Windows ログイン アクティビティを許可するAllows Windows login activity
    Rule_3Rule_3 * https:443https:443 login.microsoftonline.comlogin.microsoftonline.com Windows ログイン アクティビティを許可するAllows Windows login activity
    Rule_4Rule_4 * https:443、http:80https:443,http:80 storage_account_name.blob.core.windows.netstorage_account_name.blob.core.windows.net storage_account_name を実際のストレージ アカウント名に置き換えます。Replace storage_account_name with your actual storage account name. クラスターが WASB によってサポートされている場合は、WASB のルールを追加します。If your cluster is backed by WASB, then add a rule for WASB. https 接続のみを使用するには、[安全な転送が必須] がストレージ アカウントで有効になっていることを確認します。To use ONLY https connections, make sure "secure transfer required" is enabled on the storage account.

    タイトル:アプリケーション ルール コレクションの詳細を入力する

  4. [追加] を選択します。Select Add.

ネットワーク ルールを使用してファイアウォールを構成するConfigure the firewall with network rules

HDInsight クラスターを正しく構成するネットワーク ルールを作成します。Create the network rules to correctly configure your HDInsight cluster.

  1. 前の手順に続けて、 [ネットワーク ルール コレクション] > [+ ネットワーク ルール コレクションの追加] の順に移動します。Continuing from the prior step, navigate to Network rule collection > + Add network rule collection.

  2. [ネットワーク ルール コレクションの追加] 画面で、次の情報を入力します。On the Add network rule collection screen, provide the following information:

    一番上のセクションTop section

    プロパティProperty Value
    NameName FwNetRuleFwNetRule
    PriorityPriority 200200
    アクションAction AllowAllow

    [IP アドレス] セクションIP Addresses section

    NameName ProtocolProtocol ソース アドレスSource addresses 宛先アドレスDestination addresses 宛先ポートDestination ports メモNotes
    Rule_1Rule_1 UDPUDP * * 123123 Time サービスTime service
    Rule_2Rule_2 AnyAny * DC_IP_Address_1、DC_IP_Address_2DC_IP_Address_1, DC_IP_Address_2 * Enterprise セキュリティ パッケージ (ESP) を使用している場合は、ESP クラスター用に AAD DS との通信を許可するネットワーク ルールを [IP アドレス] セクションに追加します。If you're using Enterprise Security Package (ESP), then add a network rule in the IP Addresses section that allows communication with AAD-DS for ESP clusters. ドメイン コントローラーの IP アドレスはポータルの [AAD-DS] セクションで確認できますYou can find the IP addresses of the domain controllers on the AAD-DS section in the portal
    Rule_3Rule_3 TCPTCP * Data Lake Storage アカウントの IP アドレスIP Address of your Data Lake Storage account * Azure Data Lake Storage を使用している場合は、ADLS Gen1 と Gen2 での SNI の問題に対処するネットワーク ルールを [IP アドレス] セクションに追加することができます。If you're using Azure Data Lake Storage, then you can add a network rule in the IP Addresses section to address an SNI issue with ADLS Gen1 and Gen2. このオプションでは、トラフィックはファイアウォールにルーティングされ、大量のデータ読み込みのためにコストが上がる可能性がありますが、トラフィックはファイル ログに記録されて監査可能になります。This option will route the traffic to firewall, which might result in higher costs for large data loads but the traffic will be logged and auditable in firewall logs. Data Lake Storage アカウントの IP アドレスを決定します。Determine the IP address for your Data Lake Storage account. [System.Net.DNS]::GetHostAddresses("STORAGEACCOUNTNAME.blob.core.windows.net") などの powershell コマンドを使用して、FQDN を IP アドレスに解決できます。You can use a powershell command such as [System.Net.DNS]::GetHostAddresses("STORAGEACCOUNTNAME.blob.core.windows.net") to resolve the FQDN to an IP address.
    Rule_4Rule_4 TCPTCP * * 1200012000 (省略可能) Log Analytics を使用している場合は、Log Analytics ワークスペースとの通信を可能にするネットワーク ルールを [IP アドレス] セクションに作成します。(Optional) If you're using Log Analytics, then create a network rule in the IP Addresses section to enable communication with your Log Analytics workspace.

    [サービス タグ] セクションService Tags section

    NameName ProtocolProtocol ソース アドレスSource Addresses サービス タグService Tags ターゲット ポートDestination Ports メモNotes
    Rule_7Rule_7 TCPTCP * SQLSQL 14331433 ファイアウォールをバイパスする SQL Server のサービス エンドポイントを HDInsight サブネットに構成していない限り、SQL トラフィックをログに記録して監査できるようにする SQL のネットワーク ルールを [サービス タグ] セクションに構成します。Configure a network rule in the Service Tags section for SQL that will allow you to log and audit SQL traffic, unless you configured Service Endpoints for SQL Server on the HDInsight subnet, which will bypass the firewall.

    タイトル:アプリケーション ルール コレクションを入力する

  3. [追加] を選択します。Select Add.

ルート テーブルを作成して構成するCreate and configure a route table

次のエントリを使用してルート テーブルを作成します。Create a route table with the following entries:

たとえば、"米国東部" の米国リージョンに作成したクラスターのルート テーブルを構成するには、次の手順を使用します。For example, to configure the route table for a cluster created in the US region of "East US", use following steps:

  1. Azure ファイアウォール「Test-FW01」を選択します。Select your Azure firewall Test-FW01. [概要] ページに表示されている [プライベート IP アドレス] をコピーします。Copy the Private IP address listed on the Overview page. この例では、サンプル アドレス 10.0.2.4 を使用します。For this example, we'll use a sample address of 10.0.2.4.

  2. その後、 [すべてのサービス] > [ネットワーク] > [ルート テーブル] の順に移動し、 [ルート テーブルの作成] に移動します。Then navigate to All services > Networking > Route tables and Create Route Table.

  3. 新しいルートから、 [設定] > [ルート] > [+ 追加] に移動します。From your new route, navigate to Settings > Routes > + Add. 次のルートを追加します。Add the following routes:

ルート名Route name アドレス プレフィックスAddress prefix ネクストホップの種類Next hop type 次ホップ アドレスNext hop address
168.61.49.99168.61.49.99 168.61.49.99/32168.61.49.99/32 インターネットInternet NANA
23.99.5.23923.99.5.239 23.99.5.239/3223.99.5.239/32 インターネットInternet NANA
168.61.48.131168.61.48.131 168.61.48.131/32168.61.48.131/32 インターネットInternet NANA
138.91.141.162138.91.141.162 138.91.141.162/32138.91.141.162/32 インターネットInternet NANA
13.82.225.23313.82.225.233 13.82.225.233/3213.82.225.233/32 インターネットInternet NANA
40.71.175.9940.71.175.99 40.71.175.99/3240.71.175.99/32 インターネットInternet NANA
0.0.0.00.0.0.0 0.0.0.0/00.0.0.0/0 仮想アプライアンスVirtual appliance 10.0.2.410.0.2.4

ルート テーブルの構成を完了します。Complete the route table configuration:

  1. [設定][サブネット] を選択して、作成したルート テーブルを HDInsight サブネットに割り当てます。Assign the route table you created to your HDInsight subnet by selecting Subnets under Settings.

  2. [+ 関連付け] を選択します。Select + Associate.

  3. [サブネットの関連付け] 画面で、クラスターが作成された仮想ネットワークと、HDInsight クラスター用に使用したサブネットを選択します。On the Associate subnet screen, select the virtual network that your cluster was created into and the Subnet you used for your HDInsight cluster.

  4. [OK] を選択します。Select OK.

エッジノードまたはカスタム アプリケーション トラフィックEdge-node or custom application traffic

上記の手順で、クラスターが問題なく動作するようになります。The above steps will allow the cluster to operate without issues. ただし、該当する場合は、エッジノードで実行されているカスタムのアプリケーションに対応する依存関係を構成する必要があります。You still need to configure dependencies to accommodate your custom applications running on the edge-nodes, if applicable.

アプリケーションの依存関係を特定し、Azure Firewall またはルート テーブルに追加する必要があります。Application dependencies must be identified and added to the Azure Firewall or the route table.

非対称ルーティングの問題を回避するために、アプリケーションのトラフィック用にルートを作成する必要があります。Routes must be created for the application traffic to avoid asymmetric routing issues.

アプリケーションに他の依存関係がある場合は、それらを Azure Firewall に追加する必要があります。If your applications have other dependencies, they need to be added to your Azure Firewall. その他すべてに関する HTTP/HTTPS トラフィックとネットワークのルールを許可するようにアプリケーション ルールを作成します。Create Application rules to allow HTTP/HTTPS traffic and Network rules for everything else.

ログ記録とスケールLogging and scale

Azure Firewall は、いくつかの異なるストレージ システムにログを送信できます。Azure Firewall can send logs to a few different storage systems. ファイアウォールのログ記録の構成手順については、次のチュートリアルの手順に従ってください。「チュートリアル: 「Azure Firewall のログとメトリックを監視する」を参照してください。For instructions on configuring logging for your firewall, follow the steps in Tutorial: Monitor Azure Firewall logs and metrics.

ログ記録のセットアップを完了した後、Log Analytics にデータをログ記録する場合は、次のようなクエリでブロックされたトラフィックを表示することができます。Once you've completed the logging setup, if you're logging data to Log Analytics, you can view blocked traffic with a query such as the following:

AzureDiagnostics | where msg_s contains "Deny" | where TimeGenerated >= ago(1h)

Azure Firewall を Azure Monitor ログと統合すると、アプリケーションのすべての依存関係がわからないときに初めてアプリケーションを動作させる場合に役立ちます。Integrating your Azure Firewall with Azure Monitor logs is useful when first getting an application working when you aren't aware of all of the application dependencies. Azure Monitor ログについて詳しくは、「Azure Monitor でログ データを分析する」をご覧くださいYou can learn more about Azure Monitor logs from Analyze log data in Azure Monitor

Azure Firewall のスケールの制限と要求の増加については、こちらのドキュメント、または FAQ を参照してください。To learn about the scale limits of Azure Firewall and request increases, see this document or refer to the FAQs.

クラスターへのアクセスAccess to the cluster

ファイアウォールを正常にセットアップした後は、内部エンドポイント (https://CLUSTERNAME-int.azurehdinsight.net) を使用して VNET 内から Ambari にアクセスできます。After having the firewall set up successfully, you can use the internal endpoint (https://CLUSTERNAME-int.azurehdinsight.net) to access the Ambari from inside the VNET.

パブリック エンドポイント (https://CLUSTERNAME.azurehdinsight.net) または SSH エンドポイント (CLUSTERNAME-ssh.azurehdinsight.net) を使用するには、こちらで説明されている非対称ルーティングの問題を回避するために、必ずルート テーブルに正しいルートとNSG ルールが指定されていることを確認します。To use the public endpoint (https://CLUSTERNAME.azurehdinsight.net) or ssh endpoint (CLUSTERNAME-ssh.azurehdinsight.net), make sure you have the right routes in the route table and NSG rules to avoid the asymmetric routing issue explained here. 特にこのケースでは、インバウンド NSG 規則のクライアント IP アドレスを許可し、次ホップを internet に設定してユーザー定義ルート テーブルに追加する必要があります。Specifically in this case, you need to allow the client IP address in the Inbound NSG rules and also add it to the user-defined route table with the next hop set as internet. これが正しくセットアップされていない場合、タイムアウト エラーが表示されます。If this isn't set up correctly, you'll see a timeout error.

別のネットワーク仮想アプライアンスの構成Configure another network virtual appliance

重要

次の情報が必要なのは、Azure Firewall 以外のネットワーク仮想アプライアンス (NVA) を構成する場合のみです。The following information is only required if you wish to configure a network virtual appliance (NVA) other than Azure Firewall.

前の手順では、HDInsight クラスターからの送信トラフィックを制限するために Azure Firewall を構成することができます。The previous instructions help you configure Azure Firewall for restricting outbound traffic from your HDInsight cluster. Azure Firewall は自動的に、多くの一般的な重要なシナリオのトラフィックを許可するように構成されます。Azure Firewall is automatically configured to allow traffic for many of the common important scenarios. 別のネットワーク仮想アプライアンスを使用する場合は、さまざまな追加機能を手動で構成する必要があります。If you want to use another network virtual appliance, you'll need to manually configure a number of additional features. ネットワーク仮想アプライアンスを構成する場合は、次の点に注意してください。Keep the following in mind as you configure your network virtual appliance:

  • サービス エンドポイント対応のサービスは、サービス エンドポイントを使用して構成する必要があります。Service Endpoint capable services should be configured with service endpoints.
  • IP アドレスの依存関係が HTTP/S 以外のトラフィック (TCP トラフィックと UDP トラフィックの両方) に対応しています。IP Address dependencies are for non-HTTP/S traffic (both TCP and UDP traffic).
  • FQDN HTTP/HTTPS エンドポイントは、NVA デバイスに配置することができます。FQDN HTTP/HTTPS endpoints can be placed in your NVA device.
  • ワイルドカード HTTP/HTTPS エンドポイントは、さまざまな修飾子に応じて変わる場合がある依存関係です。Wildcard HTTP/HTTPS endpoints are dependencies that can vary based on a number of qualifiers.
  • 作成したルート テーブルを HDInsight サブネットに割り当てます。Assign the route table that you create to your HDInsight subnet.

サービス エンドポイント対応の依存関係Service endpoint capable dependencies

エンドポイントEndpoint
Azure SQLAzure SQL
Azure StorageAzure Storage
Azure Active DirectoryAzure Active Directory

IP アドレスの依存関係IP address dependencies

エンドポイントEndpoint 詳細Details
*:123*:123 NTP クロック チェック。NTP clock check. トラフィックは、ポート 123 上の複数のエンドポイントでチェックされますTraffic is checked at multiple endpoints on port 123
こちらで発行された IPIPs published here これらは HDInsight サービスですThese are HDInsight service
ESP クラスター用の AAD DS プライベート IPAAD-DS private IPs for ESP clusters
*:KMS Windows ライセンス認証の場合は 16800*:16800 for KMS Windows Activation
*Log Analytics の場合は 12000*12000 for Log Analytics

FQDN HTTP/HTTPS の依存関係FQDN HTTP/HTTPS dependencies

重要

以下の一覧には、いくつかの最も重要な FQDN のみを示しています。The list below only gives a few of the most important FQDNs. NVA を構成するための FQDN の完全な一覧は、このファイルで取得できます。You can get the full list of FQDNs for configuring your NVA in this file.

エンドポイントEndpoint
azure.archive.ubuntu.com:80azure.archive.ubuntu.com:80
security.ubuntu.com:80security.ubuntu.com:80
ocsp.msocsp.com:80ocsp.msocsp.com:80
ocsp.digicert.com:80ocsp.digicert.com:80
wawsinfraprodbay063.blob.core.windows.net:443wawsinfraprodbay063.blob.core.windows.net:443
registry-1.docker.io:443registry-1.docker.io:443
auth.docker.io:443auth.docker.io:443
production.cloudflare.docker.com:443production.cloudflare.docker.com:443
download.docker.com:443download.docker.com:443
us.archive.ubuntu.com:80us.archive.ubuntu.com:80
download.mono-project.com:80download.mono-project.com:80
packages.treasuredata.com:80packages.treasuredata.com:80
security.ubuntu.com:80security.ubuntu.com:80
azure.archive.ubuntu.com:80azure.archive.ubuntu.com:80
ocsp.msocsp.com:80ocsp.msocsp.com:80
ocsp.digicert.com:80ocsp.digicert.com:80

次のステップNext steps