Общий доступ после присоединения групп безопасности - PullRequest
0 голосов
/ 04 июня 2018

Я сталкиваюсь с ситуацией, когда мои экземпляры RDS (PostgreSQL) не могут быть подключены за пределами VPC, даже после того, как я добавил группу безопасности, которая открывает порт 5432 для всех IP-адресов, и настроил Да в разделе общего доступа.

Информация RDS: RDS info

Группа безопасности: Security group info

Кто-нибудь сталкивался с такой же ситуацией?Любое решение, чтобы это исправить?

Я предполагаю, что есть некоторая задержка в настройке раздела Public access или группы безопасности.

1 Ответ

0 голосов
/ 04 июня 2018

Учитывая, что вы можете подключиться к экземпляру EC2, и все остальное выглядит правильно настроенным, вам необходимо убедиться, что ваша группа подсетей использует общедоступные подсети, если вы хотите предоставить свою базу данных публично.Вы можете проверить свою группу подсетей и подсети на деталях экземпляра для своего экземпляра RDS.В разделе «Безопасность и сеть» вы должны найти что-то вроде:

Группа подсетей

examplegroup

Подсети

subnet-84b243ef
subnet-etu1769c
subnet-186b3f30

Вызатем необходимо просмотреть эти подсети и выяснить, как они настроены:

  • Перейти на панель мониторинга VPC
  • Нажмите подсети
  • Выберите подсеть, которую вы хотите проверить
  • Щелкните по таблице маршрутов
  • Если она общедоступна, вы должны увидеть что-то вроде этого:

Пример таблицы маршрутов:

Destination | Target

10.0.0.0/16 | local

0.0.0.0/0   | igw-e2f87847

An igwуказывает на интернет-шлюз.Если вы видите что-то вроде nat вместо записи 0.0.0.0/0, это, вероятно, означает, что это частная подсеть.

Вы можете сделать это программно в bash, используя aws cli и jq.Это выведет список всех таблиц маршрутов, связанных с подсетями группы подсетей данного экземпляра базы данных:

instance_name='example'
aws rds describe-db-instances --filter Name=db-instance-id,Values=${instance_name} | jq .DBInstances[].DBSubnetGroup.Subnets[].SubnetIdentifier -r | while read subnet; do
  aws ec2 describe-route-tables --filters Name=association.subnet-id,Values=${subnet} | jq .RouteTables[].Routes
done
...