AWS RDS 公共访问

Kat*_*oak 15 postgresql amazon-web-services amazon-rds

我被 AWS 配置难住了。我的目标是创建一个可以从网络内部和外部访问的数据库。

这是我所拥有的。RDS 实例运行 postgresql。来自 VPC 内部的连接正常工作。

端点设置为可公开访问 - 当从外部访问时,实际上会解析。但是,连接挂起,表明有人阻止了流量。

安全组很好:
入站:端口 5432 来自 0.0.0.0/0 出站:所有来自 0.0.0.0/0

子网。我想那是哪里出了问题,对吧?起初,我在子网组中有两个私有子网和两个公共子网。为简化起见,我在不改变结果的情况下删除了私有的。

所以我们有两个公共子网:

子网组

两者都具有与 Internet 网关相同的路由表

子网

互联网网关

据我所知,一切正常……那么谁在阻止我的数据库连接?

Ric*_*han 33

默认情况下,即使您在 RDS 设置过程中将“公共可访问性”设置为“是”,“安全组”仍然不允许端口 3306。

因此,您必须单击 RDS 的安全组,然后添加规则以允许来自任何 IP 的 3306。

这是参考设置。但在这里我必须首先警告您,这种公共可访问性会将您的数据库暴露在互联网上。请自行承担风险。

在此输入图像描述


小智 8

无法按照https://aws.amazon.com/premiumsupport/knowledge-center/rds-connectivity-instance-subnet-vpc/连接到我的可公开访问的 RDS 。

事实证明,我的子网路由表之一没有到公共 0.0.0.0/0 的路由记录,添加后它可以工作。


小智 7

根据新的 AWS RDS UI。按照以下步骤操作。

  1. 打开 Amazon RDS 控制台。
  2. 从导航窗格中选择 Databases,然后选择数据库实例。
  3. 选择修改。
  4. 连通性 在此处输入图片说明

另外[重要]:使用 PORT 和 IP 更新入站和出站策略


Ben*_*ley 6

要检查的两件事:

  1. 确保 RDS 实例具有可公开访问的属性集,以便为其分配公共地址

  2. 此外,根据 AWS RDS 文档,“如果您希望 VPC 中的数据库实例可公开访问,则必须启用 VPC 属性 DNS 主机名和 DNS 解析。”

此外,请检查您的 RDS 实例主机名解析到的 IP 是否为公共 IP 地址。

  • “此外,请检查您的 RDS 实例主机名解析的 IP 是否为公共 IP 地址。” - 如何检查这个? (4认同)