Перейти к основному содержимому
Перейти к основному содержимому

Azure Private Link

примечание

Azure Private Link можно настроить только на Production сервисах ClickHouse Cloud. Development сервисы не поддерживаются.

Этот руководствo показывает, как использовать Azure Private Link для обеспечения частного подключения через виртуальную сеть между Azure (включая услуги, принадлежащие клиентам и партнерам Microsoft) и ClickHouse Cloud. Azure Private Link упрощает сетевую архитектуру и обеспечивает безопасность соединения между конечными точками Azure, устраняя риск утечки данных в публичный интернет.

Обзор PrivateLink

В отличие от AWS и GCP, Azure поддерживает межрегиональное подключение через Private Link. Это позволяет вам устанавливать соединения между VNets, расположенными в разных регионах, где развернуты ваши сервисы ClickHouse.

примечание

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

Пожалуйста, выполните следующие шаги, чтобы включить Azure Private Link:

  1. Получите псевдоним подключения Azure для Private Link
  2. Создайте частный конечный пункт в Azure
  3. Добавьте GUID частного конечного пункта в вашу организацию ClickHouse Cloud
  4. Добавьте GUID частного конечного пункта в список разрешенных сервисов
  5. Получите доступ к вашему сервису ClickHouse Cloud, используя Private Link

Полный пример Terraform для Azure Private Link здесь.

Вариант 1: Консоль ClickHouse Cloud

В консоли ClickHouse Cloud откройте сервис, который вы хотите подключить через PrivateLink, затем откройте меню Настройки. Нажмите кнопку Настроить частный конечный пункт. Скопируйте Имя сервиса, которое будет использоваться для настройки Private Link.

Частные конечные пункты

Вариант 2: API

Перед тем как начать, вам нужен ключ API ClickHouse Cloud. Вы можете создать новый ключ или использовать существующий. Обратите внимание, что вам потребуется ключ Admin, чтобы управлять конфигурацией Private Link.

Когда у вас будет ваш ключ API, задайте следующие переменные окружения перед выполнением любых команд:

Получите идентификатор экземпляра из вашего региона:

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

Создайте переменную окружения INSTANCE_ID, используя идентификатор, который вы получили на предыдущем шаге:

Получите свой псевдоним подключения Azure и Private DNS имя хоста для Private Link:

Запомните endpointServiceId. Вы будете использовать это значение на следующем шаге.

Создайте частный конечный пункт в Azure

В этом разделе мы создадим частный конечный пункт в Azure. Вы можете использовать либо Azure Portal, либо Terraform.

Вариант 1: Использование Azure Portal для создания частного конечного пункта в Azure

В Azure Portal откройте Центр частных ссылок → Частные конечные пункты.

Откройте Azure Private Center

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

Откройте Azure Private Center

На следующем экране укажите следующие параметры:

  • Подписка / Группа ресурсов: Пожалуйста, выберите подписку Azure и группу ресурсов для частного конечного пункта.
  • Имя: Установите имя для Частного конечного пункта.
  • Регион: Выберите регион, в котором развернута VNet, которая будет подключаться к ClickHouse Cloud через Private Link.

После завершения вышеуказанных шагов нажмите кнопку Далее: Ресурс.

Создание основного частного конечного пункта

Выберите вариант Подключиться к ресурсу Azure по идентификатору ресурса или псевдониму.

В поле Идентификатор ресурса или псевдоним используйте endpointServiceId, который вы получили на шаге Получите псевдоним подключения Azure для Private Link.

Нажмите кнопку Далее: Виртуальная сеть.

Выбор ресурса частного конечного пункта
  • Виртуальная сеть: Выберите VNet, к которой вы хотите подключить ClickHouse Cloud, используя Private Link.
  • Подсеть: Выберите подсеть, в которой будет создан частный конечный пункт.

Дополнительно:

  • Группа безопасности приложений: Вы можете прикрепить ASG к частному конечному пункту и использовать его в группах безопасности сети для фильтрации сетевого трафика к/от частного конечного пункта.

Нажмите кнопку Далее: DNS.

Выбор виртуальной сети частного конечного пункта

Нажмите кнопку Далее: Теги.


Конфигурация DNS частного конечного пункта

При желании вы можете прикрепить теги к вашему частному конечному пункту.

Нажмите кнопку Далее: Обзор + Создать.


Теги частного конечного пункта

Наконец, нажмите кнопку Создать.

Обзор частного конечного пункта

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

Откройте сетевой интерфейс, связанный с частным конечным пунктом, и скопируйте Частный IPv4 адрес (10.0.0.4 в этом примере), эта информация потребуется на следующих шагах.

IP адрес частного конечного пункта

Вариант 2: Использование Terraform для создания частного конечного пункта в Azure

Используйте шаблон ниже для создания частного конечного пункта с помощью Terraform:

Получение resourceGuid частного конечного пункта

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

GUID ресурса частного конечного пункта доступен только в Azure Portal. Откройте частный конечный пункт, созданный на предыдущем шаге, и нажмите JSON View:

Просмотр частного конечного пункта

В свойствах найдите поле resourceGuid и скопируйте это значение:

GUID ресурса частного конечного пункта

Вам необходимо создать частную DNS зону (${location_code}.privatelink.azure.clickhouse.cloud) и прикрепить ее к вашей VNet, чтобы получить доступ к ресурсам через Private Link.

Создайте частную DNS зону

Вариант 1: Использование Azure Portal

Пожалуйста, следуйте данному руководству, чтобы создать частную DNS зону Azure, используя Azure Portal.

Вариант 2: Использование Terraform

Используйте следующий шаблон Terraform для создания частной DNS зоны:

Создайте запись DNS с подстановочным знаком

