从Data Fusion连接Cloud SQL Postgres实例时出现403错误如何解决?
私有IP Data Fusion连接Cloud SQL Postgres 403错误解决方案
核心原因定位
你遇到的403 Forbidden鉴权失败错误,和你已完成的基础配置不冲突,问题出在服务账号授权范围、JDBC连接串格式两个高频遗漏点。
排查修复步骤
- 确认授权的服务账号准确性:Data Fusion官方服务账号格式为
service-<你的GCP项目数字编号>@gcp-sa-datafusion.iam.gserviceaccount.com,需确保你授予Cloud SQL权限的是该账号,而非自定义服务账号或其他GCP服务账号。 - 跨项目权限补全:如果Data Fusion实例和Cloud SQL实例分属不同GCP项目,必须在Cloud SQL所属项目的IAM中为上述Data Fusion服务账号授予
roles/cloudsql.client角色,仅在Data Fusion项目授权无法生效。 - 修正JDBC连接串格式:你当前使用的连接串格式存在结构性错误,正确的Cloud SQL Postgres JDBC连接串规范为:
jdbc:postgresql:///<你的Postgres数据库名>?cloudSqlInstance=<Cloud SQL实例连接名>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&useSSL=true
其中Cloud SQL实例连接名格式为<GCP项目ID>:<实例所在区域>:<实例名称>,无需单独填写端口号,SocketFactory参数需放在查询参数位,不要放在域名路径中。 - 私有网络权限补全:因你使用私有IP部署的Data Fusion集群,还需为Data Fusion服务账号授予Cloud SQL所属VPC的
roles/compute.networkUser权限,同时确认VPC对等连接配置正常。
有效性验证
修复后可先在Cloud Shell中使用修正后的连接串、数据库用户名密码尝试连接Cloud SQL,确认连接凭证和串格式无误后,再到Data Fusion控制台创建连接。
内容的提问来源于stack exchange,提问作者ttorhcs
相关产品推荐
相关产品推荐

