Подключение к RDS Postgres с удаленной машины

Я настроил экземпляр RDS Postgres для тестирования, но у меня возникли проблемы с подключением. Я создал группу безопасности и по умолчанию разрешил всем хостам (0.0.0.0/0) порт 5432, но по какой-то причине я не могу подключиться. Я попытался подключиться к порту 5432 на машине, но, похоже, он закрыт. Есть идеи? Я проверил, что группа безопасности использует правильную группу безопасности.

Это моя конфигурация

TCP
Port (Service)  Source  Action
5432    0.0.0.0/0   Delete

Вот как я пытаюсь подключиться к службе rds

psql -p 5432 -h example.cs945smhrv09.us-west-2.rds.amazonaws.com -U example example

UPDATE

OK чувствую себя немного глупо, выяснив, что rds запускается в частной подсети 172. Мне удалось подключиться к экземпляру ec2.

Вопрос теперь есть способ поставить это на общедоступный адрес, с которым я могу подключиться? Я хотел бы настроить его с помощью группы безопасности, которая ограничивает исходный ip, но затем сможет подключиться к нему с помощью psql с моего рабочего стола.

Обновление 2

Я не помню всех деталей, когда я изначально разместил этот вопрос, но это уже не проблема. Теперь у нас есть vpc управления, с которым мы подключаемся к серверу vpn. Сети управления vpc доверяют группы безопасности prod и devel для экземпляров rds. У нас нет проблем с общением с ними без добавления каких-либо публичных ips.

Ответ 1

Шаг 4 мастера настройки RDS ( "Дополнительная конфигурация" ) позволяет выбрать, является ли БД общедоступным или нет (если это не так, доступ ограничен вашим VPC, независимо от настроек группы безопасности). Я бы предположил, что определяет, разрешено ли имя хоста до 54. * vs 172. *.

Возможно, ваш первый экземпляр был закрыт - насколько я могу сказать, это невозможно изменить после инициализации. У меня была аналогичная проблема, и создание нового экземпляра, доступного для публичного доступа, разрешило его для меня.

Ответ 2

Мой брандмауэр моей компании заблокировал исходящий трафик на порт postgres по умолчанию, 5432. Я не понимал этого, пока не протестировал порт с помощью netcat в окне терминала, как показано ниже:

nc -zv portquiz.net 5432

Надеюсь, это спасет кого-то полдня, когда он будет возиться с группами безопасности AWS.

Ответ 3

Абсолютно там. У меня есть pgadmin, загруженный на мой локальный компьютер, подключенный к моему экземпляру RDS. |

Я только что подтвердил, что могу подключиться с использованием того же синтаксиса, который вы использовали для psql, хотя для меня не нужен -U (я все же включил оба параметра "example" )

Я отредактировал группу безопасности по умолчанию и добавил, что мой IP (Ip машины, с которой я подключаюсь)/32, разрешен, хотя я уверен, что вы можете получить меньше ограничений, чем это, но я бы начните там и посмотрите, поможет ли это.

Ответ 4

Это, скорее всего, вызвано правилами исходящего брандмауэра. Если вы находитесь за корпоративным брандмауэром, они часто будут блокировать исходящие порты выше определенного номера. Чтобы избежать этого, вам нужно настроить туннель SSH. http://conoroneill.net/accessing-amazon-rds-instances-from-your-desktop/

Ответ 5

У меня была эта проблема. Это не является прямым решением, но может работать для некоторых. Я установил группу безопасности Postgres для приема соединений, поступающих с сервера, который будет использовать его (тот же VPC). Затем я настроил свой клиент Postgres для использования туннелирования ssh. Если мне нужно использовать командную строку, я просто SSH на этом сервере, а затем psql оттуда.