Lambda连接RDS PostgreSQL 15失败问题求助
解决PostgreSQL 15升级后Lambda无法连接RDS的问题
问题核心
PostgreSQL 15默认强化了连接加密要求,你的Lambda连接代码未启用SSL,导致不符合RDS的pg_hba.conf规则,触发「no encryption」错误。
解决步骤
1. 修改psycopg2连接代码,启用SSL
在psycopg2.connect()中添加sslmode='require'参数,强制使用加密连接:
import psycopg2 connection_psql = psycopg2.connect( user=***, password=***, port="5432", database=***, host=***, sslmode='require' )
2. 确认RDS的SSL强制设置
登录AWS控制台,进入RDS实例的「连接与安全性」页面,检查「SSL连接」设置:
- 若设置为「强制SSL」,必须保持步骤1的SSL连接配置;
- 若需兼容非加密连接(不推荐生产环境),可改为「可选」,但需同步调整RDS参数组的
pg_hba.conf规则。
3. 验证RDS参数组的pg_hba规则
进入RDS实例的「参数组」页面,查看pg_hba.conf相关配置:
- 确保Lambda所在IP/子网对应的规则是
host(允许非加密)或hostssl(仅允许加密); - 若使用
hostssl规则,必须配合步骤1的SSL连接配置;若要兼容旧连接逻辑,可添加host类型规则(不推荐)。
4. 确认安全组与网络ACL配置
再次验证Lambda所在VPC的安全组/IP是否被允许访问RDS实例的5432端口(本地能连接说明基础网络规则无问题,但升级后若有配置变更需二次确认)。
内容的提问来源于stack exchange,提问作者LoMaPh
相关产品推荐
相关产品推荐

