AWS RDS MySQL Как ограничить доступ к БД для одного экземпляра EC2
Недавно я унаследовал обслуживание учетной записи AWS и заметил, что доступ к БД широко открыт для любой сети, где угодно! Поэтому я решил, что все должно быть просто, как когда мы делаем это с нашими собственными виртуальными машинами. За исключением Amazon AWS EC2, экземпляры имеют внутренний IP и публичный IP, а иногда и эластичный IP. Поэтому я подумал, что все в порядке, я поищу в Google и найду простую быструю запись, а там, похоже, ее нет. Так может кто-нибудь, пожалуйста, предоставьте здесь простое описание того, как это сделать. Я понимаю, что есть три метода безопасности RDS и так далее. Если у вас нет времени или желания покрыть все три, просто выберите тот, который вам нравится, и вы использовали его в качестве примера. Если я не получу хорошего ответа на этот вопрос в течение дня или около того, я попрошу документы и соберу все вместе, заранее спасибо!
Ну, я немного повозился с этим. Документы не слишком наводят на размышления. Я обнаружил в экземпляре EC2, которому назначен Elastic IP, мне пришлось использовать частный IP, разрешенный в группе безопасности, которую я применил к базе данных RDS MySQL. Эластичный IP, назначенный или назначенный UN, не влиял на соединение. На экземпляре EC2, которому не был назначен Elastic IP, мне пришлось использовать Public IP, разрешенный в группе безопасности. Частный IP не имеет значения. Это кажется немного странным для меня.
1 ответ
Экземпляр службы реляционной базы данных Amazon (RDS) обычно должен оставаться закрытым для предотвращения доступа из Интернета. Только в редких случаях экземпляр RDS должен быть доступен в Интернете.
Экземпляр RDS может быть защищен несколькими способами:
1. Запустите его в частной подсети. Виртуальное частное облако (VPC) может быть настроено с публичной и частной подсетями. Запуск экземпляра RDS в частной подсети предотвратит доступ из Интернета. Если по-прежнему требуется доступ через Интернет (например, к вашей корпоративной сети), создайте безопасное VPN-соединение между VPC и вашей корпоративной сетью.
2. Использование групп безопасности Группы безопасности работают как брандмауэр вокруг каждого отдельного экземпляра EC2. Они определяют, какие порты и диапазоны IP-адресов разрешены для входящего и исходящего доступа. По умолчанию исходящий доступ разрешен, но входящий доступ НЕ разрешен.
3. Нет общедоступного IP-адреса. Если экземпляр RDS НЕ имеет общедоступного IP-адреса, к нему нельзя получить прямой доступ из Интернета.
4. Списки контроля доступа к сети Они похожи на группы безопасности, но работают на уровне подсети. Хорошо подходит для управления тем, какие слои приложения могут общаться друг с другом, но не подходит для защиты конкретных экземпляров EC2 или RDS.
Таким образом, для того, чтобы экземпляр RDS был общедоступным, он должен иметь все следующее:
- Публичный IP-адрес
- Группа безопасности, разрешающая входящий доступ
- Расположен в общедоступной подсети
- Открытые сетевые правила ACL
Для вашей ситуации я бы порекомендовал:
- Изменить экземпляр RDS и установить
PubliclyAccessible
ложно. Это удалит публичный IP-адрес. - Создайте новую группу безопасности (я буду называть ее "SG1") и назначьте ее одному экземпляру EC2, которому вы хотите разрешить связь с экземпляром RDS.
- Измените группу безопасности, связанную с экземпляром RDS, и разрешите входящий обмен данными с SG1 (который разрешает обмен данными с экземпляром EC2). Обратите внимание, что это относится к самой группе безопасности SG1, а не к каким-либо конкретным IP-адресам.