GCP共享VPC环境下VPC Connector连接CloudSQL配置求助
共享VPC下Cloud Function连接跨项目CloudSQL的配置方案
VPC Connector部署位置
必须部署在宿主项目prod-host中,核心原因如下:
- 共享VPC的核心网络资源由宿主项目统一管理,附属项目(prod-svc、prod-sql)无法在自身项目创建能关联共享VPC的有效VPC Connector。
- 创建Connector时,需选择prod-host内属于共享VPC的子网,并将prod-svc添加为该Connector的「允许的项目」,确保prod-svc的Cloud Function可以调用此Connector。
所需IAM权限配置
1. Cloud Function操作账号(prod-svc项目内)
- 拥有
roles/cloudfunctions.developer权限:用于创建和配置Cloud Function。 - 在prod-host项目中拥有
roles/vpcaccess.user权限:允许该账号在创建Cloud Function时,看到并选择prod-host中的VPC Connector。
2. Cloud Function运行时服务账号(prod-svc项目默认账号:prod-svc@appspot.gserviceaccount.com)
- 在prod-host项目中被授予
roles/vpcaccess.serviceAgent权限:确保VPC Connector允许Cloud Function的流量通过。 - 在prod-sql项目中被授予
roles/cloudsql.client权限:允许Cloud Function连接目标CloudSQL实例。
3. 宿主项目Connector配置补充
确保prod-host的VPC Connector设置中,已将prod-svc项目添加至「允许使用此连接器的项目」列表,该配置可在创建Connector时设置,或事后在Connector编辑页面修改。
额外配置注意点
- CloudSQL实例需部署在共享VPC的子网中,或已配置私有IP并关联共享VPC。
- 创建Cloud Function时,选择「连接到VPC网络」选项,此时操作账号有对应权限的话,就能看到prod-host项目的VPC Connector并选择。
内容的提问来源于stack exchange,提问作者Rhys Ryan
相关产品推荐
相关产品推荐

