本文由 腾讯云国际站代理商『翼龙云/TG @Yilongcloud 撰写』如需转载请注明!

在配置腾讯云国际版对象存储(Cloud Object Storage, COS)时,除了关注基础的存储功能,安全加固是业务上线前必须完成的环节。如果配置不当,存储桶可能面临敏感数据泄露或因恶意盗刷产生的异常流量费用。 本文针对 COS 存储桶的安全配置,说明访问控制、跨域共享及防盗链三个关键环节的操作要点,适配跨境独立站、海外营销素材等出海业务。

重要前置提示

  1. Referer 防盗链可作为辅助防护,可以被爬虫伪造,不可作为唯一防盗刷手段;携带签名的预签名 URL 请求会直接跳过 COS 防盗链校验腾讯云。
  2. 如果业务使用 CDN / EdgeOne 加速域名访问资源,防盗链、CORS 规则需要配置在 CDN/EdgeOne 侧,COS 存储桶内配置不再生效腾讯云。
  3. 出海投放 TikTok、Facebook 广告场景,社媒外链访问经常为空 Referer,直接拒绝空 Referer 会出现广告素材 403 打不开问题。

1. 关闭公共读权限(基础访问控制)

配置背景

若在测试阶段将存储桶权限设为 “公有读私有写”(Public Read),且上线后未及时修改,任何获取文件 URL 的用户均可下载桶内数据。这不仅涉及数据安全,也可能带来合规与高额流量账单风险。

注意:存储桶设置私有读写后,如果手动给单个对象设置公有读权限,会绕过桶级别权限,造成数据泄露。

操作建议

  1. 默认私有读写:创建存储桶时应首选 “私有读写”(Private)。对于存量存储桶,需在控制台 “权限管理” 中核实并修改桶访问权限。
  2. 按需授权对外资源:必须对外公开的文件,优先后端代码生成带过期时间的预签名 URL;或利用 CAM(访问管理)策略,为子账号授予最小化权限。业务尽量避免使用根账号永久 SecretID/SecretKey,上传下载优先使用 STS 临时密钥。
  3. 权限验证:修改完成后,浏览器无痕模式直接访问对象原始链接。若返回 AccessDenied(HTTP 403),代表公共读权限已经关闭。
  4. 合规基线:建议开启存储桶SSECOS 服务端默认加密,新上传对象自动加密,满足海外数据加密合规要求。

2. CORS 精准域名配置(跨域资源共享)

配置背景

当外部前端网站需浏览器直接请求 COS 资源,受浏览器同源策略限制,必须配置 CORS。若 Allowed Origins 简单设置为*,会允许任意站点调用资源,扩大安全风险。

注意:业务接入 CDN/EdgeOne 加速域名,跨域规则需要在 CDN/EdgeOne 控制台配置,COS 桶内 CORS 配置不生效腾讯云。 如果前端开启xhr.withCredentials = true携带 Cookie,Origin 不能配置*,必须填写完整具体域名,否则浏览器直接跨域报错腾讯云。

操作建议

  1. 限定业务域名:CORS 规则填写完整业务域名,必须携带 http/https 协议头,支持二级泛域名*.shturl.cc/mmJ4,一行填写一个来源,不要末尾带斜杠。非特殊场景不使用通配符*。
  2. 最小化方法与 Header:仅开放业务必需请求方法,静态素材业务一般仅放开GET、HEAD;需要浏览器直传文件再补充PUT、POST;AllowedHeaders 按需放行业务请求头。
  3. 排错参考:前端出现跨域报错,优先检查 Network 面板 Origin 请求头,与控制台配置完全匹配;预检 OPTIONS 请求失败重点核对 Methods、Headers 配置。

3. 防盗链配置(Referer 机制,辅助防护)

配置背景

图片、视频素材被第三方网站直接引用,会消耗 COS 外网下行流量,产生异常账单。HTTP Referer 防盗链是辅助防护手段,Referer 头部可被恶意爬虫伪造,无法彻底根治盗刷,不可单独依赖该方案腾讯云。

