Включение Приватного канала в кластере HDInsight

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

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

Примечание.

Ограничения общедоступного подключения являются необходимым условием для включения Приватного канала Azure, и они не должны рассматриваться как одна и та же возможность.

Использование Приватного канала для подключения к кластеру HDInsight является дополнительной функцией и отключено по умолчанию. Эта функция доступна, только если для свойства сети resourceProviderConnection задано значение outbound, как описано в статье Ограничение возможности подключения к кластеру в Azure HDInsight.

Если для параметра privateLink установлено значение enabled, создаются внутренние стандартные подсистемы балансировки нагрузки (SLB), и для каждой SLB подготавливается служба Приватного канала Azure. Служба Приватного канала — это то, что позволяет получить доступ к кластеру HDInsight из частных конечных точек.

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

Шаг 1. Создание необходимых компонентов

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

Тип Имя. Характер использования
Группа ресурсов hdi-privlink-rg Используется для совместного сохранения общих ресурсов.
Виртуальная сеть hdi-privlink-cluster-vnet Виртуальная сеть, в которой будет развернут кластер.
Виртуальная сеть hdi-privlink-client-vnet Виртуальная сеть, откуда клиенты будут подключаться к кластеру.
группу безопасности сети; hdi-privlink-cluster-vnet-nsg NSG по умолчанию, необходимая для развертывания кластера.

Примечание.

Группу безопасности сети (NSG) можно просто развернуть, изменять правила NSG для развертывания кластера не нужно.

Шаг 2. Настройка подсети HDInsight

  • Отключите privateLinkServiceNetworkPolicies в подсети. Чтобы выбрать исходный IP-адрес для службы "Приватный канал", в подсети требуется явно задать параметр отключения privateLinkServiceNetworkPolicies. Следуйте приведенным здесь инструкциям, чтобы отключить сетевые политики для служб Приватного канала.
  • Включите конечные точки службы в подсети. Для успешного развертывания кластера HDInsight Приватный канал рекомендуется добавить Microsoft.SQLконечные точки и Microsoft.StorageMicrosoft.KeyVault конечные точки службы в подсеть перед развертыванием кластера. Конечные точки службы направляют трафик непосредственно из виртуальной сети в службу в магистральной сети Microsoft Azure. Так как трафик не покидает пределы магистральной сети, это позволяет и дальше выполнять аудит и мониторинг исходящего интернет-трафика из виртуальных сетей при помощи принудительного туннелирования без воздействия на трафик служб.

Шаг 3. Развертывание шлюза NAT или брандмауэра

Стандартные подсистемы балансировки нагрузки не обеспечивают автоматическое предоставление общедоступного исходящего преобразования сетевых адресов (NAT), подобно базовым подсистемам балансировки нагрузки. Так как кластеры Приватного канала используют стандартные подсистемы балансировки нагрузки, необходимо предоставить собственное решение NAT, например шлюз NAT или NAT, обеспечиваемое брандмауэром, для подключения к исходящим, общедоступным зависимостям HDInsight.

Развертывание шлюза NAT (вариант 1)

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

В рамках базовой начальной настройки сделайте следующее:

  1. Выполните поиск по запросу "шлюзы NAT" на портале Azure и нажмите кнопку Создать.

  2. Используйте следующие конфигурации в шлюзе NAT. (Мы не будем включать здесь все конфигурации, поэтому для них можно использовать значения по умолчанию.)

    Config Значение
    Имя шлюза NAT hdi-privlink-nat-gateway
    Общедоступные IP-префиксы Создание префикса общедоступного IP-адреса
    Имя префикса общедоступного IP-адреса hdi-privlink-nat-gateway-prefix
    Размер префикса общедоступного IP-адреса /28 (16 адресов)
    Виртуальная сеть hdi-privlink-cluster-vnet
    Имя подсети default
  3. После завершения развертывания Шлюза NAT вы можете перейти к следующему шагу.

Настройка брандмауэра (вариант 2)

В рамках базовой начальной настройки сделайте следующее:

  1. Добавьте в свою виртуальную сеть новую подсеть с именем AzureFirewallSubnet.
  2. Используйте новую подсеть для настройки нового брандмауэра и добавления политик брандмауэра.
  3. Используйте частный IP-адрес нового брандмауэра в качестве значения nextHopIpAddress в таблице маршрутизации.
  4. Добавьте таблицу маршрутизации в настроенную подсеть виртуальной сети.

Кластеру HDInsight по-прежнему требуется доступ к своим исходящим зависимостям. Если эти исходящие зависимости не разрешены, создание кластера может завершиться ошибкой. Дополнительные сведения о настройке брандмауэра см. в разделе Управление сетевым трафиком в Azure HDInsight.

Шаг 4. Развертывание кластера с Приватным каналом

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

Схема: среда Приватного канала перед созданием кластера.

Создайте кластер.

