附加安全组后的公共访问权限

时间:2018-06-04 11:13:40

标签: amazon-web-services amazon-rds

我面临的情况是,即使我添加了为所有IP打开端口5432并为公共访问部分配置了“是”的安全组,我的RDS实例(PostgreSQL)也无法连接到VPC之外。

RDS信息: RDS info

安全组: Security group info

有没有人面临同样的情况? 解决这个问题的任何解决方案?

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

1 个答案:

答案 0 :(得分:0)

鉴于您可以连接EC2实例并且其他所有设置都已正确设置,您需要验证您的子网组是否正在使用公共子网,如果您想公开公开您的数据库。您可以在RDS实例的实例详细信息上检查子网组和子网。在安全和网络下,你应该找到类似的东西:

子网组

examplegroup

<强>子网

subnet-84b243ef
subnet-etu1769c
subnet-186b3f30

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

  • 转到VPC信息中心
  • 点击子网
  • 选择要检查的子网
  • 点击路线表
  • 如果公开你应该看到这样的东西:

示例路由表:

Destination | Target

10.0.0.0/16 | local

0.0.0.0/0   | igw-e2f87847

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

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

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