执行CloudFront缓存失效后访问默认页面遇Access Denied错误求助
以下是执行CloudFront缓存失效时可能遗漏或操作失误的地方:
失效路径未覆盖根对象的完整匹配
缓存失效时如果仅填写/index.html,但CloudFront对根域名访问(如www.example.com)的默认根对象请求,内部实际匹配的路径是/而非/index.html。若只失效/index.html,/的缓存仍保留旧的错误配置或权限记录,就会导致根路径访问出现权限拒绝。需同时添加/和/index.html两个路径执行失效操作。缓存失效路径的大小写错误
S3是大小写敏感的存储服务,若输入的失效路径是/Index.html或其他大小写不一致的格式,而桶内实际文件为index.html,会导致失效操作无法命中正确缓存条目,旧的错误缓存依然生效。未匹配对应缓存行为的路径模式
如果分发配置了多个缓存行为(比如针对根路径有单独的行为规则),缓存失效操作可能未覆盖该特定行为的路径。需确认失效路径是否匹配对应缓存行为的路径模式:若根路径使用Default (*)行为,需包含/和/index.html;若有单独的/行为,要确保针对该行为的缓存也被失效。未等待缓存失效全局生效
CloudFront缓存失效并非即时完成,通常需要15-60分钟才能在全局边缘节点生效。如果执行失效后立刻测试,部分节点可能未完成缓存更新,导致仍出现错误。需等待足够时间后再验证结果。默认根对象与源站配置不一致
虽然设置了CloudFront的默认根对象为index.html,但缓存失效后,CloudFront重新拉取内容时,若S3桶的静态网站托管索引文档配置被意外修改(未设为index.html),会导致拉取时出现权限问题。需确认S3桶的索引文档配置是否正确。OAC/OAI权限同步延迟
若使用Origin Access Control (OAC) 或 Origin Access Identity (OAI) 限制S3访问,缓存失效后CloudFront重新请求内容时,可能出现OAC/OAI权限临时同步延迟,或失效操作触发了权限校验缓存。可重新确认OAC/OAI与S3桶的关联配置,确保权限正确。
内容的提问来源于stack exchange,提问作者CloudDev

