не вдається підключитися до публічного екземпляра 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? Я б шукав можливих налаштувань, які могли б блокувати доступ до Інтернету.
Оптичіп

Дякую за відповідь! Здається, ACL нічого не блокує, оскільки перше правило - дозволити всі порти з усіх джерел, що додаються.
Едвард Q. Мости

Відповіді:


27

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


6
Для тих, хто не знає, як працює CIDR; якщо ваша IP-адреса 91.61.76.202 (можна знайти свою, використовуючи myipaddress.com ), встановіть джерело як 91.61.76.202/32
Tom G

Чи готові ви зробити знімок екрана, як виглядає це рішення?
smaccoun

Я був би радий, але у мене більше немає цього прикладного інтернету.
Едвард Q. Бриджес

11

Зіткнулося з подібною проблемою, і ось як я її вирішив:

Клацніть на групу безпеки для екземпляра RDS і перевірте вхідні правила. Можливо, ви побачите щось подібне:

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

Потрібно встановити діапазон IP, щоб містити вашу IP-адресу, або просто вибрати "Всюди" у спадному меню "Джерело", щоб зробити його доступним з localhost або з будь-якого місця:

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


Так, це працює. Я зберігав користувацьке правило, яке там було, і додав нове правило, яке автоматично підбирало мою IP-адресу
MSC

1

У мене виникли подібні проблеми під час підключення до postgres. Подія, хоча я мав публічний доступ до істини, я не зміг підключитися.

Я додав одне правило вхідного правила в групу безпеки, і тепер воно працює чудово.

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


0

Просто хотів додати свої висновки, щоб врятувати когось деякий час. Описане вище рішення працювало на екземплярі dev ec2, але після того, як я перейшов на новий сервер, він перестав працювати. Виявилося, що і мій екземпляр RDS, і EC2 були в одному VPC, тому екземпляр RDS не міг бачити IP-адресу, яку я додав до своєї групи безпеки. Для цього вам потрібно додати до групи захисту екземплярів RDS приватний ip екземпляра EC2, який ви можете знайти детально.


-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.