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

如何在AWS中排查CloudFront的Access Denied错误?

CloudFront Access Denied错误排查步骤

你遇到的错误信息如下:

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>EKJDP6E2XYVXCG7A</RequestId>
<HostId>zxIi9s/XlmtD88G6fozk6q5aWzRnHckTa0vsm5WGVHZ2t/MoFnv/OP900WltWM17kB/hePk1UvY=</HostId>
</Error>

以下是CloudTrail无相关记录情况下的具体排查方向:

1. 验证源站权限配置

如果源站是S3:

  • 检查桶策略:确认是否包含允许CloudFront OAC(Origin Access Control)或OAI(Origin Access Identity)访问的语句。示例策略片段:
    {
        "Version": "2008-10-17",
        "Id": "PolicyForCloudFrontPrivateContent",
        "Statement": [
            {
                "Sid": "1",
                "Effect": "Allow",
                "Principal": {
                    "Service": "cloudfront.amazonaws.com"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::your-bucket-name/*",
                "Condition": {
                    "StringEquals": {
                        "AWS:SourceArn": "arn:aws:cloudfront::your-account-id:distribution/your-distribution-id"
                    }
                }
            }
        ]
    }
    
  • 检查对象权限:确保S3对象的ACL未设置为完全私有,或已授权OAC/OAI读取权限;同时确认桶的默认权限允许读取操作。
  • 检查存储类:若对象使用Glacier等归档存储类,需先完成恢复流程才能访问。

如果源站是自定义HTTP服务器:

  • 确认源站的防火墙、安全组或内部权限规则未拒绝CloudFront的请求,查看源站访问日志是否存在403拦截记录。

2. 检查CloudFront OAC/OAI配置

  • 确认CloudFront分发的源设置中,已正确关联对应的OAC或OAI,未使用"公共访问"模式(适用于私有S3源场景)。
  • 对于OAC:登录S3控制台,检查目标桶的「权限」选项卡,确认已启用「Origin Access Control设置」并选择对应CloudFront OAC。
  • 对于OAI:确认OAI已被添加到S3桶的权限列表中,允许其执行s3:GetObject操作。

3. 核对缓存行为与请求路径

  • 检查CloudFront分发的缓存行为规则,确认请求路径匹配了对应的缓存行为,且该行为允许的HTTP方法(如GET、HEAD)与请求一致。
  • 注意S3路径区分大小写,需确保请求路径的大小写与S3对象实际路径完全一致。

4. 排查WAF/Shield规则拦截

  • 检查CloudFront关联的WAF Web ACL,确认是否有IP黑名单、SQL注入防护等规则触发了403拦截。可临时禁用WACL测试,或查看WAF日志中的拦截详情。
  • 检查AWS Shield高级防护规则,确认是否有异常流量被拦截。

5. 启用并分析源站访问日志

  • 对于S3源:启用S3桶访问日志,查看日志中对应请求的详细信息,包括请求者身份、错误代码的具体触发原因。
  • 对于自定义源:查看源站服务器的访问日志,确认请求是否到达源站,以及源站返回403的具体原因。

6. 检查边缘缓存与请求头

  • 确认请求未携带被CloudFront或源站拒绝的自定义头信息。
  • 使用curl -v命令发起请求,查看完整的请求/响应头,排查是否存在异常头或重定向问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:20:18