Следующий фрагмент кода JSON содержит два свойства сети, которые необходимо настроить в шаблоне Azure Resource Manager для создания частного кластера HDInsight:

networkProperties: {
    "resourceProviderConnection": "Outbound",
    "privateLink": "Enabled"
}

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

Чтобы создать кластер с помощью PowerShell, см. пример.

Чтобы создать кластер с помощью Azure CLI, см. пример.

Шаг 5. Создание частных конечных точек

Azure автоматически создает службу Приватного канала для подсистем балансировки нагрузки Ambari и SSH во время развертывания кластера с Приватным каналом. После развертывания кластера необходимо создать две частные конечные точки в клиентских виртуальных сетях, одну для Ambari и одну для доступа по протоколу SSH. Затем свяжите их со службами Приватного канала, созданными в ходе развертывания кластера.

Чтобы создать частные конечные точки, сделайте следующее:

  1. Откройте портал Azure и выполните поиск по запросу "Приватный канал".

  2. В результатах щелкните значок Приватного канала.

  3. Щелкните "Создание частной конечной точки" и используйте следующие конфигурации для настройки частной конечной точки Ambari:

    Config Значение
    Имя. hdi-privlink-cluster
    Тип ресурса Microsoft.Network/privateLinkServices
    Ресурс gateway-* (это значение должно соответствовать идентификатору развертывания HDI кластера, например gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    Виртуальная сеть hdi-privlink-client-vnet
    Подсеть default

    Схема базовой вкладки Приватный канал.Схема вкладки ресурсов Приватный канал.Схема вкладки Приватный канал виртуальной сети.Схема вкладки конечной точки dns Приватный канал.Схема вкладки тега Приватный канал.Схема вкладки Приватный канал проверки.

  4. Повторите эту процедуру, чтобы создать другую закрытую конечную точку для доступа по протоколу SSH, используя следующие конфигурации:

    Config Значение
    Имя. hdi-privlink-cluster-ssh
    Тип ресурса Microsoft.Network/privateLinkServices
    Ресурс headnode-* (это значение должно соответствовать идентификатору развертывания HDI кластера, например headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    Виртуальная сеть hdi-privlink-client-vnet
    Подсеть default

Внимание

Если вы используете кластер KafkaRestProxy HDInsight, выполните дополнительные действия, чтобы включить частные конечные точки.

После создания частных конечных точек этот этап настройки завершен. Если вы не записали частные IP-адреса, назначенных конечным точкам, выполните следующие действия:

  1. Откройте виртуальную сеть клиента на портале Azure.
  2. Перейдите на вкладку "Частные конечные точки".
  3. Вы должны увидеть перечисленные сетевые интерфейсы Ambari и SSH.
  4. Щелкните каждый из них и перейдите в колонку "Конфигурация DNS", чтобы просмотреть частный IP-адрес.
  5. Запишите эти IP-адреса, так как они необходимы для подключения к кластеру и правильной настройки DNS.

Шаг 6. Настройка DNS для подключения через частные конечные точки

Для доступа к частным кластерам можно настроить разрешение DNS с помощью частных зон DNS. В общедоступной зоне DNS azurehdinsight.net, управляемой Azure, создаются следующие записи Приватного канала:

<clustername>        CNAME    <clustername>.privatelink
<clustername>-int    CNAME    <clustername>-int.privatelink
<clustername>-ssh    CNAME    <clustername>-ssh.privatelink

На следующем рисунке показан пример частных записей DNS, необходимых для доступа к кластеру из виртуальной сети, которая не имеет однорангового подключения или иного способа прямого обращения к кластеру. Для переопределения полных доменных имен (FQDN) *.privatelink.azurehdinsight.net и разрешения IP-адресов частных конечных точек в сети клиента можно использовать частную зону Azure DNS. В этом примере конфигурация применяется только к <clustername>.azurehdinsight.net, но она также распространяется и на другие конечные точки кластера.

Схема: архитектура Приватного канала.

Чтобы настроить разрешение DNS с через Частную зону DNS, сделайте следующее:

  1. Создайте Частную зону Azure DNS. (Мы не будем включать здесь все конфигурации. Все остальные конфигурации остаются со значениями по умолчанию).

    Config Значение
    Имя. privatelink.azurehdinsight.net

    Схема частной зоны DNS.

  2. Добавьте набор записей в Частную зону DNS для Ambari.

    Config Значение
    Имя. YourPrivateLinkClusterName
    Тип A — запись псевдонима для IPv4-адреса
    СРОК ЖИЗНИ 1
    Единица срока жизни часов
    IP-адрес Частный IP-адрес частной конечной точки для доступа Ambari

    Схема добавления записи частной зоны DNS.

  3. Добавьте набор записей в Частную зону DNS для SSH.

    Config Значение
    Имя. YourPrivateLinkClusterName-ssh
    Тип A — запись псевдонима для IPv4-адреса
    СРОК ЖИЗНИ 1
    Единица срока жизни часов
    IP-адрес Частный IP-адрес частной конечной точки для доступа SSH

    Схема зоны DNS приватного канала добавляет запись SSH.

Внимание

Если вы используете кластер KafkaRestProxy HDInsight, выполните дополнительные действия, чтобы настроить DNS для подключения через частную конечную точку.

  1. Сопоставьте Частную зону DNS с клиентской виртуальной сетью, добавив связь виртуальной сети.

    1. Откройте Частную зону DNS на портале Azure.
    2. Перейдите на вкладку "Связи виртуальной сети".
    3. Нажмите кнопку "Добавить".
    4. Заполните сведения: имя ссылки, подписка и виртуальная сеть (виртуальная сеть клиента)
    5. Нажмите кнопку Сохранить.

    Схема канала виртуальной сети.

Шаг 7. Проверка возможности подключения к кластеру

Последним шагом является проверка возможности подключения к кластеру. Так как этот кластер является изолированным или частным, получить к нему доступ с помощью любого общедоступного IP-адреса или FQDN невозможно. Вместо этого нам доступно несколько вариантов:

  • настройка VPN-доступа к клиентской виртуальной сети из локальной сети;
  • Развертывание виртуальной машины в клиентской виртуальной сети и доступ к кластеру из этой виртуальной машины

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

Config Значение
Virtual machine name hdi-privlink-client-vm
Изображения Windows 10 Pro, версия 2004 - Gen1
Общедоступные входящие порты Разрешить выбранные порты
Выбрать входящие порты RDP (3389)
Подтверждаю, что у меня есть соответствующая лицензия Windows 10... Флажок установлен
Виртуальная сеть hdi-privlink-client-vnet
Подсеть default

После развертывания клиентской виртуальной машины можно протестировать доступ как через Ambari, так и через SSH.

Чтобы проверить доступ Ambari, выполните приведенные действия.

  1. Откройте веб-браузер на виртуальной машине.
  2. Перейдите по обычному полному доменному имени кластера: https://<clustername>.azurehdinsight.net.
  3. Если пользовательский интерфейс Ambari загружается, значит конфигурация правильно настроена для доступа через Ambari.

Чтобы проверить доступ по протоколу SSH, выполните приведенные действия.

  1. Откройте командную строку, чтобы вызвать окно терминала.
  2. В окне терминала попробуйте подключиться к кластеру по протоколу SSH: ssh sshuser@<clustername>.azurehdinsight.net (замените "sshuser" на пользователя SSH, созданного для кластера).
  3. Если вы можете подключиться, конфигурация правильно настроена для доступа по протоколу SSH.

Управление частными конечными точками для HDInsight

Используя частные конечные точки для кластеров Azure HDInsight, можно сделать так, чтобы клиенты в виртуальной сети могли безопасно обращаться к кластеру по Приватному каналу. Сетевой трафик между клиентами в виртуальной сети и кластером HDInsight передается через магистральную сеть Майкрософт, что позволяет избежать рисков, связанных с использованием общедоступного Интернета.

Схема: интерфейс управления частной конечной точки.

Потребитель службы Приватного канала (например, Фабрика данных Azure) может выбрать один из двух методов утверждения подключения:

  • Автоматический. Если потребитель службы имеет разрешения Azure RBAC для ресурса HDInsight, потребитель может выбрать метод автоматического утверждения. В этом случае, когда запрос достигает ресурса HDInsight, от последнего не требуется никаких действий, а подключение утверждается автоматически.
  • Ручной. Если у потребителя службы нет разрешений Azure RBAC для ресурса HDInsight, потребитель может выбрать метод утверждения вручную. В этом случае запрос на подключение отображается в ресурсах HDInsight как ожидающий. Ресурс HDInsight должен вручную утвердить запрос, прежде чем можно будет установить подключения.

Чтобы управлять частными конечными точками, в представлении кластера на портале Azure перейдите в раздел Сети в области Безопасность и сеть. Здесь можно просмотреть все существующие подключения, состояния подключения и сведения о частных конечных точках.

Можно также утверждать, отклонять или удалять существующие соединения. При создании частного подключения можно указать, к какому подресурсу HDInsight (такому как шлюз или головной узел) нужно подключиться.

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

Действие поставщика услуг Состояние частной конечной точки объекта-получателя службы Description
Нет Не завершено Подключение создается вручную и ожидает утверждения от владельца ресурса Приватного канала.
Утвердить Утвержденная Подключение утверждено автоматически или вручную и готово к использованию.
Отклонить Аннулировано Подключение отклонил владелец ресурса Приватного канала.
Удалить Отключено Подключение удалил владелец ресурса Приватного канала. Частная конечная точка станет информативной и подлежит удалению для очистки.

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