配置Lambda后AWS RDS Postgres本地无法访问的排查方案
问题描述
创建了开启公网访问的AWS RDS Postgres实例,初始本地可正常连接;配置Lambda关联该RDS并创建Internet Gateway、NAT网关为Lambda提供公网访问后,Lambda可正常连接数据库并访问公网,但本地无法再访问RDS实例。环境包含3个私有子网、1个公有子网,Lambda和RDS的安全组均允许所有端口的公网流量,尝试创建RDS Proxy后问题仍未解决。
附相关配置截图:
排查解决方案
1. 确认RDS公网访问状态
检查RDS实例的Publicly accessible配置(对应「DB Configuration」截图),确保该选项仍为Yes。若被误改为No,会直接阻断公网访问。
2. 验证RDS子网组的子网类型
- 确认RDS关联的子网组是否包含公有子网:公有子网的路由表必须存在
0.0.0.0/0指向Internet Gateway(IGW)的路由; - 若RDS仅部署在私有子网中,即使开启公网访问也无法被本地连接——私有子网的路由表通常指向NAT网关,仅支持出站流量,不支持外部入站访问。
3. 检查子网路由表规则
针对RDS所在的每个子网,查看其路由表:
- 必须存在
0.0.0.0/0→ IGW的路由条目; - 若路由表指向NAT网关,说明该子网为私有子网,需将RDS迁移至包含公有子网的子网组。
4. 重新核对安全组入站规则
- 检查RDS(及RDS Proxy)的安全组入站规则:需明确允许本地IP段(或
0.0.0.0/0用于测试)访问PostgreSQL的目标端口(默认5432); - 确认未误将入站规则限制为仅允许Lambda的安全组访问。
5. 排查网络ACL配置
网络ACL为无状态规则,需同时配置入站和出站允许:
- 入站规则:允许源IP(本地或
0.0.0.0/0)访问5432端口; - 出站规则:允许目标IP(本地或
0.0.0.0/0)的1024-65535端口流量(对应数据库响应的临时端口); - 若网络ACL被修改为默认拒绝,需调整规则恢复允许。
6. RDS Proxy专属排查
若使用RDS Proxy仍无法访问:
- 确认Proxy的
Publicly accessible选项已开启; - 确保Proxy的安全组入站规则允许本地IP访问;
- 检查RDS实例的安全组是否允许Proxy的安全组访问其数据库端口。
内容的提问来源于stack exchange,提问作者Niraj Gawande
相关产品推荐
相关产品推荐




