You need to enable JavaScript to run this app. GCP Cloud Function配置internal-only ingress后同VPC VM访问报403排查
优惠活动
大模型
产品
解决方案
定价
更多

GCP Cloud Function配置internal-only ingress后同VPC VM访问报403排查

故障排查与解决步骤

1. 先排查基础配置是否符合要求

  • 确认VM的网络属性:确认你发起访问的VM是否真的和Cloud Function在同一VPC内,如果VM使用了VPC对等连接、共享VPC,要注意internal-only的ingress规则仅允许来自同一VPC、同一项目内VPC对等连接、或者共享VPC同组织内的流量,跨组织的对等连接流量默认被拦截
  • 确认访问使用的域名解析正确:不要用公网解析的Cloud Function域名访问,在VM上执行nslookup [你的函数域名],如果返回的是公网IP,说明你走的是公网出口访问,自然会被ingress规则拦截,你需要先在VPC内开启Private Google Access,再用VPC内网的Cloud Function端点访问
  • 确认函数部署参数生效:执行gcloud functions describe my_func --region us-east4,检查输出的ingressSettings字段确实为INTERNAL_ONLY,同时httpsTrigger下的allowUnauthenticated为true,排除部署参数未生效的问题

2. 排查VPC Service Controls相关问题

  • 首先确认项目是否归属在某个VPC Service Controls服务边界内:在当前项目的Cloud Console中搜索「VPC Service Controls」,查看边界列表,确认是否有边界包含当前项目,同时限制了Cloud Functions API的调用
  • 如果确实存在服务边界:
    • 检查边界的入站规则,是否允许你VM所在的VPC、VM的IP段作为可信来源访问Cloud Functions服务
    • 检查边界的访问级别,是否对VM使用的服务账号授予了访问权限
    • 如果你没有权限修改边界配置,需要联系组织的云管理员,将VM所在的VPC/IP段加入对应边界的允许列表,或者给VM的服务账号添加对应访问级别权限
  • 排查VPC Service Controls拦截日志:进入Cloud Logging,过滤资源类型为「VPC Service Controls」,查看是否有对应请求的拦截记录,日志会明确标注拦截原因,可快速定位具体规则问题

3. 其他可能的403原因排查

  • 检查VM的出站防火墙规则,是否有规则拦截了到Cloud Functions内网IP段443端口的出站流量
  • 检查Cloud Function的IAM权限:哪怕你部署时添加了--allow-unauthenticated参数,如果组织层面配置了禁止匿名访问的组织策略,该参数会自动失效。你可以尝试给VM使用的服务账号授予roles/cloudfunctions.invoker权限,再用携带认证信息的方式调用函数测试,执行命令:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" [你的函数URL]

如果该请求可以成功,说明是匿名访问被组织策略拦截,你可以调整对应组织策略,或者后续调用时都携带身份令牌即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 20:54:03