Включение Приватного канала в кластере 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.Storage
Microsoft.KeyVault
конечные точки службы в подсеть перед развертыванием кластера. Конечные точки службы направляют трафик непосредственно из виртуальной сети в службу в магистральной сети Microsoft Azure. Так как трафик не покидает пределы магистральной сети, это позволяет и дальше выполнять аудит и мониторинг исходящего интернет-трафика из виртуальных сетей при помощи принудительного туннелирования без воздействия на трафик служб.
Шаг 3. Развертывание шлюза NAT или брандмауэра
Стандартные подсистемы балансировки нагрузки не обеспечивают автоматическое предоставление общедоступного исходящего преобразования сетевых адресов (NAT), подобно базовым подсистемам балансировки нагрузки. Так как кластеры Приватного канала используют стандартные подсистемы балансировки нагрузки, необходимо предоставить собственное решение NAT, например шлюз NAT или NAT, обеспечиваемое брандмауэром, для подключения к исходящим, общедоступным зависимостям HDInsight.
Развертывание шлюза NAT (вариант 1)
Вы можете использовать шлюз NAT, если вы не хотите настраивать брандмауэр или сетевой виртуальный модуль (NVA) для NAT. Чтобы приступить к работе, добавьте шлюз NAT (с новым общедоступным IP-адресом в своей виртуальной сети) в настроенную подсеть виртуальной сети. Этот шлюз отвечает за преобразование частного внутреннего IP-адреса в общедоступный адрес, когда нужно передать трафик за пределы виртуальной сети.
В рамках базовой начальной настройки сделайте следующее:
Выполните поиск по запросу "шлюзы NAT" на портале Azure и нажмите кнопку Создать.
Используйте следующие конфигурации в шлюзе NAT. (Мы не будем включать здесь все конфигурации, поэтому для них можно использовать значения по умолчанию.)
Config Значение Имя шлюза NAT hdi-privlink-nat-gateway Общедоступные IP-префиксы Создание префикса общедоступного IP-адреса Имя префикса общедоступного IP-адреса hdi-privlink-nat-gateway-prefix Размер префикса общедоступного IP-адреса /28 (16 адресов) Виртуальная сеть hdi-privlink-cluster-vnet Имя подсети default После завершения развертывания Шлюза NAT вы можете перейти к следующему шагу.
Настройка брандмауэра (вариант 2)
В рамках базовой начальной настройки сделайте следующее:
- Добавьте в свою виртуальную сеть новую подсеть с именем AzureFirewallSubnet.
- Используйте новую подсеть для настройки нового брандмауэра и добавления политик брандмауэра.
- Используйте частный IP-адрес нового брандмауэра в качестве значения
nextHopIpAddress
в таблице маршрутизации. - Добавьте таблицу маршрутизации в настроенную подсеть виртуальной сети.
Кластеру 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. Затем свяжите их со службами Приватного канала, созданными в ходе развертывания кластера.
Чтобы создать частные конечные точки, сделайте следующее:
Откройте портал Azure и выполните поиск по запросу "Приватный канал".
В результатах щелкните значок Приватного канала.
Щелкните "Создание частной конечной точки" и используйте следующие конфигурации для настройки частной конечной точки Ambari:
Config Значение Имя. hdi-privlink-cluster Тип ресурса Microsoft.Network/privateLinkServices Ресурс gateway-* (это значение должно соответствовать идентификатору развертывания HDI кластера, например gateway-4eafe3a2a67e4cd88762c22a55fe4654) Виртуальная сеть hdi-privlink-client-vnet Подсеть default Повторите эту процедуру, чтобы создать другую закрытую конечную точку для доступа по протоколу SSH, используя следующие конфигурации:
Config Значение Имя. hdi-privlink-cluster-ssh Тип ресурса Microsoft.Network/privateLinkServices Ресурс headnode-* (это значение должно соответствовать идентификатору развертывания HDI кластера, например headnode-4eafe3a2a67e4cd88762c22a55fe4654) Виртуальная сеть hdi-privlink-client-vnet Подсеть default
Внимание
Если вы используете кластер KafkaRestProxy HDInsight, выполните дополнительные действия, чтобы включить частные конечные точки.
После создания частных конечных точек этот этап настройки завершен. Если вы не записали частные IP-адреса, назначенных конечным точкам, выполните следующие действия:
- Откройте виртуальную сеть клиента на портале Azure.
- Перейдите на вкладку "Частные конечные точки".
- Вы должны увидеть перечисленные сетевые интерфейсы Ambari и SSH.
- Щелкните каждый из них и перейдите в колонку "Конфигурация DNS", чтобы просмотреть частный IP-адрес.
- Запишите эти 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, сделайте следующее:
Создайте Частную зону Azure DNS. (Мы не будем включать здесь все конфигурации. Все остальные конфигурации остаются со значениями по умолчанию).
Config Значение Имя. privatelink.azurehdinsight.net Добавьте набор записей в Частную зону DNS для Ambari.
Config Значение Имя. YourPrivateLinkClusterName Тип A — запись псевдонима для IPv4-адреса СРОК ЖИЗНИ 1 Единица срока жизни часов IP-адрес Частный IP-адрес частной конечной точки для доступа Ambari Добавьте набор записей в Частную зону DNS для SSH.
Config Значение Имя. YourPrivateLinkClusterName-ssh Тип A — запись псевдонима для IPv4-адреса СРОК ЖИЗНИ 1 Единица срока жизни часов IP-адрес Частный IP-адрес частной конечной точки для доступа SSH
Внимание
Если вы используете кластер KafkaRestProxy HDInsight, выполните дополнительные действия, чтобы настроить DNS для подключения через частную конечную точку.
Сопоставьте Частную зону DNS с клиентской виртуальной сетью, добавив связь виртуальной сети.
- Откройте Частную зону DNS на портале Azure.
- Перейдите на вкладку "Связи виртуальной сети".
- Нажмите кнопку "Добавить".
- Заполните сведения: имя ссылки, подписка и виртуальная сеть (виртуальная сеть клиента)
- Нажмите кнопку Сохранить.
Шаг 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, выполните приведенные действия.
- Откройте веб-браузер на виртуальной машине.
- Перейдите по обычному полному доменному имени кластера:
https://<clustername>.azurehdinsight.net
. - Если пользовательский интерфейс Ambari загружается, значит конфигурация правильно настроена для доступа через Ambari.
Чтобы проверить доступ по протоколу SSH, выполните приведенные действия.
- Откройте командную строку, чтобы вызвать окно терминала.
- В окне терминала попробуйте подключиться к кластеру по протоколу SSH:
ssh sshuser@<clustername>.azurehdinsight.net
(замените "sshuser" на пользователя SSH, созданного для кластера). - Если вы можете подключиться, конфигурация правильно настроена для доступа по протоколу SSH.
Управление частными конечными точками для HDInsight
Используя частные конечные точки для кластеров Azure HDInsight, можно сделать так, чтобы клиенты в виртуальной сети могли безопасно обращаться к кластеру по Приватному каналу. Сетевой трафик между клиентами в виртуальной сети и кластером HDInsight передается через магистральную сеть Майкрософт, что позволяет избежать рисков, связанных с использованием общедоступного Интернета.
Потребитель службы Приватного канала (например, Фабрика данных Azure) может выбрать один из двух методов утверждения подключения:
- Автоматический. Если потребитель службы имеет разрешения Azure RBAC для ресурса HDInsight, потребитель может выбрать метод автоматического утверждения. В этом случае, когда запрос достигает ресурса HDInsight, от последнего не требуется никаких действий, а подключение утверждается автоматически.
- Ручной. Если у потребителя службы нет разрешений Azure RBAC для ресурса HDInsight, потребитель может выбрать метод утверждения вручную. В этом случае запрос на подключение отображается в ресурсах HDInsight как ожидающий. Ресурс HDInsight должен вручную утвердить запрос, прежде чем можно будет установить подключения.
Чтобы управлять частными конечными точками, в представлении кластера на портале Azure перейдите в раздел Сети в области Безопасность и сеть. Здесь можно просмотреть все существующие подключения, состояния подключения и сведения о частных конечных точках.
Можно также утверждать, отклонять или удалять существующие соединения. При создании частного подключения можно указать, к какому подресурсу HDInsight (такому как шлюз или головной узел) нужно подключиться.
В следующей таблице показаны различные действия ресурса HDInsight и результирующие состояния подключения для частных конечных точек. Позже ресурс HDInsight также может изменить состояние подключения к частной конечной точке без вмешательства потребителя. Действие обновит состояние конечной точки на стороне потребителя.
Действие поставщика услуг | Состояние частной конечной точки объекта-получателя службы | Description |
---|---|---|
Нет | Не завершено | Подключение создается вручную и ожидает утверждения от владельца ресурса Приватного канала. |
Утвердить | Утвержденная | Подключение утверждено автоматически или вручную и готово к использованию. |
Отклонить | Аннулировано | Подключение отклонил владелец ресурса Приватного канала. |
Удалить | Отключено | Подключение удалил владелец ресурса Приватного канала. Частная конечная точка станет информативной и подлежит удалению для очистки. |