跨GCP项目访问Cloud SQL是否必须使用私有VPC?
跨项目Cloud Run访问Cloud SQL的方案解析
无需VPC的实现方案
你正在尝试的SQL Auth Proxy就是无需VPC的可行方案,只要配置正确就能生效,重点检查以下几点:
- 确认Project 2的服务账号在Project 1中已配置
Cloud SQL Client角色(或至少拥有cloudsql.instances.connect权限),且该账号是Cloud Run实例的运行身份。 - 确保Cloud SQL实例开启了公共IP访问(Auth Proxy通过公网连接时依赖此),无需设置IP白名单——Auth Proxy通过IAM权限完成身份验证。
- Cloud Run部署时需添加关联参数:
--add-cloudsql-instances=PROJECT1_ID:REGION:SQL_INSTANCE_NAME,同时应用内数据库连接地址设为127.0.0.1:5432(PostgreSQL示例,MySQL为3306)。 - 数据库内部权限配置正确:你设置的数据库用户需拥有目标库的访问权限,若使用IAM数据库用户,需确保服务账号与该用户绑定;若用常规用户,需确认密码配置无误。
VPC配对是否为最佳方案
VPC网络对等(VPC Peering)是跨项目访问的另一种方案,但并非所有场景的最优选择,需结合你的需求判断:
- 若你优先考虑网络安全性与性能(避免公网传输),且愿意承担VPC对等的配置维护成本,那么VPC配对是合适的选择——此时Cloud Run需配置VPC连接器,通过内部网络访问Cloud SQL的私有IP。
- 若你更看重运维简洁性,不想管理VPC peering的路由、防火墙等配置,那么SQL Auth Proxy方案更适合:它依赖IAM权限控制,无需额外VPC操作,运维成本更低。
简言之:无需VPC的SQL Auth Proxy方案完全可行,只要配置到位就能实现跨项目访问;VPC配对是偏向网络层面的方案,是否最佳取决于你对运维复杂度、网络性能的优先级选择。
内容的提问来源于stack exchange,提问作者Jose Gleeson
相关产品推荐
相关产品推荐

