在 Dbeaver 上本地连接到 AWS RDS

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

我使用 EC2 和 RDS(MySQL) 部署了 Spring Boot 服务器。

安全组的设置方式是这样的:

EC2

  • 某些IP的入站规则(为了安全)
  • 出站对所有流量开放

RDS

  • 入站规则仅允许 EC2 访问
  • 出站对所有流量开放

它们位于同一 VPC 和 AZ。



- - - - 问题 - - - -

当我在 EC2 中运行服务器时,它会连接到 RDS,但是当我尝试从 Mac 上使用 DBeaver 访问 RDS 时,我总是得到:

Connection Timed Out.
Communications Link failure
The last packet sent successfully to the server was 0 milliseconds ago.
The driver has no received any packets from the server.
Connection Timed Out.


--------我尝试过的--------
  1. 在 RDS 安全组上允许来自我的 IP 的流量
  2. 在 EC2 安全组上允许来自我的 IP 的 MySQL/Aurora
  3. 以上两者
  4. 允许所有传入流量


但以上都不起作用。 这是一个开发环境,但我仍然想保证我的数据库安全,因为我朋友的一个公司数据库最近受到了攻击。

有没有一种方法可以安全地访问 DBeaver(在我的 Mac 上)上的数据库,而无需进一步开放流量?

更新

这样我就可以通过 SSH 成功连接到我的 EC2 了


但是我似乎仍然无法连接到我的 RDS..

amazon-web-services amazon-rds aws-security-group
1个回答
1
投票

乍一看,您似乎是在私有子网中部署了 RDS 实例。在这种情况下,您的 RDS 实例将无法从公共访问。

在这种情况下,您可以考虑多种选择:

  1. 在公有子网中重新部署 RDS 实例(出于安全原因,不推荐)。
  2. 在 DBeaver 中设置 SSH 隧道,以便您的所有流量都通过您已配置的 EC2 实例。在这种情况下,您只需将凭据放入 DBeaver 的 SSH 选项卡中(参见屏幕截图)。
  3. 最后,您可以通过 EC2 实例手动将端口转发到 RDS 实例。如果您想让我给您看一个例子,请告诉我。

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