Настройка исходящего сетевого трафика для кластеров Azure HDInsight с помощью брандмауэра

В этой статье приведены инструкции по защите исходящего трафика из кластера HDInsight с помощью Брандмауэра Azure. В описанных ниже действиях предполагается, что вы настраиваете Брандмауэр Azure для существующего кластера. При развертывании нового кластера за брандмауэром сначала создайте кластер HDInsight и подсеть. Затем выполните шаги, приведенные в этом руководстве.

Общие сведения

Кластеры HDInsight обычно развертываются в виртуальной сети. Кластер имеет зависимости от служб, находящихся за пределами этой виртуальной сети.

Входящий трафик управления невозможно отправлять через брандмауэр. Вы можете использовать теги службы NSG для входящего трафика, как описано здесь.

Зависимости исходящего трафика HDInsight практически полностью определяются с помощью полных доменных имен. Они не связаны со статическими IP-адресами. Отсутствие статических адресов означает, что для блокировки исходящего из кластера трафика нельзя использовать группу безопасности сети. IP-адреса часто меняются, поэтому создать правила, основанные на текущем разрешении имен, и использовать их нельзя.

Обеспечьте безопасность исходящих адресов с помощью брандмауэра, который может управлять исходящим трафиком на основе полных доменных имен (FQDN). Брандмауэр Azure может ограничить исходящий трафик на основе полного доменного имени назначения или тегов FQDN.

Настройка Брандмауэра Azure с помощью HDInsight

Шаги по блокировке исходящего трафика существующего HDInsight с помощью Брандмауэра Azure:

  1. Создайте подсеть.
  2. Создайте брандмауэр.
  3. Добавьте правила приложения в брандмауэр.
  4. Добавьте правила сети в брандмауэр.
  5. Создайте таблицу маршрутизации.

Создание подсети

Создайте подсеть с именем AzureFirewallSubnet в виртуальной сети, в которой находится кластер.

Создание нового брандмауэра для кластера

Создайте брандмауэр с именем Test-FW01, выполнив действия, описанные в руководстве по развертыванию брандмауэра: развертывание и настройка Брандмауэр Azure с помощью портал Azure.

Настройка брандмауэра с помощью правил приложения

Создайте коллекцию правил приложений, которые позволяют кластеру отправлять и получать важные данные.

  1. Выберите новый брандмауэр Test-FW01 на портале Azure.

  2. Перейдите в раздел Параметры>Правила>Коллекция правил приложений>+ Добавить коллекцию правил приложений.

    Title: Add application rule collection.

  3. На экране Добавить коллекцию правил приложений укажите следующие сведения.

    Верхний раздел

    Свойство Значение
    Имя. FwAppRule
    Приоритет 200
    Действие Allow

    Раздел тегов FQDN

    Имя. Исходные адреса Тег FQDN Примечания.
    Rule_1 * WindowsUpdate и HDInsight Требуется для служб HDI

    Раздел целевых FQDN

    Имя. Исходные адреса Протокол:порт Целевые FQDN Примечания.
    Rule_2 * https:443 login.windows.net Разрешает действие входа Windows
    Rule_3 * https:443 login.microsoftonline.com Разрешает действие входа Windows
    Rule_4 * https:443 storage_account_name.blob.core.windows.net Замените storage_account_name на имя вашей учетной записи хранения. Убедитесь, что в учетной записи хранения включен параметр "требуется безопасная передача". Если для доступа к учетным записям хранения используется Частная конечная точка, этот шаг не требуется, а трафик хранилища не пересылается в брандмауэр.
    Rule_5 * HTTP 80 azure.archive.ubuntu.com Разрешает установку обновлений безопасности Ubuntu в кластере

    Title: Enter application rule collection details.

  4. Выберите Добавить.

Настройка брандмауэра с помощью правил сети

Создайте правила сети для правильной настройки кластера HDInsight.

  1. Продолжив с предыдущего шага, перейдите к разделу Коллекция правил сети>+ Добавить коллекцию правил сети.

  2. На экране Добавить коллекцию правил сети укажите следующие сведения.

    Верхний раздел

    Свойство Значение
    Имя. FwNetRule
    Приоритет 200
    Действие Allow

    Раздел тегов служб

    Имя. Протокол Исходные адреса Теги служб Порты назначения Примечания.
    Rule_6 TCP * SQL 1433, 11000-11999 Если вы используете серверы SQL Server по умолчанию, предоставляемые HDInsight, настройте правило сети в разделе "Теги служб" для SQL, которое позволит регистрировать и проверять трафик SQL. если вы не настроили конечные точки службы для SQL Server в подсети HDInsight, что приведет к обходу брандмауэра. Если вы используете настраиваемый SQL Server для Ambari, Oozie, Ranger и хранилища метаданных Hive, достаточно разрешить трафик только на собственные настраиваемые серверы SQL Server. Дополнительные сведения о том, почему в дополнение к 1433 также требуется диапазон портов 11000-11999, см. в статье Архитектура подключения к Базе данных SQL Azure и Azure Synapse Analytics.
    Rule_7 TCP * Azure Monitor * (Необязательно.) Пользователи, которые планируют использовать функцию автоматического масштабирования, должны добавить это правило.

    Title: Enter application rule collection.

  3. Выберите Добавить.

