невозможно подключиться к общедоступному экземпляру postgresql rds

23

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

Вот настройки базы данных, обратите внимание, что она помечена как Publicly Accessible: Настройки RDS

Вот настройки группы безопасности, обратите внимание, что они широко открыты (подтверждено в настройках RDS выше зеленой подсказкой «санкционировано» рядом с конечной точкой): Настройки группы безопасности

Вот команда, которую я пытаюсь использовать для подключения:

psql --host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \
     --port=5432 
     --username=masteruser 
     --password 
     --dbname=testdb

И вот результат, который я получаю, когда пытаюсь подключиться с Yosemite MacBook Pro (обратите внимание, что он разрешается до 54. * IP-адрес):

psql: could not connect to server: Operation timed out
    Is the server running on host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting
    TCP/IP connections on port 5432?

У меня нет какого-либо брандмауэра, и я могу подключиться к общедоступным экземплярам PostgreSQL от других провайдеров (например, Heroku).

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

Обновить

В комментарии приведены правила входящего ACL для VPC по умолчанию: Конфигурация ACL сети

Эдвард В. Бриджес
источник
1
Вы случайно не связались с NetworkACL? Я бы искал там возможную настройку, которая могла бы блокировать доступ в интернет.
Optichip
Спасибо за ответ! Кажется, что ACL ничего не блокирует, так как первое правило - разрешить все порты из всех источников для каждого подключенного.
Эдвард Q. Бриджес

Ответы:

27

Проблема заключалась в том, что входящее правило в группе безопасности указало группу безопасности в качестве источника. Изменение его на CIDR, который включал мой IP-адрес, устранило проблему.

Эдвард В. Бриджес
источник
6
Для тех, кто не знает, как работает CIDR; если ваш IP-адрес равен 91.61.76.202 (можно найти ваш, используя myipaddress.com ), укажите в качестве источника 91.61.76.202/32
Tom G
Хотели бы вы сделать скриншот того, как выглядит это решение?
smaccoun
Я был бы счастлив, но у меня больше нет этого экземпляра онлайн.
Эдвард В. Бриджес
11

Столкнулся с подобной проблемой, и вот как я решил ее:

Нажмите на группу безопасности для экземпляра RDS и проверьте входящие правила. Вы можете увидеть что-то вроде этого:

введите описание изображения здесь

Необходимо указать диапазон IP-адресов, который будет содержать ваш IP-адрес, или просто выбрать «Anywhere» в раскрывающемся списке «Источник», чтобы сделать его доступным с локального хоста или из любого места:

введите описание изображения здесь

Мигель Мота
источник
Да, это работает. Я сохранил пользовательское правило, которое было там, и добавил новое правило, которое автоматически выбирало мой IP-адрес.
MSC
1

У меня была похожая проблема при подключении к postgres. Несмотря на то, что у меня был публичный доступ к истине, я не смог подключиться.

Я добавил одно правило для входящих правил в группу безопасности, и теперь оно работает отлично.

введите описание изображения здесь

Абхаш Кумар
источник
0

Просто хотел добавить мои выводы, чтобы сэкономить время. Это решение, описанное выше, работало на экземпляре dev ec2, но после перехода на новый сервер оно перестало работать. Оказалось, что и мой экземпляр RDS, и экземпляр EC2 находились в одном и том же VPC, поэтому экземпляр RDS не мог видеть общедоступный IP-адрес, который я добавил в его группу безопасности. Чтобы это работало, вам нужно добавить в группу безопасности экземпляров RDS частный ip экземпляра EC2, который вы можете найти в деталях.

Мухаммед Билал Икбал
источник
-1

После того, как я создал свой экземпляр Postgres, моя группа безопасности по умолчанию (rds-launch-wizard) указала только мой IP-адрес, поэтому мне пришлось добавить Тип всего трафика и Источник в любом месте, прежде чем я смог подключиться. Я не специалист по сетевым технологиям, но странно, что я не смог подключиться со своим собственным IP-адресом в качестве входящего правила.

Джоунс-Крис
источник