有没有办法让 AWS RDS Public Accessibility = No 但仍然可以在 EC2 实例之外访问?

Is there a way to have AWS RDS Public Accessibility = No but still accessible outside of EC2 instance?

出于与管理相关的原因,我需要将 RDS 的 Public 辅助功能选项设置为 "No"。

但是,我们也在研究能够从我们的本地设备访问 RDS。我们能够这样做的唯一方法是在 Public 辅助功能中选择 "Yes"。当然,VPC、网关、子网和安全组已经设置了适当的 public-facing 内容,这可能就是 Yes 选项起作用的原因。

但是当我们将其设置为否时,现在只有 EC2 实例能够连接到数据库。

有没有办法解决这个问题,或者这真的是 Public 辅助功能标志设计的目的吗?

提前致谢。

是 Public 可访问性标志阻止您直接通过 Internet 访问 RDS,但您可以通过位于 public 子网中的跳转服务器(如 ssh bashtion)间接访问。大多数流行的 Mysql UI 编辑器,如 sequel pro 都有一个用于 ssh 配置的内置选项,使用这个选项你可以从本地设备访问 RDS。您还可以配置到堡垒的隧道。

Public 可访问性设置为 "No" 将不允许从 Internet 进行任何访问。有很多方法可以将 RDS 连接到本地。

  1. 将您的public IP 添加到您的rds 数据库实例安全组

  2. 跳转服务器/堡垒

  3. VPN/直连

你问的是如何保护它的最佳方法。最佳选择是#3。 但为此,您需要在 私有子网.

中构建数据库实例

怎么做?

导航到 RDS > 子网组。 创建数据库子网组。 Select 您要使用的 VPC 和私有子网。

如@user11389395 所述,您必须在 RDS“修改”页面(这不会导致您的数据库出现任何中断,也不会导致数据库崩溃)。

启用后,您必须跳转到 RDS 服务器所在的 安全组 ,添加一个 Inbound 规则TCP 协议、端口3306(如果使用MySQL),然后在Source dropdown, select "我的IP":

当您 select“我的 IP”时,您应该会看到源输入字段变灰并显示您的 public IP 地址。您可以通过 Google 在线检查来确认此 public IP 地址。这仅授予 您的 public IP 地址通过互联网访问您的 RDS 数据库的权限。

保存规则后,您应该能够通过输入 RDS“Endpoint 从本地计算机使用 TablePlus(或其他 SQL 客户端)进行连接”(显示在 RDS“连接和安全”选项卡上)作为 主机名,以及您的主用户名和密码。