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

подключиться к экземпляру db в частной подсети VPC с помощью MySQL Workbench

Как подключиться к экземпляру AWS (или другому) в частной подсети в VPC с помощью MySQL Workbench?

Моя аранжировка - типичная AWS Сценарий 2 :

Я могу:
- SSH в мой экземпляр NAT, расположенный в моей публичной подсети VPC
- SSH из моего экземпляра NAT в экземпляр db в моей частной подсети VPC
- подключиться к MySQL как root пользователь однажды подключился к моему частному экземпляру БД

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

Подключение к базе данных в экземпляре частной подсети через NAT с помощью MySQL Workbench


Создайте пользователя 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:

  • открыть WorkBench
  • создать новое соединение и дать ему имя (например, my_vpc_db1)
    - выберите «Стандартный TCP / IP через SSH» в качестве метода подключения
    - SSH-хост - это общедоступный IP-адрес NAT, например XX.XX.XX.XX
    - Имя пользователя SSH = ec2-user
    - Пароль SSH пуст (при необходимости удалите его)
    - Файл ключей SSH = перейдите к местоположению файла key_pair.pem
    - MySQL Hostname = частный IP-адрес экземпляра db в VPC
    - Порт сервера MySQL = 3306
    - username = имя, которое вы только что добавили в CREATE USER
    - пароль = только что добавлен в CREATE USER