求助:AWS Glue连接Amazon RDS(Postgres 15)测试失败
AWS Glue连接Postgres 15 RDS失败的排查方向
你遇到的情况是pgAdmin可正常连接RDS,但Glue测试连接失败,且日志仅显示日志格式错误,结合已排除的安全组和IAM全权限因素,可从以下几个方向进一步排查:
JDBC驱动兼容性问题:AWS Glue默认提供的Postgres JDBC驱动版本可能不兼容Postgres 15(Postgres 15对协议和认证逻辑有更新)。建议手动上传兼容Postgres 15的驱动包(如postgresql-42.6.0及以上版本)到S3,然后在Glue连接配置中指定自定义驱动路径。
数据库内部权限与认证配置:
- AmazonRDSFullAccess是AWS层面的IAM权限,不代表数据库用户有连接权限。确认用于Glue连接的Postgres用户具备
CONNECT权限,且能访问my_db数据库; - 检查RDS参数组中的认证配置:Postgres 15默认禁用了md5密码认证方式,若你的用户使用md5认证,需将参数组中的
password_encryption设为scram-sha-256,并确保pg_hba.conf(RDS通过参数组控制)允许对应的认证规则。
- AmazonRDSFullAccess是AWS层面的IAM权限,不代表数据库用户有连接权限。确认用于Glue连接的Postgres用户具备
JDBC URL参数缺失:Postgres RDS默认要求SSL连接,pgAdmin会自动处理SSL配置,但Glue连接需显式指定SSL参数。尝试修改JDBC URL为:
jdbc:postgresql://xxx.xxx.us-west-2.rds.amazonaws.com:5432/my_db?sslmode=require同时确认URL中的数据库名称
my_db确实存在且状态正常。VPC与网络配置细节:
- 确认Glue连接配置的VPC、子网与RDS所属VPC一致,且子网具备访问RDS的路由(如通过VPC内部路由,而非仅依赖安全组);
- 检查VPC的DNS配置:确保VPC的
enableDnsHostnames和enableDnsSupport均已开启,否则Glue可能无法解析RDS的域名。
日志信息排查:当前显示的日志格式错误属于Glue日志框架的问题,会掩盖实际连接错误。前往CloudWatch日志,查找Glue连接测试对应的日志组(通常路径为
/aws-glue/connections),查看更详细的错误信息,比如连接超时、认证失败等具体原因。IAM认证配置问题(若使用IAM认证):如果Glue连接采用IAM角色认证Postgres,需确保:
- IAM角色已被授予
rds-db:connect权限,且权限策略指定了正确的RDS资源和Postgres用户名; - 在RDS的Postgres数据库中已创建对应IAM角色的用户映射(使用
CREATE USER ... WITH LOGIN和GRANT rds_iam TO ...命令)。
- IAM角色已被授予
内容的提问来源于stack exchange,提问作者Hongbo Miao
相关产品推荐
相关产品推荐

