You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

共享VPC场景下Cloud Functions访问Serverless VPC Connector权限异常求助

解决共享VPC下Cloud Functions访问CloudSQL的权限报错问题

我之前也踩过这个一模一样的坑!核心问题是你把权限授予的目标项目搞错了——错误提示里提到的on project MY_PROJECT,指的是创建Serverless VPC Connector的共享VPC宿主项目,而不是你部署Cloud Functions的服务项目。以下是具体的解决步骤:

1. 给gcf-admin-robot服务账号在宿主项目授予正确角色

错误提示里要求的vpcaccess.connector.use权限,包含在roles/vpcaccess.user角色里(比Viewer权限更精细,不需要给过大的Viewer权限)。你需要在宿主项目上执行这个绑定命令:

gcloud projects add-iam-policy-binding YOUR_HOST_PROJECT_ID --member=serviceAccount:service-YOUR_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com --role=roles/vpcaccess.user

注意:替换YOUR_HOST_PROJECT_ID为你的共享VPC宿主项目ID,YOUR_SERVICEID为错误提示里的服务ID。

2. 验证权限是否正确生效

执行以下命令检查宿主项目的IAM绑定,确认目标服务账号已经拥有roles/vpcaccess.user角色:

gcloud projects get-iam-policy YOUR_HOST_PROJECT_ID --filter="bindings.members:service-YOUR_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com" --format="value(bindings.role)"

如果输出里包含roles/vpcaccess.user,说明权限已经正确配置。

3. 额外检查要点

除了权限,还有几个关键点需要确认:

  • 区域一致性:Cloud Functions的部署区域必须和Serverless VPC Connector的区域完全一致,跨区域无法使用Connector。
  • 共享VPC访问权限:确认你的服务项目(部署函数的项目)已经在宿主项目的共享VPC设置中被添加为共享VPC使用者。
  • CloudSQL防火墙规则:在CloudSQL的授权网络中,添加Serverless VPC Connector的IP段(也就是你的10.8.0.0/28),确保Connector能访问CloudSQL实例。

为什么之前加Viewer角色没用?

错误提示里建议授予Viewer角色其实是不准确的——Viewer角色并不包含vpcaccess.connector.use这个特定权限,只有roles/vpcaccess.user或更高权限的roles/vpcaccess.admin才包含这个必要权限,而且必须授予在宿主项目上,这才是问题的核心。

内容的提问来源于stack exchange,提问作者pcboy_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:37:51