出于管理相关的原因,我需要将RDS的“公共可访问性”选项设置为“否”。
但是,我们也在考虑能够从本地设备访问RDS。我们能够这样做的唯一方法是在“公共可访问性”中选择“是”。当然,VPC,网关,子网和安全组已经设置了适当的面向公众的内容,这可能就是为什么“是”选项起作用的原因。
但是当我们将其设置为No时,现在只有EC2实例能够连接到数据库。
有没有解决的办法,或者这真的是公共可访问性标志是根据设计执行的吗?
谢谢。
答案 0 :(得分:2)
是,公共可访问性标志阻止您直接通过Internet访问RDS,但是您可以通过放置在公共子网中的Jumpserver(如ssh bashtion)间接访问。大多数流行的Mysql UI编辑器(如sequel pro)都有ssh config的in build选项,使用此选项,您可以从本地设备访问RDS。您还可以将隧道配置为堡垒。
答案 1 :(得分:1)
正如@user11389395 提到的,您必须在 RDS“修改”页面中将公共可访问性设置为“是”(这不会不会导致您的数据库出现任何中断,或导致其宕机)。
启用后,您必须跳转到 RDS 服务器所在的安全组,添加带有 TCP 协议的入站规则强>,端口 3306(如果使用 MySQL),然后在 来源 下拉列表中,选择“我的 IP”:
当您选择“我的 IP”时,您应该会看到源输入字段变灰并显示您的公共 IP 地址。您可以通过 Google 在线检查来确认此公共 IP 地址。这仅授予您的公共 IP 地址通过互联网访问您的 RDS 数据库。
保存规则后,您应该可以从本地计算机使用 TablePlus(或其他 SQL 客户端)通过输入 RDS“端点”(显示在 RDS“ >连接和安全”标签)作为主机名,以及您的主用户名和密码。
答案 2 :(得分:0)
将公共可访问性设置为“否” 将不允许来自互联网的任何访问。有很多方法可以将RDS连接到本地。
将公共IP添加到rds数据库实例的安全组中
跳转服务器/堡垒
VPN /直接连接
您要求有关如何确保此安全的最佳方法。最佳选择是#3。 但是,为此,您将需要在私有子网中构建数据库实例。
如何?
导航到RDS>子网组。 创建一个数据库子网组。 选择您的VPC和要使用的专用子网。