Создайте запись с подстановочным знаком и укажите ваш частный конечный пункт:

Вариант 1: Использование Azure Portal

  1. Откройте группу ресурсов MyAzureResourceGroup и выберите частную зону ${region_code}.privatelink.azure.clickhouse.cloud.
  2. Выберите + Запись.
  3. Для Имени введите *.
  4. Для IP адреса введите IP адрес, который вы видите для частного конечного пункта.
  5. Выберите OK.
Настройка DNS Wildcard для Private Link

Вариант 2: Использование Terraform

Используйте следующий шаблон Terraform для создания записи DNS с подстановочным знаком:

Чтобы связать частную DNS зону с виртуальной сетью, вам необходимо создать ссылку на виртуальную сеть.

Вариант 1: Использование Azure Portal

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

Вариант 2: Использование Terraform

Используйте следующий шаблон Terraform для связывания виртуальной сети с вашей частной DNS зоной:

Проверьте настройку DNS

Любая запись в домене westus3.privatelink.azure.clickhouse.cloud должна указывать на IP-адрес частного конечного пункта. (10.0.0.4 в этом примере).

Добавьте GUID частного конечного пункта в вашу организацию ClickHouse Cloud

Вариант 1: Консоль ClickHouse Cloud

Чтобы добавить конечный пункт в организацию, перейдите к шагу Добавьте GUID частного конечного пункта в список разрешенных сервисов. Добавление GUID частного конечного пункта с помощью консоли ClickHouse Cloud в список разрешенных сервисов автоматически добавит его в организацию.

Чтобы удалить конечный пункт, откройте Детали организации -> Частные конечные пункты и нажмите кнопку удаления, чтобы убрать конечный пункт.

Удалить частный конечный пункт

Вариант 2: API

Задайте следующие переменные окружения перед выполнением любых команд:

Задайте переменную окружения VPC_ENDPOINT, используя данные из шага Получение resourceGuid частного конечного пункта.

Запустите следующую команду, чтобы добавить частный конечный пункт:

Вы также можете выполнить следующую команду, чтобы удалить частный конечный пункт:

После добавления или удаления частного конечного пункта выполните следующую команду, чтобы применить изменения к вашей организации:

Добавьте GUID частного конечного пункта в список разрешенных сервисов

По умолчанию сервис ClickHouse Cloud недоступен через соединение Private Link, даже если соединение Private Link одобрено и установлено. Вам нужно явно добавить GUID частного конечного пункта для каждого сервиса, который должен быть доступен с использованием Private Link.

Вариант 1: Консоль ClickHouse Cloud

В консоли ClickHouse Cloud откройте сервис, который вы хотите подключить через PrivateLink, затем перейдите в Настройки. Введите Идентификатор конечного пункта, полученный на шаге Получение resourceGuid частного конечного пункта.

примечание

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

Фильтр частных конечных пунктов

Вариант 2: API

Задайте эти переменные окружения перед выполнением любых команд:

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

Запустите следующую команду для добавления частного конечного пункта в список разрешенных сервисов:

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

После добавления или удаления частного конечного пункта из списка разрешенных сервисов выполните следующую команду для применения изменений к вашей организации:

Каждый сервис с включенным Private Link имеет публичный и частный конечный пункт. Для подключения с использованием Private Link вам необходимо использовать частный конечный пункт, который будет privateDnsHostname.

примечание

Частное DNS имя хоста доступно только из вашей Azure VNet. Не пытайтесь разрешить DNS хост с машины, находящейся вне Azure VNet.

Получение частного DNS имени хоста

Вариант 1: Консоль ClickHouse Cloud

В консоли ClickHouse Cloud перейдите в Настройки. Нажмите кнопку Настроить частный конечный пункт. В открывшемся поле скопируйте DNS Имя.

Имя DNS частного конечного пункта

Вариант 2: API

Задайте следующие переменные окружения перед выполнением любых команд:

Запустите следующую команду:

Вы должны получить ответ, аналогичный следующему:

В этом примере соединение с хостом xxxxxxx.region_code.privatelink.azure.clickhouse.cloud будет направлено через Private Link. Тем временем, xxxxxxx.region_code.azure.clickhouse.cloud будет направлено через интернет.

Используйте privateDnsHostname, чтобы подключиться к вашему сервису ClickHouse Cloud с использованием Private Link.

Устранение неполадок

Проверьте настройку DNS

Все DNS записи из зоны ${region_code}.privatelink.azure.clickhouse.cloud. должны указывать на внутренний IP адрес из шага Создание частного конечного пункта в Azure. В этом примере регион - westus3.

Запустите следующую команду:

Вы должны получить следующий ответ:

Соединение сброшено соперником

Скорее всего, GUID частного конечного пункта не был добавлен в список разрешенных сервисов. Вернитесь к шагу Добавьте GUID частного конечного пункта в список разрешенных сервисов.

Частный конечный пункт в состоянии ожидания

Скорее всего, GUID частного конечного пункта не был добавлен в список разрешенных сервисов. Вернитесь к шагу Добавьте GUID частного конечного пункта в список разрешенных сервисов.

Проверьте подключение

Если у вас есть проблемы с подключением через Private Link, проверьте ваше подключение с помощью openssl. Убедитесь, что статус конечного пункта Private Link равен Accepted.

OpenSSL должен быть способен подключиться (смотрите CONNECTED в выводе). errno=104 ожидаем.

Проверка фильтров частного конечного пункта

Задайте следующие переменные окружения перед выполнением любых команд:

Запустите следующую команду, чтобы проверить фильтры частного конечного пункта:

Дополнительная информация

Для получения дополнительной информации о Azure Private Link, пожалуйста, посетите azure.microsoft.com/en-us/products/private-link.