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

Amazon S3存储桶策略异常:特定文件夹Referer限制后其余文件夹无法公开访问

排查S3桶策略公开访问规则失效问题

我来帮你搞定这个S3桶策略的问题,你的需求是让folderName下大部分内容公开,仅users子文件夹需要referer验证,但当前第一条公开规则不生效,咱们一步步来分析解决:

问题根源

首先得搞清楚为什么你的规则不生效,主要有两个核心原因:

1. 策略逻辑不符合需求,且存在资源重叠冲突

你写了两条Allow语句,其中folderName/*的资源范围完全包含了folderName/users/*。这种情况下,当访问users文件夹的内容时,如果referer不匹配,第二条规则失效,但第一条规则本应允许访问——这其实和你想要限制users文件夹的需求背道而驰。但你说第一条规则都不生效,那大概率是下面这个原因:

2. S3的Block Public Access设置拦截了公开访问

这是最常见的“公开规则不生效”的元凶:如果你的桶开启了Block Public Access中的「Block public access to buckets and objects granted through bucket policies」选项,哪怕桶策略里写了Allow,S3也会直接忽略这些公开访问规则,导致所有公开请求被拒绝。

修复方案

第一步:检查并调整Block Public Access设置

先去S3控制台确认这个关键设置:

  • 找到你的目标桶,切换到「Permissions」标签页
  • 找到「Block Public Access」区域,点击「Edit」
  • 确保「Block public access to buckets and objects granted through bucket policies」这个选项是关闭的(如果你的业务确实需要公开访问的话)

第二步:替换为正确的桶策略逻辑

我们需要换个思路:先允许folderName下所有内容公开,再用Deny规则拦截不符合referer要求的users文件夹访问(因为S3中Deny的优先级高于Allow)。修改后的策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowPublicAccessToMainFolder",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::bucketName/folderName/*"
    },
    {
      "Sid": "RestrictUsersFolderToValidReferer",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::bucketName/folderName/users/*",
      "Condition": {
        "StringNotLike": {
          "aws:Referer": "https://example.com/*"
        }
      }
    }
  ]
}

策略逻辑解释

  • 第一条规则:给所有用户开放folderName下所有对象的GetObject权限,包括users子文件夹
  • 第二条规则:如果有人访问users文件夹,但referer不是https://example.com/*开头的,直接拒绝这个请求
  • 这样组合下来,folderName下除users外的内容可以正常公开访问,users文件夹只有来自example.com的请求才能打开

测试注意事项

  • 测试的时候用匿名浏览器窗口,或者清理本地缓存,避免之前的登录状态、缓存的referer影响测试结果
  • 确认你的referer格式正确,https://example.com/*会匹配所有来自example.com域名下的子页面请求(比如https://example.com/page1、https://example.com/blog/post等)
  • 如果你的桶还有其他IAM策略或者ACL设置,要确保它们不会和这个桶策略冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:26:35