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

Настройка AWS PrivateLink для сервиса в вашей инфраструктуре

Доступно на определённых уровнях Enterprise

Эта функция доступна на следующих уровнях dbt Enterprise:

  • Enterprise+
  • Virtual Private

Чтобы узнать больше об этих тарифах, свяжитесь с нами по адресу sales@getdbt.com.

AWS PrivateLink обеспечивает безопасное частное соединение между dbt и сервисами в вашей инфраструктуре. Это могут быть системы контроля версий (VCS), хранилища данных или любые другие приложения, которыми вы управляете. С PrivateLink вам не нужно открывать доступ к сервису из общедоступного интернета. Весь обмен данными происходит по частной сети, что существенно повышает безопасность. Подробнее см. в документации AWS PrivateLink.

Что рассматривается в этом руководстве​

Это руководство посвящено не конкретному сервису или архитектуре серверной части, а сервису конечной точки (Endpoint Service), который соединяет dbt с сервисом в вашей инфраструктуре. Этот процесс должен быть стандартным для большинства сценариев использования.

Область охвата этого руководстваОбласть охвата этого руководства
За рамками руководства

В этом руководстве не рассматриваются настройка и устранение неполадок сервиса в вашей инфраструктуре, балансировщика нагрузки или состояния целевой группы, поскольку такие среды допускают практически неограниченное число вариантов конфигурации. Служба поддержки dbt может по возможности помочь с такими проблемами, однако для ускорения их решения рекомендуем обращаться в службу поддержки AWS.

Для кого предназначено руководство​

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

Терминология​

В этом руководстве используется несколько важных терминов, связанных с AWS PrivateLink. Понимание этих определений поможет успешно выполнить настройку. Более подробное объяснение этих понятий см. в документации AWS PrivateLink.

  • Потребитель (Consumer): В этом контексте потребитель — это dbt, который создает конечную точку VPC для подключения к вашему сервису конечной точки.
  • Поставщик сервиса (Service provider): Ваша организация, которая владеет сервисом за балансировщиком Network Load Balancer, управляет им и создает сервис конечной точки.
  • Сервис конечной точки (Endpoint Service): Ресурс AWS, предоставляющий потребителям доступ к вашему сервису и позволяющий им создавать конечные точки VPC для доступа к нему. Он связан с балансировщиком Network Load Balancer.
  • Имя сервиса (Service Name): Глобально уникальный идентификатор вашего сервиса конечной точки (формат: com.amazonaws.vpce.region.vpce-svc-xxx). Вы передаете его службе поддержки dbt для установления соединения.
  • Network Load Balancer (NLB): Обязательный тип балансировщика нагрузки — внутренний (internal). Он размещается перед вашим сервисом. Для использования PrivateLink ваше приложение должно работать за NLB.
  • Целевая группа (Target Group): Направляет трафик от NLB к экземплярам вашего сервиса (EC2, IP-адресам или ALB).

Предварительные требования​

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

  1. Поддерживаемые типы балансировщиков нагрузки

    dbt официально проверил работу PrivateLink со следующим типом балансировщика нагрузки:

    • Network Load Balancer (Internal)

    Хотя другие конфигурации могут быть совместимы с AWS PrivateLink, в этом руководстве предполагается, что ваш сервис настроен за внутренним балансировщиком Network Load Balancer. Подробнее см. в документации AWS Network Load Balancer.

  2. Работоспособность сервиса

    • Прежде чем продолжить, убедитесь, что ваш сервис или приложение работает за выбранным балансировщиком нагрузки и проходит проверки работоспособности.
  3. ARN роли AWS IAM для dbt

    • Обратитесь в службу поддержки dbt, чтобы получить ARN роли AWS IAM для dbt. Он понадобится, чтобы разрешить dbt подключаться к вашему сервису конечной точки.

Дополнительная настройка NLB​

Следующие настройки необязательны, но рекомендуются при настройке Network Load Balancer для соединения с dbt через PrivateLink.

Межзонная балансировка нагрузки​

Включите межзонную балансировку нагрузки на вашем NLB, чтобы избежать несовпадения зон доступности вашего сервиса и конечной точки VPC dbt. Это обеспечит равномерное распределение трафика между всеми работоспособными целевыми ресурсами независимо от того, из какой зоны доступности поступает запрос.

Настройка группы безопасности​

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

У вас есть два варианта:

ВариантОписание
Отключить применение правил (рекомендуется)Отключите применение правил группы безопасности к трафику PrivateLink. Это самый простой подход, не требующий знания внутренних диапазонов CIDR dbt. В консоли AWS: NLB → Security → Edit → снимите флажок Enforce inbound rules on PrivateLink traffic.
Добавить диапазоны CIDR dbt в правила входящего трафикаЕсли ваш сценарий использования требует применения правил группы безопасности к трафику PrivateLink, обратитесь в службу поддержки dbt, чтобы получить внутренние диапазоны CIDR для добавления в правила входящего трафика группы безопасности вашего NLB.

Подробнее см. в разделе Обновление групп безопасности для Network Load Balancer.

Инструкции​

  1. Войдите в консоль AWS.
  2. Перейдите в аккаунт AWS и регион, в которых расположен сервис в вашей инфраструктуре.

Создание сервиса конечной точки VPC​

  1. В консоли AWS перейдите в VPC → Endpoint Services → Create Endpoint Service

  2. На странице Create endpoint service:

    a. Load balancer type: Выберите Network

    b. Available load balancers: Выберите NLB, размещенный перед вашим сервисом

    c. Acceptance required: Включите этот параметр (рекомендуется), чтобы вручную подтверждать запросы на подключение

    d. Нажмите Create

