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

如何配置AWS S3 Bucket策略仅允许指定域名访问

解决AWS S3存储桶Referer策略无效问题

问题分析

你配置的Referer策略未生效,视频仍可直接通过S3 URL访问,核心原因可能是:

  • 存储桶开启了公开访问ACL,优先级覆盖了Bucket策略;
  • 仅配置了Allow规则,未明确拒绝不符合条件的请求,导致其他隐性权限(如IAM角色、默认ACL)绕过限制。

修复步骤

1. 关闭存储桶公开访问

进入S3控制台,找到目标存储桶creativecoder:

  • 切换到「权限」标签页;
  • 开启「阻止公共访问」的所有选项,确保没有通过ACL或其他方式授予公共读权限。

2. 修正Bucket策略

替换原有策略为以下配置,通过先允许、再拒绝的逻辑强化访问控制:

{
  "Version": "2012-10-17",
  "Id": "RestrictRefererPolicy",
  "Statement": [
    {
      "Sid": "AllowValidReferers",
      "Effect": "Allow",
      "Principal": "*",
      "Action": ["s3:GetObject", "s3:GetObjectVersion"],
      "Resource": "arn:aws:s3:::creativecoder/*",
      "Condition": {
        "StringLike": {
          "aws:Referer": [
            "https://www.creativecodermm.com/*",
            "https://creativecodermm.com/*"
          ]
        }
      }
    },
    {
      "Sid": "DenyInvalidReferers",
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["s3:GetObject", "s3:GetObjectVersion"],
      "Resource": "arn:aws:s3:::creativecoder/*",
      "Condition": {
        "StringNotLike": {
          "aws:Referer": [
            "https://www.creativecodermm.com/*",
            "https://creativecodermm.com/*"
          ]
        }
      }
    }
  ]
}

注意:如果有其他合法访问场景(如内部IAM用户管理文件),需额外添加对应的Allow规则,避免被Deny语句拦截。

3. 关于Referer策略的局限性

HTTP Referer头可被伪造,若需更安全的保护方案,建议:

  • 使用CloudFront配合签名URL/签名Cookie,仅允许经过签名的请求访问;
  • 生成S3预签名URL,为用户提供限时访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:55:22