AWS RDS PostgreSQL连接报错no pg_hba.conf entry 问题求助
解决AWS RDS PostgreSQL连接报错:"no pg_hba.conf entry for host '16.151.149.51', user 'analytics', database 'database', no encryption"
确认RDS强制SSL配置
进入AWS RDS控制台的目标实例详情页,切换到「连接」标签,找到「SSL连接」设置,确保「强制SSL连接」已设为ENABLED。即使你认为加密功能正常,若RDS未强制SSL,客户端可能未使用加密连接,触发pg_hba规则限制。客户端连接时指定SSL参数
连接命令必须显式要求SSL,以psql为例:psql "host=<你的RDS端点> port=5432 dbname=database user=analytics sslmode=require"其他客户端(如Python psycopg2)也要配置对应SSL参数:
import psycopg2 conn = psycopg2.connect( host="<你的RDS端点>", port=5432, dbname="database", user="analytics", sslmode="require" )检查RDS参数组的SSL强制设置
进入RDS「参数组」页面,找到目标实例关联的参数组,确认rds.force_ssl参数值为1(开启状态)。该参数控制RDS是否强制所有连接使用SSL,若未开启,无加密的连接会被pg_hba规则拒绝。验证安全组IP配置
再次核对安全组中添加的IP是否为16.151.149.51/32(单个IP需带/32的CIDR后缀),避免因CIDR范围错误导致IP未被允许。临时测试可改用0.0.0.0/0(测试后需改回,保证安全),确认是否为IP匹配问题。应用参数更改并重启实例(若需)
若修改了rds.force_ssl等参数,需在参数组页面选择「立即应用」,或重启RDS实例使新参数生效。
内容的提问来源于stack exchange,提问作者idan
相关产品推荐
相关产品推荐

