Поделиться через


Включение Private Link в кластере HDInsight

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

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

Примечание.

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

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

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

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

Шаг 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 на базе Private Link, рекомендуется добавить конечные точки служб Microsoft.SQL, Microsoft.Storage, и Microsoft.KeyVault в вашу подсеть до развертывания кластера. Конечные точки службы направляют трафик непосредственно из виртуальной сети в службу в магистральной сети Microsoft Azure. Так как трафик не покидает пределы магистральной сети, это позволяет и дальше выполнять аудит и мониторинг исходящего интернет-трафика из виртуальных сетей при помощи принудительного туннелирования без воздействия на трафик служб.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Схема среды Private Link перед созданием кластера.

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

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

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

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

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

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

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

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

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

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

  2. В результатах щелкните значок приватной ссылки.

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

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

    Схема вкладки Схема вкладки ресурсов для Private Link. Схема вкладки виртуальной сети для Private Link. Схема вкладки конечной точки DNS для Private Link. Схема вкладки тега для Private Link. Схема вкладки обзора для Private Link.

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

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

Внимание

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

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

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

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

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

<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, но она также распространяется и на другие конечные точки кластера.

Схема архитектуры Private Link.

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

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

    Конфигурация Значение
    Имя. privatelink.azurehdinsight.net

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

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

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

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

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

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

    Схема добавления записи SSH в зону DNS Private Link.

Внимание

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

  1. Ассоциируйте частную зону DNS с клиентской виртуальной сетью, добавив ссылку на виртуальную сеть.

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

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

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

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

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

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

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

После развертывания клиентской виртуальной машины можно протестировать доступ как через 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 также может изменить состояние подключения к частной конечной точке без вмешательства потребителя. Действие обновит состояние конечной точки на стороне потребителя.

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

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