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

В отличие от AWS и GCP, Azure поддерживает межрегиональное подключение через Private Link. Это позволяет вам устанавливать соединения между VNets, расположенными в разных регионах, где развернуты ваши сервисы ClickHouse.
Могут применяться дополнительные сборы за межрегиональный трафик. Пожалуйста, проверьте последнюю документацию Azure.
Пожалуйста, выполните следующие шаги, чтобы включить Azure Private Link:
- Получите псевдоним подключения Azure для Private Link
- Создайте частный конечный пункт в Azure
- Добавьте GUID частного конечного пункта в вашу организацию ClickHouse Cloud
- Добавьте GUID частного конечного пункта в список разрешенных сервисов
- Получите доступ к вашему сервису ClickHouse Cloud, используя Private Link
Полный пример Terraform для Azure Private Link здесь.
Получите псевдоним подключения 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 и группу ресурсов для частного конечного пункта.
- Имя: Установите имя для Частного конечного пункта.
- Регион: Выберите регион, в котором развернута VNet, которая будет подключаться к ClickHouse Cloud через Private Link.
После завершения вышеуказанных шагов нажмите кнопку Далее: Ресурс.

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

- Виртуальная сеть: Выберите VNet, к которой вы хотите подключить ClickHouse Cloud, используя Private Link.
- Подсеть: Выберите подсеть, в которой будет создан частный конечный пункт.
Дополнительно:
- Группа безопасности приложений: Вы можете прикрепить ASG к частному конечному пункту и использовать его в группах безопасности сети для фильтрации сетевого трафика к/от частного конечного пункта.
Нажмите кнопку Далее: DNS.

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

При желании вы можете прикрепить теги к вашему частному конечному пункту.
Нажмите кнопку Далее: Обзор + Создать.

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

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

Вариант 2: Использование Terraform для создания частного конечного пункта в Azure
Используйте шаблон ниже для создания частного конечного пункта с помощью Terraform:
Получение resourceGuid
частного конечного пункта
Чтобы использовать Private Link, вам нужно добавить GUID соединения частного конечного пункта в список разрешенных сервисов.
GUID ресурса частного конечного пункта доступен только в Azure Portal. Откройте частный конечный пункт, созданный на предыдущем шаге, и нажмите JSON View:

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

Настройка DNS для Private Link
Вам необходимо создать частную 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
- Откройте группу ресурсов
MyAzureResourceGroup
и выберите частную зону${region_code}.privatelink.azure.clickhouse.cloud
. - Выберите + Запись.
- Для Имени введите
*
. - Для IP адреса введите IP адрес, который вы видите для частного конечного пункта.
- Выберите OK.

Вариант 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.
Запустите следующую команду для добавления частного конечного пункта в список разрешенных сервисов:
Вы также можете выполнить следующую команду, чтобы удалить частный конечный пункт из списка разрешенных сервисов:
После добавления или удаления частного конечного пункта из списка разрешенных сервисов выполните следующую команду для применения изменений к вашей организации:
Получите доступ к вашему сервису ClickHouse Cloud, используя Private Link
Каждый сервис с включенным Private Link имеет публичный и частный конечный пункт. Для подключения с использованием Private Link вам необходимо использовать частный конечный пункт, который будет privateDnsHostname
.
Частное DNS имя хоста доступно только из вашей Azure VNet. Не пытайтесь разрешить DNS хост с машины, находящейся вне Azure VNet.
Получение частного DNS имени хоста
Вариант 1: Консоль ClickHouse Cloud
В консоли ClickHouse Cloud перейдите в Настройки. Нажмите кнопку Настроить частный конечный пункт. В открывшемся поле скопируйте 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.