Назад | Перейти на главную страницу

Как навсегда разрешить экземпляру RDS подключаться к моему серверу?

я использую экземпляр Amazon RDS в качестве ведомого для репликации моего голого сервера MySQL в качестве резервной копии.

Я авторизую IP-адрес экземпляра RDS в брандмауэре моего сервера следующим образом:

# iptables \
  --insert INPUT \
  --source xxxxxxx.yyyyyyy.eu-west-1.rds.amazonaws.com \
  --protocol tcp \
  --destination-port mysql \
  --jump ACCEPT

Однако это работает нормально iptables разрешает хост экземпляра в его копию EC2 и вместо этого сохраняет этот:

# iptables --list
...

ACCEPT  tcp  --  ec2-x-x-x-x.eu-west-1.compute.amazonaws.com  anywhere  tcp  dpt:mysql

Проблема в том, что всякий раз, когда экземпляр RDS перезапускается / изменяется / обновляется, обычно перемещается в другой экземпляр EC2, так что даже если *.rds.amazonaws.com хозяин остается прежним, *.compute.amazonaws.com изменения хоста, и экземпляр RDS теряет соединение с моим сервером.

Решение состоит в том, чтобы прямо сейчас я вручную перевыпустил iptables команда.

Есть ли решение, позволяющее постоянно разрешать входящие соединения с IP-адреса, если домен в конфигурации брандмауэра разрешает этот IP-адрес?

Я бы принял решение, включающее firewalld также.

Нет. (Linux) брандмауэры управляются IP, а не доменными именами, и используемые домены разрешаются, когда брандмауэр загружается / перезагружается - иначе это сильно повлияет на производительность.

Firewalld не поможет, поскольку это действительно оболочка для iptables.

Возможно, вам повезет, если вы часто перезагружаете правила брандмауэра или выполняете проверки и удаляете и читаете соответствующее правило, если изменения происходят с помощью сценария (например, через crontab).