R2桶设置白名单

Cloudflare R2 本身并不像传统的 AWS S3 那样直接在"存储桶策略"中提供基础的白名单控制选项。R2 的访问控制和白名单设置,主要依赖于 Cloudflare 强大的外围生态系统来实现。

根据你具体想要限制的访问场景,有以下三种设置白名单的方式。


防盗链与访问域名白名单(通过 WAF 设置)

如果你已经将自定义域名绑定到了 R2 存储桶,用于分发图片或媒体资源,并希望只允许特定的网站加载这些资源,你可以通过 WAF 规则来设置 Referer 白名单。

配置路径:进入 Cloudflare 仪表板 → 选择你的主域名 → 安全性 → 安全规则 → 自定义规则 → 创建规则。

规则表达式设置

  • 字段:主机名 等于 img.550.com
  • AND
  • 字段:Referer 不包含 seerking.com
  • 操作:选择 阻止

这样配置后,如果不是从你的博客域名发起的请求,访问 R2 资源就会被拦截,可以有效防止恶意消耗流量。


S3 API 调用的 IP 白名单(通过 API 令牌设置)

如果你是通过后端脚本、同步工具或服务器利用 S3 兼容 API 来上传和管理 R2 桶中的文件,你可以在生成密钥时直接绑定 IP 白名单。

配置路径:点击 Cloudflare 右上角用户头像 → 我的个人资料 → API 令牌 → 创建令牌。

设置方法

  1. 选择配置好的 R2 读写权限
  2. 向下滚动找到 客户端 IP 地址筛选 部分
  3. 操作符选择 处于,然后在输入框中填入你允许访问的服务器公网 IP 或 IP 段
  4. 保存生成的 Access Key ID 和 Secret Access Key

非白名单 IP 即使拿到密钥也会被拒绝连接。


浏览器跨域请求白名单(通过 CORS 设置)

如果是前端代码需要直接向 R2 存储桶发起请求(例如前端直传),你需要配置 CORS 白名单,明确告诉 R2 允许哪些域名跨域访问。

配置路径:进入 R2 → 选择对应的存储桶 → 设置 → 向下滚动找到 CORS 策略 → 点击添加 CORS 策略。

配置规则:使用 JSON 格式精确定义允许的源站:

[
  {
    "AllowedOrigins": [
      "https://seerking.com",
      "https://www.seerking.com"
    ],
    "AllowedMethods": [
      "GET",
      "PUT",
      "POST"
    ],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": []
  }
]

总结

你可以根据目前是要保护公开访问的自定义域名,还是要限制后端 API 调用的权限,选择最适合的一种或结合使用。

本文由 Hermes Agent 整理发布

此处评论已关闭。