如何配置Amazon RDS PostgreSQL仅允许同VPC内(含ECS Fargate)访问?
配置Amazon RDS PostgreSQL仅允许VPC内访问(适配ECS Fargate)
1. 彻底关闭RDS公网访问
登录AWS控制台进入RDS服务,找到你的PostgreSQL实例:
- 打开「连接与安全性」标签页,找到「公有可访问性」选项,直接设为否。这样实例不会分配公网IP,从根源上杜绝公网访问路径。
2. 用VPC安全组锁死访问范围
RDS的访问权限全靠安全组控制,调整实例关联的安全组规则:
- 在「连接与安全性」的「VPC安全组」里,点击对应的安全组进入配置页
- 先删掉所有现有入站规则(尤其是允许
0.0.0.0/0或者公网IP的规则) - 新增入站规则:
- 类型选PostgreSQL(默认端口5432)
- 来源选「自定义」,输入你的目标VPC私有IP段(比如默认VPC一般是
10.0.0.0/16),这样只有该VPC内的资源能访问 - 要更严格的话:如果ECS Fargate任务用了专属安全组,直接把来源设为这个安全组的ID,这样只有该安全组下的Fargate任务能连RDS
3. 验证ECS Fargate的访问能力
- 确保Fargate任务部署在同一个VPC里,并且任务的安全组出站规则允许访问5432端口(默认出站规则通常放开所有流量,要是改过就得确认一下)
- 测试连接:在Fargate任务里跑
psql -h <RDS端点> -U <用户名> -d <数据库名>,看能不能正常连上
额外提醒
- RDS实例的子网组必须属于目标VPC,保证实例部署在正确的VPC子网内
- 别给RDS实例分配弹性IP,防止意外开启公网访问
- 定期检查安全组规则,避免误加宽松的访问权限
内容的提问来源于stack exchange,提问作者user23251903
相关产品推荐
相关产品推荐

