配置安全组以通过客户端 psycopg2 连接到 postgres RDS

Posted

技术标签:

【中文标题】配置安全组以通过客户端 psycopg2 连接到 postgres RDS【英文标题】:Configure security groups to connect to postgres RDS via client psycopg2 【发布时间】:2016-08-21 06:43:42 【问题描述】:

我正在尝试通过 psycopg2 连接到 AWS postgresql RDS。当我在安全组上设置入站规则以通过端口 5432 上的 postgresql 接受所有流量时,我能够连接。

但是,当我将此端口上的 postgresql 入站规则限制为仅接受来自我的客户端 IP 的流量时,我无法连接并且超时。我得到错误:

psycopg2.OperationalError:无法连接到服务器:连接 超时服务器是否在主机“[主机名]”([某些 IP address]) 并接受端口 5432 上的 TCP/IP 连接?

感谢您的任何建议。我尝试在我的安全组上为我的 RDS 实例配置入站规则以接受我的客户端 IP、我的 ec2 实例私有 IP 以及上面错误中给出的 IP 地址,但没有任何乐趣。只接受所有流量有效。关于我做错了什么有什么建议吗?

谢谢!

【问题讨论】:

您在安全组中使用了错误的地址。当您可以连接时查看日志并查看其内容 【参考方案1】:

通过此链接识别您的 IP:https://www.whatismyip.com/。在安全组中,启用此 IP 的入站规则,后跟 /32。

例如,如果您在上述链接中的 IP 为 192.168.0.25,则在安全组中,添加 192.168.0.25/32 作为源。

【讨论】:

【参考方案2】:

在我的例子中,我发现答案是配置一个弹性 IP,这样它就有一个可以被我的 RDS 安全组接受的常数值。也许其他海报认为我这样做是理所当然的;我不知道这是解决方案的一部分。谢谢大家的建议。

【讨论】:

以上是关于配置安全组以通过客户端 psycopg2 连接到 postgres RDS的主要内容,如果未能解决你的问题,请参考以下文章

使用 JDBC 瘦客户端通过 SSL 连接到 Ignite 集群

Docker- django 在连接到 postgres 时抛出错误:psycopg2.OperationalError:无法连接到服务器:连接被拒绝

使用 psycopg2 无密码连接到数据库

Redis 安全

Redis 安全

Redis 安全