Создание и настройка таблицы маршрутизации

Создайте таблицу маршрутизации со следующими записями:

  • Все IP-адреса из раздела Службы работоспособности и управления с типом следующего прыжка Интернет. Тут должны содержатся четыре IP-адреса универсальных регионов, а также два IP-адреса для конкретного региона. Это правило необходимо, только если для свойства ResourceProviderConnection задано значение Inbound (Входящий). Если для свойства ResourceProviderConnection задано значение Outbound, эти IP-адреса в UDR не нужны.

  • Один маршрут виртуального модуля для IP-адреса 0.0.0.0/0, при этом следующий прыжок должен представлять частный IP-адрес вашего Брандмауэра Azure.

Например, чтобы настроить таблицу маршрутизации для кластера, созданного в регионе США "Восточная часть США", выполните следующие действия.

  1. Выберите брандмауэр Azure Test-FW01. Скопируйте Частный IP-адрес на странице Обзор. В этом примере мы используем пример адреса 10.0.2.4.

  2. Затем перейдите в раздел Все службы>Сеть>Таблицы маршрутизации и Создать таблицу маршрутизации.

  3. В новом маршруте выберите Параметры>Маршруты>Добавить. Добавьте следующие маршруты:

Имя маршрута Префикс адреса Тип следующего прыжка Адрес следующего прыжка
168.61.49.99 168.61.49.99/32 Интернет Неприменимо
23.99.5.239 23.99.5.239/32 Интернет Неприменимо
168.61.48.131 168.61.48.131/32 Интернет Неприменимо
138.91.141.162 138.91.141.162/32 Интернет Неприменимо
13.82.225.233 13.82.225.233/32 Интернет Неприменимо
40.71.175.99 40.71.175.99/32 Интернет Неприменимо
0.0.0.0 0.0.0.0/0 Виртуальный модуль 10.0.2.4

Завершите настройку таблицы маршрутизации:

  1. Назначьте таблицу маршрутизации, созданную в подсети HDInsight, выбрав Подсети в разделе Параметры.

  2. Нажмите + Связать.

  3. На экране Связать подсеть выберите виртуальную сеть, в которой был создан кластер. И Подсеть, которую вы использовали для кластера HDInsight.

  4. Нажмите ОК.

Трафик пограничного узла или пользовательского приложения

Вышеупомянутые шаги позволят кластеру работать без проблем. Вам по-прежнему необходимо настроить зависимости для размещения пользовательских приложений, работающих на пограничных узлах (если применимо).

Зависимости приложения необходимо определить и добавить в Брандмауэр Azure или таблицу маршрутизации.

Маршруты должны создаваться для трафика приложения, чтобы избежать проблемы с асимметричной маршрутизацией.

Если ваше приложение имеет другие зависимости, то их необходимо добавить в брандмауэр Azure. Создайте правила приложения, чтобы разрешать трафик протокола HTTP/HTTPS, и правила сети для всего остального.

Ведение журнала и масштабирование

Брандмауэр Azure может отправлять журналы в несколько различных систем хранения. Инструкции по настройке ведения журнала для брандмауэра см. в руководстве по мониторингу журналов и метрик Брандмауэр Azure.

Если вы используете Log Analytics, после настройки ведения журнала можно просмотреть заблокированный трафик с помощью запроса, например:

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

Интеграция Брандмауэра Azure с журналами Azure Monitor полезна при первом запуске приложения. Особенно если вы не знаете обо всех зависимостях приложения. См. дополнительные сведения о журналах Azure Monitor в статье Анализ данных журнала в Azure Monitor

Дополнительные сведения об ограничениях масштабирования Брандмауэра Azure и увеличении запросов см. в этом документе или на странице Вопросы и ответы.

Доступ к кластеру

После успешной настройки брандмауэра можно использовать внутреннюю конечную точку (https://CLUSTERNAME-int.azurehdinsight.net) для доступа к Ambari из виртуальной сети.

Чтобы использовать общедоступную конечную точку (https://CLUSTERNAME.azurehdinsight.net) или конечную точку SSH (CLUSTERNAME-ssh.azurehdinsight.net), убедитесь, что у вас указаны правильные маршруты в таблице маршрутизации и правила NSG. Это позволит избежать проблем с асимметричной маршрутизацией, описанных здесь. В частности, в этом случае необходимо разрешить IP-адрес клиента в правилах входящего трафика NSG, а также добавить его в определяемую пользователем таблицу маршрутизации со следующим прыжком internet. Если маршрутизация настроена неправильно, возникнет ошибка времени ожидания.

Следующие шаги