通过 EC2 连接到 Postgres RDS

问题描述 投票:0回答:1

我想通过我的 EC2 实例连接到位于私有子网中的 Amazon RDS 数据库。

我已为我的 EC2 计算机配置了安全组,其中使用端口 22 上的 SSH 和端口 5432 上的 postgresql 的入站规则以及所有源 IP 范围。

出站规则是 Postgresql,编号为 5432,源为 RDS 安全组。

在RDS端,安全组配置为带有EC2安全组的postgresql的入站规则。

我能够通过 SSH 进入 EC2 实例并很好地连接到 postgresql。但是当我尝试通过 IDE Dbeaver 连接时。总是说连接被拒绝。

我想使用 postgres 用户名和密码连接到 EC2 实例主机,理想情况下它应该转发到我的 RDS。或者至少隧道应该可以工作。这也不起作用。

现在应该做什么?

enter image description here

我尝试了所有能够通过 localhost 连接到 EC2 实例并运行和执行的 SSH 的可能性:

ssh -i sd-private-subnet.pem -f -N -L 5050:rds_endpoint:5432 ec2-user@ec2_public_ip -v

当我在主机和端口 5050 中指定

localhost
时,它会连接,但我希望我的 EC2 成为主机并直接连接到我的 RDS。

而且我无法控制

pg_hba.conf
postgresql.conf

postgresql amazon-ec2 ssh amazon-rds dbeaver
1个回答
0
投票

通过 SSH 隧道访问数据库是正确的方法。

确保您在 Dbeaver 中配置 SSH 隧道

如果您想要连接到数据库而不创建隧道,那么您将需要在 EC2 服务器上运行一些将请求重定向到数据库的操作。然而,这会有些不安全,因为将数据库放置在私有子网中的全部目的是为了防止从 Internet 直接访问。 SSH 隧道是一种保护数据库访问安全的方法。

© www.soinside.com 2019 - 2024. All rights reserved.