【发布时间】:2021-09-05 06:03:10
【问题描述】:
我正在尝试使用 psycopg2 使用 python 脚本从我的计算机连接到我的 RDS 数据库。 蟒蛇代码:
import psycopg2
from db_credentials import *
import logging
def get_psql_conn():
conn = psycopg2.connect(dbname=DB_NAME, user=DB_USER, password=DB_PASS, host=DB_HOST)
logging.info("connected to DB!")
return conn
我收到以下错误:
psycopg2.OperationalError: could not connect to server: Operation timed out
Is the server running on host ********* and accepting
TCP/IP connections on port 5432?
现在我尝试创建一个安全组,允许我的计算机 IP 访问数据库。
SG 3:
我可以从我的 ec2 实例连接到数据库,运行与上面相同的 python 脚本。这似乎与第二个安全组有关,因为当我删除它时,我也无法再从我的 ec2 实例连接。然后它会抛出我在尝试从我的计算机连接时遇到的相同错误。
我对 RDS 或安全组知之甚少,我只是按照互联网教程进行操作,但似乎无法理解它。
任何帮助是极大的赞赏!谢谢
【问题讨论】:
-
Amazon RDS 实例是在公有子网还是私有子网中?
Publicly Accessible设置的值是多少?另见:Troubleshoot connectivity to an Amazon RDS instance using the public or private subnet of a VPC -
直到今天才公开。我最终将其公开并且现在一切正常,所以感谢您的回复:) 我想从安全角度来看这仍然很好,因为我只是一个单独的开发人员,我的数据库上没有那么有趣的数据并且它仍然在密码后面。
-
公共设置为其提供了一个可从 Internet 访问的公共 IP 地址。只要保持您的安全组锁定(就像您所做的那样),您就会很安全。
标签: postgresql amazon-web-services amazon-rds psycopg2 aws-security-group