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

Google Cloud带CDN的私有存储桶签名URL访问异常排查

可能的遗漏配置及排查方向
  • 签名密钥与后端/域名的绑定错误
    检查CDN后端b-backend是否正确关联了b-sign-key,同时确认CDN的签名验证规则中,b.example.com域名是否启用了签名验证,并指定使用b-sign-key。很多时候会出现密钥绑定到错误后端,或者域名规则未关联对应密钥的情况,导致签名验证失败返回AccessDenied。

  • 签名URL生成参数错误
    确认NestJS生成b.example.com的签名URL时,使用的是b-sign-key的密钥名称和密钥值,而非a-sign-key。另外检查生成签名时是否正确传入了b.example.com作为主机头参数——CDN验证签名时会校验请求的主机头与签名生成时的主机头是否一致,若不匹配会直接拒绝访问。

  • 负载均衡映射规则未生效
    检查负载均衡的主机路径映射规则优先级:确保b.example.com/*的规则优先级高于默认规则或其他可能匹配b.example.com请求的规则。同时验证规则中的主机头是否完全匹配(比如大小写、拼写是否和实际访问的b.example.com一致),避免因规则不匹配导致请求被转发到a-backend,进而因密钥不匹配触发权限拒绝。

  • b-bucket的权限配置缺失
    检查b-bucket是否授予了b-backend对应的服务账号(或CDN访问角色)读取存储桶文件的权限。如果a-bucket配置了对应权限但b-bucket未配置,CDN在拉取b-bucket文件时会被存储桶直接拒绝,返回AccessDenied。

  • CDN签名验证开关或算法不匹配
    确认b.example.com对应的CDN配置中,签名验证功能已开启,且签名算法(如SHA1、SHA256)与NestJS生成签名时使用的算法完全一致。若算法不匹配,CDN无法验证签名有效性,会返回权限错误。

  • 域名与CDN的关联未完成
    检查b.example.com是否已正确添加到CDN实例并完成域名验证,DNS解析是否生效(可通过nslookup或dig命令确认)。若域名未完成CDN关联,请求可能未经过CDN签名验证流程,直接被存储桶拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:37:22