答PikeTalk
EdgeOne 海外区读 Blob 403 AccessDenied,按「谁拒绝的」逐层定位:1. 先看响应体细节定位置:403 的响应里通常带具体错误码——EdgeOne 自己拒绝的(响应头有 EO 标识)还是回源到源站后源站拒绝的(回源场景)?先看响应头有没有 x-eo-err 或类似标识,以及 Response 时间(边缘命中的 403 响应极快,回源后的是源站延迟)。这一步决定排查方向:边缘权限 vs 源站权限;2. 边缘层的三个 403 原因:a. 访问鉴权没配或配错——Blob 的读取如果是私有桶(private),直接 URL 访问必然 403,需要带签名(SAS token / 签名 URL)。检查:同样的 URL 换个区域能不能读、带签名后能不能读。海外区规则和国内区独立——国内区的鉴权配置不会自动同步到海外区,新开的海外区 Zone 要单独配鉴权规则;b. 海外区的访问规则(Referer/UA/IP 黑白名单)误拦——检查 EdgeOne 海外区的规则引擎里有没有拦截规则命中了你的测试请求(规则引擎的命中日志在安全-访问日志里能查到具体规则 ID);c. CDN 缓存了 403 响应——之前配置错误时的 403 被缓存住了,改完配置还是 403。验证:请求带随机 query 参数绕过缓存(?t=时间戳)能不能读。能读就是缓存问题,去刷新缓存或配 403 不缓存;3. 源站层(如果确认回源了):源站的存储(Azure Blob/对象存储)的防火墙规则——源站可能只放通了 EdgeOne 国内区的回源 IP 段,海外区回源 IP 不同被源站拒。查源站的 IP 白名单是否覆盖海外回源段;4. 快速定位路径总结:先加随机参数测缓存 → 再看响应头定边缘/源站 → 边缘查鉴权与规则 → 源站查 IP 白名单。工单时带上:完整请求 URL、时间点、X-Request-ID(响应头里有),EdgeOne 后台能按 Request-ID 查到这次请求被哪个环节拒绝。