Как подключиться к экземпляру AWS (или другому) в частной подсети в VPC с помощью MySQL Workbench?
Моя аранжировка - типичная AWS Сценарий 2 :
Я могу:
- SSH в мой экземпляр NAT, расположенный в моей публичной подсети VPC
- SSH из моего экземпляра NAT в экземпляр db в моей частной подсети VPC
- подключиться к MySQL как root
пользователь однажды подключился к моему частному экземпляру БД
Как правильно настроить систему для удаленного подключения через рабочую среду MySQL?
Создайте пользователя mysql, который может подключаться удаленно:
root
пользователь не может подключиться удаленносоздайте пользователя, которому разрешено подключаться с вашего IP-адреса (или используйте%, что означает любой адрес)
- подключиться к экземпляру db в частной подсети через SSH
- войдите в mysql как root и введите пароль при появлении запроса:
mysql -h localhost -u root -p
- выполните следующий запрос, чтобы создать пользователя
CREATE USER 'username'@'XX.XX.XX.XX' IDENTIFIED BY 'mypassword';
- убедитесь, что добавленный вами пользователь имеет все необходимые привилегии:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'IP' IDENTIFIED BY 'password';
убедитесь, что добавляемые вами пользователи не повторяются ни в имени пользователя, ни в пароле.
- просмотрите пользовательскую таблицу в терминале с помощью следующего запроса mysql:
select * from mysql.user\G;
- рекомендуется удалить анонимного пользователя как для безопасности, так и для потенциальных конфликтов пользователей: https://stackoverflow.com/questions/10299148
после завершения выполнения запроса: FLUSH PRIVILEGES;
Настройте группы безопасности, чтобы разрешить удаленное соединение MySQL через экземпляр NAT:
с WorkBench вы туннелируете SSH до NAT, а затем подключаетесь через порт 3306 к экземпляру db
убедитесь, что IP-адрес, с которого вы подключаетесь, может подключаться к порту 3306 в группе безопасности AWS
- у экземпляра NAT должен быть SSH (22) входящий с вашего IP-адреса
- экземпляр NAT должен иметь MySQL (3306) исходящий в сторону диапазона адресов VPC (например, 10.0.0.0/16)
- экземпляр db в частной подсети VPC должен разрешать входящий MySQL (3306) из диапазона частных IP-адресов VPC (например, 10.0.0.0/16)
Настройте Workbench для подключения к вашему экземпляру db через экземпляр NAT: