CloudFormation创建AWS Glue JDBC连接时密码未设置,连接失败求助
解决CloudFormation创建Glue JDBC连接RDS Aurora的连接无效/网络错误问题
问题回顾
通过CloudFormation创建Glue JDBC连接RDS Aurora时,先因密码未正确配置触发InvalidInputException: Unable to resolve any valid connection;添加AvailabilityZone后,错误变为连接测试失败及Network error,同时控制台看不到密码、CLI发现自动新增了无关的KAFKA_SSL_ENABLED字段。
分步解决方案
1. 验证并修复密码配置
AWS Glue控制台默认隐藏密码(安全机制),可通过CLI确认密码是否实际存在:
aws glue get-connection --name test-glue-conn --hide-password false
若密码缺失,按以下方式修复:
- 确认CloudFormation模板中
PASSWORD字段为全大写(Glue对该参数大小写有严格要求) - 若使用Secrets Manager存储密码,确保引用格式正确,例如:
PASSWORD: !Sub '{{resolve:secretsmanager:arn:aws:secretsmanager:us-east-1:6256161516:secret:your-rds-secret-xxxx:SecretString:password}}' - 重新部署CloudFormation栈,确保参数传递无误
2. 修复网络配置(解决Network error)
网络问题是核心诱因,逐一排查:
- 可用区精准匹配:
PhysicalConnectionRequirements中的AvailabilityZone必须指定RDS实例所在的具体可用区(如us-east-1a),不能只写区域us-east-1,修改模板后重新部署 - 安全组双向规则:
- RDS实例的安全组需添加入站规则,允许Glue连接安全组访问对应端口(PostgreSQL用5432,MySQL用3306)
- Glue连接的安全组需添加出站规则,允许访问RDS实例的对应端口
- 子网与VPC校验:
- 确认Glue连接使用的子网属于RDS所在VPC
- 若使用私有子网,需配置NAT网关或Glue VPC端点,确保Glue服务能访问RDS
- 检查子网的网络ACL,确保没有限制到RDS的双向流量
3. 移除无关的KAFKA_SSL_ENABLED字段
该字段是AWS误添加的无效配置(JDBC连接不需要Kafka相关参数),通过CLI更新连接移除:
aws glue update-connection --name test-glue-conn --connection-input '{ "ConnectionProperties": { "JDBC_CONNECTION_URL": "jdbc:postgresql://...", "JDBC_ENFORCE_SSL": "false", "PASSWORD": "your-password", "USERNAME": "your-username" }, "ConnectionType": "JDBC", "PhysicalConnectionRequirements": { "AvailabilityZone": "us-east-1a", "SubnetId": "ahbnr9ow3qhjojngovbme", "SecurityGroupIdList": ["jhwgq9748jhognjmovjo"] } }'
4. 重新测试连接
完成上述配置后,通过CLI或控制台测试连接:
aws glue test-connection --name test-glue-conn --catalog-id 6256161516
内容的提问来源于stack exchange,提问作者IamAshKS
相关产品推荐
相关产品推荐

