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

architecture

title: "Архитектура dbt" id: "architecture" description: "Информация об архитектуре, взаимодействии компонентов и безопасности dbt"

Эта страница поможет практикам и всем, кто интересуется архитектурой и потоками данных dbt.

Об архитектуре dbt

Приложение dbt состоит из двух типов компонентов: статических и динамических. Статические компоненты работают постоянно и обеспечивают высокую доступность функций dbt, таких как веб‑приложение dbt. В свою очередь, динамические компоненты создаются по мере необходимости для выполнения задач, например фоновых заданий или обработки запросов на использование Studio IDE.

dbt доступен в большинстве регионов мира как в конфигурациях single tenant (AWS и Azure), так и в конфигурациях multi-tenant.

dbt использует PostgreSQL в качестве backend‑базы данных, S3‑совместимые объектные хранилища для логов и артефактов, а также решение для хранения данных в Kubernetes для создания динамических постоянных томов.

Все данные, хранящиеся на серверах dbt, защищены с помощью шифрования AES‑256.

Для более детального разбора приложений dbt загрузите PDF с расширенным руководством по архитектуре.

Коммуникация

dbt может взаимодействовать с несколькими внешними сервисами, включая платформы данных, git-репозитории, сервисы аутентификации и каталоги. Все взаимодействия осуществляются по HTTPS (попытки подключения по HTTP автоматически перенаправляются на HTTPS). dbt использует шифрование при передаче данных с помощью криптографического протокола TLS 1.2.

TLS (Transport Layer Security) 1.2 — это промышленный стандартный протокол для шифрования конфиденциальных данных при их передаче через публичный интернет (который не предоставляет встроенного шифрования).

Типичный сценарий, который может часто встречаться, — это сотрудник, работающий в общественном месте, таком как аэропорт или кафе. Пользователь может быть подключен к небезопасной публичной сети, предоставляемой учреждением, к которой подключены и многие другие. Что, если среди них есть злоумышленник, запускающий программу, способную "захватывать" сетевые пакеты и анализировать их по воздуху?

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

Если этот пользователь выполняет команду, которая инициализирует взаимодействие между dbt и хранилищем данных (или git-репозиторием, или сервисом аутентификации) через интернет, такое взаимодействие также шифруется. Это означает, что даже если злоумышленник технически может видеть трафик, проходящий по незащищённой сети, он не сможет прочитать или каким‑либо образом разобрать передаваемую информацию. Он не сможет подслушать или взломать данные каким бы то ни было способом. Вместо этого он увидит бессмысленный набор символов, который невозможно расшифровать.

Для более детальной информации о наших практиках безопасности прочитайте нашу страницу безопасности.

Взаимодействие с хранилищем данных

Основная роль dbt — это обработка данных, а не их хранение. Приложение dbt позволяет пользователям отправлять SQL-запросы в хранилище данных для выполнения преобразований. При этом пользователи могут отправлять SQL, который возвращает клиентские данные, непосредственно в приложение dbt. Эти данные никогда не сохраняются на постоянной основе и существуют только в памяти инстанса на время сессии. Чтобы корректно защитить клиентские данные, необходимо настроить соответствующие права доступа на уровне data warehouse, чтобы предотвратить несанкционированный доступ или хранение чувствительных данных.

Некоторые провайдеры хранилищ данных предлагают расширенные функции безопасности, которые можно использовать в dbt. Private connections позволяют поддерживаемым платформам данных в AWS взаимодействовать с dbt без прохождения трафика через публичный интернет. Snowflake и BigQuery предлагают интеграцию с OAuth, которая добавляет дополнительный уровень безопасности для платформ данных (только для тарифного плана Enterprise).

Синхронизация с git

dbt может синхронизироваться с различными git‑провайдерами, включая Github, Gitlab и Azure DevOps, прямо в своей интегрированной среде разработки (Studio IDE). Обмен данными осуществляется по протоколу HTTPS, а не SSH, и защищён с использованием TLS 1.2 для данных при передаче.

Информация о git‑репозитории хранится на серверах dbt, чтобы быть доступной во время сессий Studio IDE. Когда синхронизация с git отключена, необходимо обратиться в службу поддержки с запросом на удаление синхронизированных данных.

Сервисы аутентификации

Настройки по умолчанию dbt позволяют использовать локальных пользователей с учетными данными, хранящимися в dbt. При этом в качестве альтернативы доступны интеграции с различными сервисами аутентификации, включая сервисы единого входа (SSO). Доступ к функциональности можно предоставлять или ограничивать по ролям с помощью RBAC.

Функции SSO являются важными, поскольку они сокращают количество учетных данных, которые пользователю необходимо поддерживать. Пользователь входит в систему один раз, и токен аутентификации используется совместно всеми интегрированными сервисами (такими как dbt). Этот токен имеет срок действия и должен обновляться через заданные интервалы времени, что требует повторного прохождения процесса аутентификации. Если пользователь отключен в сервисе‑провайдере SSO, его доступ к dbt также отключается, и он не может обойти это ограничение с помощью локальных учетных данных.

Snowflake и BigQuery предлагают сервисы OAuth (используют JSON для передачи информации и API‑вызовы для аутентификации) в качестве альтернативы SAML (использует XML для передачи информации и cookie сессий для аутентификации). Пользователи могут аутентифицироваться через платформу данных для безопасного доступа к dbt и предотвращения доступа в случае отзыва учетных данных.

Безопасность

dbt Labs стремится поддерживать отраслевые стандарты безопасности в облаке и соответствие GDPR. Наши сертификаты соответствия включают следующее:

  • SOC2 Type II — оценивает среду контроля безопасности поставщика услуг в соответствии с принципами и критериями доверительных услуг, установленными Американским институтом дипломированных общественных бухгалтеров (AICPA).
  • ISO27001:2013 — глобально признанный стандарт для создания и сертификации системы управления информационной безопасностью (ISMS).
  • GDPR - dbt Labs стремится поддерживать стандарты соответствия GDPR. Подробнее о нашем Дополнении к обработке данных.

Для более детальной информации о наших практиках безопасности прочитайте нашу страницу безопасности.

Нашли ошибку?

0
Loading