重要机制:请求携带预签名 URL 签名时,COS 防盗链校验直接跳过;如果走 CDN/EdgeOne 域名访问,防盗链配置需要在加速侧设置,COS 侧配置无效腾讯云。

配置策略参考

配置类型 机制说明 适用场景 风险提示
白名单 仅允许列表内域名访问 自有官网业务域名 安全性较高,出海投放广告场景注意评估空 Referer 策略,避免广告素材 403
黑名单 拒绝特定域名访问 屏蔽已知恶意采集站点 无法防护攻击者频繁更换域名的盗刷行为
空 Referer 控制无 Referer 头请求 浏览器直接粘贴链接访问、社媒广告外链跳转 关闭会阻断社媒广告素材;开启会给爬虫留下绕过空间,建议搭配其他防护手段

空 Referer 出海业务处理建议

  1. 纯官网业务、无社媒广告投放:建议拒绝空 Referer。
  2. TikTok/Facebook 等广告投放业务:需要允许空 Referer;同时建议配合 CDN/EdgeOne Bot 管理能力,拦截高频恶意空 Referer 访问,平衡广告可用与防盗刷效果。

4. 配套审计与告警(必做运维)

  1. 开启 COS 访问日志:进入日志管理 – 日志存储;源存储桶与日志目标桶必须选择同一地域,不建议日志存储写入当前业务桶。日志存在延迟,仅用于问题溯源,不作为计费对账依据腾讯云。
  2. 配置云监控告警:对 COS 外网流出流量设置阈值告警,流量突增及时感知盗刷风险。
  3. 定期审计 CAM 子账号密钥、存储桶权限,清理闲置密钥。

总结

配置腾讯云国际 COS 遵循最小权限原则(PoLP):存储桶默认私有读写、精准 CORS 跨域、Referer 防盗链做辅助防护;出海广告业务要重点评估空 Referer 对广告素材的影响。 建议开启访问日志与流量告警,定期审计权限,结合 CDN/EdgeOne 能力,构建多层防护,避免出现数据泄露与异常账单。

常见问题 (FAQ)

Q1:腾讯云国际版 COS 如何正确配置 CORS 跨域访问? A:存储桶「安全管理」找到 CORS 设置,填写带协议的业务域名,不建议直接填*;仅开放业务需要的 HTTP 方法。若业务使用 CDN/EdgeOne 加速,跨域规则需要配置在加速平台侧。如果前端开启 withCredentials 携带 Cookie,Origin 不能使用通配符。

Q2:COS 配置了 Referer 防盗链,但是盗刷依旧发生? A:Referer 请求头可以被脚本伪造;携带预签名 URL 的请求会跳过防盗链校验。Referer 仅做辅助防护;建议存储桶保持私有读写,对外使用带有效期预签名 URL,搭配 CDN 侧鉴权、Bot 防护多层策略。

Q3:开启防盗链后,Facebook/TikTok 广告打开图片返回 403? A:社媒外链跳转访问经常产生空 Referer 请求;防盗链白名单模式下,需要勾选「允许空 Referer」,同时建议在 EdgeOne 开启 Bot 管理拦截高频恶意访问,兼顾广告展示和安全。

Q4:关闭公共读后,网站图片无法正常显示? A:桶私有读写后匿名访问返回 403。解决方式:后端动态生成预签名 URL;或者接入 CDN/EdgeOne,开启私有桶回源授权,由加速节点完成资源分发。

Q5:COS 访问 403,如何区分是权限问题还是防盗链拦截? A:返回AccessDenied代表匿名访问私有桶或者 CAM 权限不足;返回You are denied by bucket referer rule代表被防盗链策略拦截。

Q6:开启访问日志有什么注意事项? A:源桶与日志目标桶必须同一地域,不建议日志写入业务本身存储桶;日志存在采集延迟,用于故障溯源,不作为计费计量依据

作者:翼龙云/Yilongcloud

相关新闻

联系我们

联系我们

电报:@yilongcloud

邮件:yilongcloud@hotmail.com

工作时间:早上8:00-晚上11:00

认准电报
认准电报
分享本页
返回顶部