Public 附加安全组后访问

Public access after attaching security groups

即使我添加了为所有 IP 打开端口 5432 的安全组并在 Public 访问部分配置了 Yes 之后,我的 RDS 实例 (PostgreSQL) 仍无法连接到 VPC 外部。

RDS 信息:

安全组:

有没有人遇到同样的情况? 有解决这个问题的方法吗?

我假设在配置 Public 访问部分或安全组时有一些延迟。

鉴于您可以连接到 EC2 实例并且其他一切似乎都已正确设置,如果您想 publicly 公开您的数据库,您需要验证您的子网组正在使用 public 个子网.您可以在 RDS 实例的实例详细信息中检查您的子网组和子网。在安全和网络下,您应该找到类似以下内容的内容:

子网组

examplegroup

子网

subnet-84b243ef
subnet-etu1769c
subnet-186b3f30

然后您需要查看这些子网并了解它们的配置方式:

  • 转到 VPC 控制面板
  • 点击子网
  • 选择您要检查的子网
  • 点击路线table
  • 如果它 public 你应该看到这样的东西:

示例路线 table:

Destination | Target

10.0.0.0/16 | local

0.0.0.0/0   | igw-e2f87847

igw 表示互联网网关。如果您看到 nat 而不是 0.0.0.0/0 条目,则可能意味着这是一个私有子网。

您可以在 bash 中使用 aws clijq 以编程方式执行此操作。这将列出与给定数据库实例的子网组子网关联的所有路由 tables:

instance_name='example'
aws rds describe-db-instances --filter Name=db-instance-id,Values=${instance_name} | jq .DBInstances[].DBSubnetGroup.Subnets[].SubnetIdentifier -r | while read subnet; do
  aws ec2 describe-route-tables --filters Name=association.subnet-id,Values=${subnet} | jq .RouteTables[].Routes
done