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

通过Cloudflare访问AWS S3 Bucket遇AccessDenied问题求助

解决S3+Cloudflare访问AccessDenied问题的实用步骤

1. 先确认S3静态网站托管是否开启

用自定义域名通过Cloudflare访问S3,必须开静态网站托管——没开的话请求会走S3的API访问模式,和静态网站的权限逻辑完全不一样,大概率会被拒。开的时候哪怕不用索引文档,也得随便填一个(比如index.html)。另外要注意:Cloudflare的CNAME目标必须指向S3的静态网站托管域名(格式是Bucket名.s3-website-<区域>.amazonaws.com),不能指向默认的Bucket域名(Bucket名.s3.amazonaws.com),否则Host头不匹配,S3直接拒绝。

2. 检查Cloudflare SSL模式和访问协议的冲突

你用的是Flexible模式,这个模式下Cloudflare和客户端之间是HTTPS,但Cloudflare到S3是HTTP。你现在访问的是HTTP地址,理论上没问题,但要确认S3静态托管没强制HTTPS。另外,Flexible模式下Cloudflare发的请求Host头是你的自定义域名,只有当CNAME指向静态托管域名时,S3才会接受这个Host头。

3. 验证Bucket策略里的Cloudflare IP是否正确

Cloudflare的IP段会更新,你得确保策略里用的是最新的IP列表。另外,你加本地IP没用是正常的——开启Cloudflare代理后,S3收到的请求IP是Cloudflare的,不是你的本地IP,所以加本地IP完全不生效。给你个Bucket策略的示例,记得把IP段补全最新的:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::development-assets.example.com/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "103.21.244.0/22",
                        "103.22.200.0/22",
                        "103.31.4.0/22",
                        // 这里要补充Cloudflare所有的IPv4和IPv6段
                    ]
                }
            }
        }
    ]
}

4. 检查文件本身的ACL权限

哪怕Bucket策略允许GetObject,如果test.png的ACL设为私有,还是访问不了。可以先临时把这个文件的ACL改成“公共读取”试试,如果能访问了,再调整Bucket策略和对象ACL的配合规则。记住:Bucket策略和对象ACL是叠加生效的,两者都得允许才行。

5. 清Cloudflare缓存再测

有时候Cloudflare会缓存旧的错误响应,导致你改了配置还是显示AccessDenied。手动去Cloudflare缓存设置里清掉这个文件的缓存,或者用命令curl -L -H "Cache-Control: no-cache" http://development-assets.example.com/test.png测试,绕开缓存。

6. 直接访问S3静态域名排查

直接访问S3的静态网站托管域名(比如http://development-assets.example.com.s3-website-us-east-1.amazonaws.com/test.png),如果能访问,说明问题在Cloudflare配置;如果也不能访问,那就是S3本身的配置(托管、策略、文件权限)有问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:52:27