Репликация DMS между учетными записями для экземпляров RDS за компьютерами Bastion
У меня есть производственные стеки внутри производственной учетной записи и стеки разработки внутри учетной записи разработки. Стеки идентичны и настроены следующим образом:
- Каждый стек как свой собственный VPC.
- Внутри VPC находятся две общедоступные подсети, охватывающие AZ, и две частные подсети, охватывающие AZ.
- Частные подсети содержат экземпляр RDS.
- Публичные подсети содержат экземпляр Bastion EC2, который может получить доступ к экземпляру RDS.
Чтобы получить доступ к экземпляру RDS, мне нужно либо подключиться к SSH на компьютере Bastion и получить к нему доступ оттуда, либо я создаю SSH-туннель через Bastion для доступа к нему через клиентское приложение базы данных, такое как PGAdmin.
Текущая настройка DMS:
Я хотел бы иметь возможность использовать DMS (служба миграции баз данных) для репликации экземпляра RDS из производства в разработку. Пока я пробую следующее, но не могу заставить его работать:
Создайте одноранговое соединение VPC между VPC разработки и производственным VPC. Создайте экземпляр репликации в частной подсети VPC разработки. Обновите таблицы маршрутизации частной подсети в VPC разработки, чтобы направлять трафик к CIDR производственного VPC через одноранговое соединение VPC. Группа безопасности для экземпляра репликации может обращаться к обоим экземплярам RDS.
Главная проблема:
При создании исходной конечной точки в DMS мастер показывает только экземпляры RDS из той же учетной записи и того же региона и позволяет настраивать только экземпляры RDS с использованием имен серверов и портов, однако к экземплярам RDS в моих стеках можно получить доступ только через Бастионные машины с использованием туннелирования. Поэтому соединение с конечной точкой тестирования всегда заканчивается неудачей.
Любые идеи о том, как добиться этой кросс-учетной записи?
Любые хорошие пошаговые блоги, которые подробно описывают, как это сделать? Я нашел несколько, но у них, кажется, нет экземпляров RDS, сидящих за бастионными машинами, и поэтому все они предполагают, что мастер настройки конечной точки может быть заполнен с использованием имен серверов и портов.
Большое спасибо.
1 ответ
Защита экземпляров RDS через хост Bastion, разумеется, является надежной практикой безопасности для доступа разработчиков и пользователей.
Однако для службы миграции DMS следует ожидать открытия группы безопасности для экземпляров базы данных Target и Source RDS, чтобы у экземпляра миграции был доступ к обоим.
Из службы сетевой безопасности для службы миграции баз данных AWS:
Экземпляр репликации должен иметь доступ к исходной и целевой конечным точкам. Группа безопасности для экземпляра репликации должна иметь сетевые ACL или правила, которые разрешают выход из экземпляра через порт базы данных в конечные точки базы данных.
Конечные точки базы данных должны включать сетевые ACL и правила групп безопасности, которые разрешают входящий доступ из экземпляра репликации. Этого можно добиться, используя группу безопасности экземпляра репликации, частный IP-адрес, публичный IP-адрес или публичный адрес шлюза NAT, в зависимости от вашей конфигурации.
См. https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.Network.html
Для сетевой адресации и для открытия частной подсети RDS вам потребуется NAT как для источника, так и для цели. Их можно легко добавить, а затем прекратить после миграции.
Теперь вы можете использовать шлюз трансляции сетевых адресов (NAT), высокодоступную управляемую службу AWS, которая позволяет легко подключаться к Интернету из экземпляров в частной подсети в виртуальном частном облаке AWS (VPC).