Предоставление dbt доступа к сервису конечной точки​

  1. После создания сервиса конечной точки выберите его и перейдите на вкладку Allow principals

  2. Нажмите Allow principals и добавьте ARN роли AWS IAM для dbt, полученный от службы поддержки:

    • Principal: arn:aws:iam::<dbt-account-id>:role/MTPL_Admin

Получение имени сервиса конечной точки​

  1. На странице сведений о сервисе конечной точки скопируйте значение Service name (формат: com.amazonaws.vpce.region.vpce-svc-xxx)
Скопируйте имя сервиса конечной точкиСкопируйте имя сервиса конечной точки

Передача сведений о соединении службе поддержки dbt​

  1. Добавьте необходимую информацию в шаблон ниже и отправьте запрос в службу поддержки dbt:
 Шаблон письма в службу поддержки
Subject: New AWS Self-hosted PrivateLink Request

- Type: Self-hosted PrivateLink
- Platform/Service (for example, Postgres, Starburst, Spark, GitLab, etc.):
- **dbt platform account URL:**
- VPC Endpoint Service Name:
- Custom DNS (if HTTPS/TLS):
- DNS record:
- Service Region (for example, us-east-1, eu-west-2):
- dbt AWS environment (US, EMEA, AU, JP):

dbt Labs выполнит настройку приватного подключения от вашего имени. Пожалуйста, заложите 3–5 рабочих дней на завершение этого процесса. Служба поддержки свяжется с вами, когда конечная точка (endpoint) будет доступна.

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

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

Контрольный список настроек​

  1. Группа безопасности NLB

    Сетевой балансировщик нагрузки (NLB), связанный с сервисом конечной точки VPC, должен либо не иметь связанной группы безопасности, либо иметь группу безопасности с правилом, разрешающим запросы из частных диапазонов CIDR dbt. Подробнее см. в разделе Настройка группы безопасности.

    Совет по проверке

    Чтобы проверить, в этом ли причина проблемы, временно добавьте разрешающее правило для 10.0.0.0/8: это должно обеспечить соединение до тех пор, пока правило не будет уточнено с использованием диапазона CIDR, предоставленного dbt.

  2. Прослушиватель NLB и целевая группа

    Убедитесь, что к NLB подключен прослушиватель (Listener), соответствующий порту, к которому пытается подключиться dbt. Для этого прослушивателя должно быть настроено действие перенаправления в целевую группу (Target Group), целевые ресурсы которой указывают на ваш сервис. Хотя бы один из этих ресурсов (а желательно все) должен иметь состояние Healthy. Неработоспособные целевые ресурсы могут указывать на то, что сервис не работает или защищен группой безопасности, не разрешающей запросы от NLB.

  3. Межзонная балансировка нагрузки

    Убедитесь, что для вашего NLB включена межзонная балансировка нагрузки (проверьте вкладку Attributes у NLB в консоли AWS). Если она отключена, а зоны, к которым подключен dbt, не совпадают с зонами, где работает сервис, запросы могут маршрутизироваться некорректно. Подробнее см. в разделе Межзонная балансировка нагрузки.

  4. Таблицы маршрутизации и списки ACL

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

    Совет по проверке

    Один из способов проверки — создать конечную точку VPC в другой VPC вашей сети, чтобы убедиться, что соединение работает независимо от подключения dbt.

Мониторинг​

Чтобы локализовать проблемы соединения через PrivateLink из dbt, можно использовать несколько источников мониторинга для проверки активности запросов. Чтобы в мониторинге появились данные, сначала необходимо отправить запросы на конечную точку. Обратитесь в службу поддержки dbt, чтобы узнать, когда выполнялось тестирование соединения, или запросить новые попытки подключения. Используйте эти временные отметки для сопоставления с активностью в следующих источниках мониторинга.

Мониторинг сервиса конечной точки VPC​

В консоли AWS перейдите в VPC → Endpoint Services. Выберите проверяемый сервис конечной точки и откройте вкладку Monitoring. Измените временной диапазон так, чтобы он включал время тестовых попыток подключения. Если на графиках New connections и Bytes processed есть активность, значит, сервис конечной точки получил запросы, что указывает на корректную маршрутизацию от конечной точки dbt.

Мониторинг NLB​

В консоли AWS перейдите в EC2 → Load Balancers. Выберите проверяемый балансировщик Network Load Balancer (NLB) и откройте вкладку Monitoring. Измените временной диапазон так, чтобы он включал время тестовых попыток подключения. Если на графиках New flow count и Processed bytes есть активность, значит, NLB получил запросы от сервиса конечной точки, что указывает на корректную настройку прослушивателя NLB, целевой группы и группы безопасности.

Журналы потоков VPC (VPC Flow Logs)​

Журналы потоков VPC могут предоставить различную полезную информацию о запросах, маршрутизируемых через ваши VPC, хотя иногда их бывает сложно найти и интерпретировать. Журналы потоков могут записываться в S3 или CloudWatch Logs, поэтому определите, доступны ли эти журналы для вашей VPC, и выполняйте запросы к соответствующему источнику. Журналы потоков содержат идентификатор эластичного сетевого интерфейса (ENI), IP-адреса и порты источника и назначения, а также сведения о том, был ли запрос разрешен или отклонен группой безопасности и/или сетевым списком ACL. Это помогает понять, поступил ли запрос на определенный сетевой интерфейс и был ли он разрешен, что может выявить чрезмерно строгие правила. Подробнее о доступе к журналам потоков VPC и их интерпретации см. в документации AWS.

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

0
Loading