Работает Amazon Linux 2, установлены Apache, PHP, PHP-MySQL и WordPress. Этот AMI использует, скажем, группу безопасности AWS под названием WebDMZ.
Создал базу данных MySQL в Amazon RDS, которая также использует группу безопасности AWS WebDMZ, я скопировал db_name
, db_user
, db_pass
, db_hostname
к /var/www/html/wp-config.php
.
@ www.example.com/wp-admin/install.php
Я получаю:
Ошибка при установлении соединения с базой данных. Время соединения истекло
Если и Amazon Linux 2, и MySQL находятся в одной группе безопасности, не должны ли они иметь возможность общаться друг с другом?
Помощь приветствуется.
редактировать, Я обнаружил, что если я добавил правило для входящих подключений, разрешающее MySQL-соединения из любого места, установка продолжалась, но сомневаюсь, что это безопасный способ?
Если и Amazon Linux 2, и MySQL находятся в одной группе безопасности, не должны ли они иметь возможность общаться друг с другом?
Нет.
Вы должны явно разрешить доступ для членов группы безопасности. Группы безопасности могут открывать доступ на основе диапазонов IP-адресов (xx.xx.xx.xx / xx) или доступ из других групп безопасности. Вот что ты хочешь сделать.
Скажи, что твой WebDMZ
идентификатор группы sg-1234abcd
- вам нужно будет добавить правило, открывающее доступ к TCP-порту 3306 из группы sg-1234abcd
. Просто введите это в поле, которое обычно запрашивает IP-адрес.
По самореференция группу безопасности в правиле вы открываете доступ членам группы.
Надеюсь, это поможет :)
Вы правы, это небезопасно.
Правило для входящего трафика должно разрешать вашему веб-серверу подключаться только к порту MySQL (идентифицированному внутренним IP-адресом), ни один другой сервер не должен иметь возможность связываться с базой данных на этом порту (если вы не начнете использовать его для других служб).
Правильная конфигурация должна заключаться в том, что ваш сервер Wordpress обращен к миру, но затем использует внутренний VPC для связи с сервером MySQL. Это сохраняет базу данных изолированной от Интернета.