Cloud Scheduler触发需认证的Cloud Run服务返回403错误该如何排查?
Cloud Scheduler 调用需身份认证 Cloud Run 服务返回 403 问题排查点
- 检查受众(aud)参数配置:必须和你请求的 Cloud Run 服务 URL 完全一致,不能多末尾斜杠、不能缺 https 协议、自定义域名和默认
run.app域名不能混用,比如实际请求 URL 是https://xxx.run.app,受众填成https://xxx.run.app/就会鉴权失败。 - 检查权限生效延迟:IAM 权限配置完成后通常有 1~5 分钟的传播延迟,刚配置完立即测试会出现临时性 403,可等待几分钟后重试。
- 检查权限授予的资源层级:确认
scheduler-invoker@<REDACTED>.iam.gserviceaccount.com的 Cloud Run Invoker 角色是直接授予在目标 Cloud Run 服务本身,而非项目/文件夹层级;如果是跨项目调用,还需要确认两个项目的组织策略没有禁止跨项目服务账号调用权限。 - 检查 Cloud Run Ingress 配置:如果 Cloud Run 服务的 Ingress 规则设置为「仅限内部流量和负载均衡」,需要额外为 Cloud Scheduler 配置 VPC 连接器,走内部网络访问,公网直接请求会被拦截返回 403。
- 检查服务账号状态与组织策略:确认该专用服务账号没有被禁用,同时所属项目的组织策略没有限制服务账号生成 OIDC 身份令牌的相关约束。
- 检查 Scheduler 任务配置:确认任务类型为 HTTP 类型,指定的身份凭证为 OIDC 令牌而非其他类型,请求方法与 Cloud Run 服务允许的方法匹配。
- 检查自定义域名适配:如果 Cloud Run 服务绑定了自定义域名,且 Scheduler 调用的是自定义域名,受众参数必须填写自定义域名,不能使用默认
run.app域名。
内容的提问来源于stack exchange,提问作者Vinicius Carvalho
相关产品推荐
相关产品推荐

