跨项目跨VPC:Cloud Run连接Cloud SQL(已VPC对等)遇阻求助
跨项目Cloud Run访问Cloud SQL的修复方案(VPC对等后仍无法连接)
验证Cloud SQL的VPC基础配置
- 确认项目B的Cloud SQL实例已启用私有IP,且所在子网包含在与项目A的VPC对等范围内。
- 检查项目B的VPC防火墙规则,允许来自项目A VPC CIDR段的流量访问对应数据库端口(MySQL:3306,PostgreSQL:5432,SQL Server:1433)。
- 确保项目A与项目B的VPC对等连接是双向生效的,双方路由表中已生成指向对方网络的条目。
配置Cloud Run的VPC访问能力
- 项目A的Cloud Run服务必须关联VPC连接器,部署时可通过gcloud命令添加参数:
gcloud run deploy <服务名> --vpc-connector <连接器名> --vpc-egress all-traffic,或在控制台中指定VPC及子网。 - 确认VPC连接器的IP段与项目B的VPC CIDR无冲突,且连接器拥有访问对等网络的权限。
- 项目A的Cloud Run服务必须关联VPC连接器,部署时可通过gcloud命令添加参数:
配置跨项目IAM权限
- 在项目B中,给项目A的Cloud Run默认服务账号(格式:
service-<项目A编号>@gcp-sa-cloudrun.iam.gserviceaccount.com)授予Cloud SQL Client角色,或直接赋予cloudsql.instances.connect权限。 - 确保该服务账号已被添加到Cloud SQL实例的IAM权限列表中,允许其发起连接请求。
- 在项目B中,给项目A的Cloud Run默认服务账号(格式:
排查连接与网络连通性
- 连接Cloud SQL时必须使用私有IP作为主机地址,避免使用公网IP。
- 在项目A的VPC内创建临时虚拟机,用
telnet <Cloud SQL私有IP> <端口>或nc -zv <私有IP> <端口>测试网络连通性,确认VPC对等是否真的生效。
检查DNS解析配置
- 确保Cloud Run使用VPC-native DNS,若解析私有IP失败,可直接使用IP地址进行连接,或在项目A中配置私有DNS区域指向Cloud SQL的私有IP。
内容的提问来源于stack exchange,提问作者Marcelo Silva
相关产品推荐
相关产品推荐

