Настройка Snowflake Private Service Connect
Эта функция доступна на следующих уровнях dbt Enterprise:
- Enterprise+
- Virtual Private
Чтобы узнать больше об этих тарифах, свяжитесь с нами по адресу sales@getdbt.com.
Следующие шаги помогут вам настроить эндпоинт GCP Snowflake Private Service Connect (PSC) в мультитенантной среде dbt.
Конечные точки частного подключения не поддерживают соединения между разными облачными провайдерами (AWS, Azure и GCP). Чтобы частное подключение работало, и dbt, и сервер (например, Snowflake) должны быть размещены у одного облачного провайдера. Например, dbt, размещённый в AWS, не может подключаться к сервисам, размещённым в Azure, а dbt, размещённый в Azure, не может подключаться к сервисам, размещённым в GCP.
Соединения GCP Internal Stage PSC в настоящее время не поддерживаются.
Настройка GCP Private Service Connect
Проект dbt Labs в GCP заранее авторизован для подключения к аккаунтам Snowflake.
Чтобы настроить экземпляры Snowflake, размещённые в GCP, для использования Private Service Connect:
-
Выполните системную функцию Snowflake SYSTEM$GET_PRIVATELINK_CONFIG и скопируйте результат.
-
Добавьте необходимую информацию в следующий шаблон и отправьте запрос в службу поддержки dbt:
*По умолчанию dbt будет настроен на использование privatelink-account-url из предоставленной конфигурации SYSTEM$GET_PRIVATELINK_CONFIG в качестве конечной точки PrivateLink. По запросу вместо него можно использовать regionless-privatelink-account-url.
dbt Labs выполнит настройку приватного подключения от вашего имени. Пожалуйста, заложите 3–5 рабочих дней на завершение этого процесса. Служба поддержки свяжется с вами, когда конечная точка (endpoint) будет доступна.
Создание подключения в dbt
После того как служба поддержки dbt завершит настройку, вы сможете создавать новые подключения с использованием PrivateLink.
- Перейдите в Account Settings → Projects → Create new project.
- В разделе Configure your development environment step выберите Add new connection.
- Вы перейдёте на страницу Add new connection. Выберите Snowflake.
- В разделе Settings выберите PrivateLink Endpoint.
- Выберите частную конечную точку из раскрывающегося списка (поле имени хоста/учётной записи заполнится автоматически).
- Настройте остальные параметры платформы данных.
- Проверьте подключение и сохраните его.
Настройка сетевых политик
Если ваша организация использует сетевые политики Snowflake для ограничения доступа к вашей учетной записи Snowflake, необходимо добавить сетевое правило для dbt.
Запросите идентификатор подключения PSC в службе поддержки dbt, чтобы использовать его в сетевом правиле. Snowflake поддерживает GCPPSCID в качестве типа идентификатора сетевого правила, и именно этот подход рекомендуется использовать. Идентификатор подключения PSC однозначно определяет конечную точку подключения вашей организации, тогда как правила на основе IP-адресов используют диапазоны CIDR, которые могут быть общими для нескольких клиентов dbt.
Использование UI
Откройте интерфейс Snowflake и выполните следующие действия:
- Перейдите на вкладку Security.
- Нажмите Network Rules.
- Нажмите Add Rule.
- Задайте имя правила.
- Выберите базу данных и схему, в которых будет храниться правило. Этот выбор используется для настройки разрешений и организации объектов; на само правило он не влияет.
- Установите тип
GCPPSCIDи режимIngress. - Введите идентификатор подключения PSC, предоставленный службой поддержки dbt, в поле идентификатора и нажмите Enter.
- Нажмите Create Network Rule.
- На вкладке Network Policy отредактируйте политику, в которую хотите добавить правило. Это может быть политика уровня аккаунта или политика для конкретных пользователей, подключающихся из dbt.
- Добавьте новое правило в список разрешённых и нажмите Update Network Policy.
Использование SQL
Для быстрой автоматизированной настройки сетевых правил с помощью SQL в Snowflake используйте следующие команды, которые позволяют создавать и настраивать правила доступа для dbt. Эти примеры SQL показывают, как добавить сетевое правило и соответствующим образом обновить сетевую политику.
- Создайте новое сетевое правило с помощью следующего SQL:
CREATE NETWORK RULE allow_dbt_cloud_access
MODE = INGRESS
TYPE = GCPPSCID
VALUE_LIST = ('<PSC_CONNECTION_ID>'); -- Замените на идентификатор подключения PSC, полученный от службы поддержки dbt
- Добавьте правило в сетевую политику с помощью следующего SQL:
ALTER NETWORK POLICY <network_policy_name>
ADD ALLOWED_NETWORK_RULE_LIST =('allow_dbt_cloud_access');