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

同项目下GKE集群服务无法访问设置内部入站规则的Cloud Function怎么办

配置方案(GKE访问内部限流Cloud Function 403问题)

核心原因说明

你为Cloud Function配置的仅允许内部流量的ingress规则,会拦截所有来自公网路径的请求,同时默认要求请求携带合法的GCP身份验证凭证,满足两个条件才能正常访问。

必做配置项

1. 确保GKE到Cloud Function的请求走VPC内部链路

  • 确认GKE集群属于和Cloud Function同一VPC,且为VPC原生集群;如果是非VPC原生集群,需要将集群Pod、Service IP段添加到对应VPC的路由规则中
  • 为GKE集群配置Serverless VPC Access连接器,强制所有发往Cloud Function的流量走内部VPC通道,避免绕行公网被拦截

2. 配置Cloud Function调用权限

给GKE工作负载使用的服务账号授予Cloud Function调用权限:

  • 确定GKE使用的服务账号:未配置Workload Identity时用节点默认服务账号[项目ID]-compute@developer.gserviceaccount.com;配置Workload Identity时用绑定的GCP服务账号
  • 执行命令授予调用角色:
gcloud functions add-iam-policy-binding <Function名称> \
  --region <部署区域> \
  --member="serviceAccount:<服务账号邮箱>" \
  --role="roles/cloudfunctions.invoker"

3. 调整GKE服务的请求逻辑

  • 发送请求时需要在HTTP头添加身份验证凭证:Authorization: Bearer <身份令牌>,令牌可以通过gcloud auth print-identity-token <Cloud Function触发URL>生成,用GCP官方SDK调用时会自动填充该请求头
  • 如果你不需要额外的身份验证(ingress规则已经完成第一层防护),可以给allUsers授予roles/cloudfunctions.invoker角色,公网用户即使有权限也无法访问,不会产生安全风险

验证方法

在GKE集群中启动测试Pod,执行如下命令验证连通性:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token <Cloud Function触发URL>)" <Cloud Function触发URL>

返回正常响应即配置完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:24:01