从远程机器连接到RDS Postgres

Chr*_*haw 15 postgresql amazon-web-services

我已经配置了一个RDS Postgres微实例进行测试但是连接有问题.我创建了一个安全组,并允许所有主机(0.0.0.0/0)默认为端口5432但由于某种原因我无法连接.我尝试连接到机器上的端口5432,但它似乎已关闭.有任何想法吗?我已验证安全组正在使用正确的安全组.

这是我的配置

TCP
Port (Service)  Source  Action
5432    0.0.0.0/0   Delete
Run Code Online (Sandbox Code Playgroud)

以下是我尝试连接到rds服务的方法

psql -p 5432 -h example.cs945smhrv09.us-west-2.rds.amazonaws.com -U example example
Run Code Online (Sandbox Code Playgroud)

UPDATE

在确定rds在私有172子网上启动后,确定感觉有点傻.我能够从我的ec2实例连接.

问题现在是否有办法将其放在我可以连接的公共地址上?我想配置一个安全组来限制源IP,然后能够从我的桌面使用psql连接到它.

更新2

我最初发布这个问题时不记得所有细节但不再是问题.我们现在有一个管理vpc,我们使用vpn服务器连接到它.管理vpc网络受rds实例的prod和devel安全组信任.没有添加任何公共IP,我们没有问题与他们沟通.

Gor*_*hen 12

RDS设置向导("附加配置")的第4步允许您选择数据库是否可公开访问(如果不是,则访问仅限于您的VPC内,无论您的安全组设置如何).我想这可以确定主机名是否解析为54.*vs 172.*.

您的第一个实例可能已设置为私有 - 据我所知,初始化后无法更改.我遇到了类似的问题,并创建了一个可公开访问的新实例,为我解决了这个问题.

  • 这个答案差不多已有4年了,所以当时可能无法实现,但今天如果进入实例的"修改"菜单,可以将RDS实例从公共更改为私有.那里有一个单选按钮可以打开或关闭公共,然后您可以立即应用或在下一个维护窗口期间应用 (3认同)

小智 9

我公司的防火墙阻止了对默认postgres端口5432的传出流量.直到我在终端窗口中使用netcat测试端口,我没有意识到这一点,如下所示:

nc -zv portquiz.net 5432
Run Code Online (Sandbox Code Playgroud)

希望这可以节省半天用AWS安全组搞乱的人.