OSS 权限体系实战:Bucket Policy、RAM 与预签名 URL 怎么配合

蒋

蒋安全

· 阅读 305

分享

对象存储的数据泄露事件,绝大多数不是被攻破的,而是权限配错了:一个为了图方便设置的公共读,一条范围过宽的授权策略,一个永不过期的访问链接。OSS 的权限控制有多个层次,先分清各自的职责,再决定用哪一个,比出问题后到处加限制要有效得多。

四层权限控制各管什么

  • Bucket ACL:最粗粒度的一层,控制整个存储桶是私有、公共读还是公共读写。默认应当是私有,任何公共读设置都要有明确理由并登记在册。
  • RAM 用户与策略:管「谁能用哪个账号访问」。按角色授权,遵循最小权限原则,只给必要的动作与资源路径,避免直接使用主账号密钥。
  • Bucket Policy:管「哪些身份在什么条件下能访问哪些前缀」。适合跨账号授权、按目录分权、限制来源 IP 或 referer 等细粒度场景。
  • 预签名 URL:管「临时把某个对象的访问权给出去」,带有效期,适合下载链接、临时分享、前端直传等场景。

四者是叠加生效的:任意一层拒绝都会导致访问失败。理解这一点,排查权限问题时就该逐层确认,而不是只盯着其中一处改。

OSS 权限体系实战:Bucket Policy、RAM 与预签名 URL 怎么配合

默认私有,按需开口

新建存储桶一律设为私有,公共访问通过 CDN 回源或预签名 URL 实现,而不是把桶本身放开。确有静态资源需要公开访问时,单独建一个只放公开内容的桶,与包含敏感数据的桶物理隔离,避免一次误操作波及全部内容。

同时要开启「阻止公共访问」这类全局开关,它能防止有人后续误改 ACL 或策略把数据暴露出去。这类开关的价值在于提供一道默认防线,即使个别配置出错也不会立刻造成公开可读。

目录分权与前缀隔离

把不同业务、不同敏感级别的数据放在不同前缀下,再用 Bucket Policy 或 RAM 策略按前缀授权。例如用户头像目录允许应用服务读写,财务归档目录只允许特定角色在特定网络环境内访问。前缀规划要在建桶初期就确定,事后重新组织目录的成本很高。

OSS 权限体系实战:Bucket Policy、RAM 与预签名 URL 怎么配合

预签名 URL 的正确用法

  • 有效期尽量短:按业务实际需要设定,几分钟到几小时即可,不要为了方便签一个长期有效的链接。
  • 不要把签名 URL 写进代码库或日志:一旦泄露,在有效期内任何人都能访问,且难以追溯。
  • 前端直传要限定范围:通过策略限制可上传的前缀、文件大小与类型,避免用户把任意内容传进你的桶。
  • 下载链接加防盗链:结合 referer 限制与 CDN 鉴权,降低被外站直接引用的风险。

容易被忽略的几个点

访问密钥管理是重灾区:应用侧优先使用实例角色或临时凭证,而不是把长期密钥写进配置文件;开发环境与生产环境使用不同的密钥与不同的桶;密钥定期轮换,代码提交前做明文扫描。

日志与审计同样重要:开启访问日志记录谁在什么时间访问了哪个对象,配合操作审计发现异常访问模式。数据量大的桶还要关注生命周期规则,避免历史版本与碎片文件长期堆积。

小结:对象存储的权限设计遵循一个朴素原则——默认全关,按需打开,打开的范围越小越好,有效期越短越好。把这套原则写进团队规范,比事后补救省事得多。

安徽卓牛的存储与数据安全支持

安徽卓牛可以结合阿里云的对象存储、访问控制与安全防护产品体系,协助客户完成存储架构设计、权限体系梳理、数据生命周期规划与合规加固。具体方案需要结合数据规模与业务场景评估,以实际方案与报价为准。可通过官网在线客服联系安徽卓牛。

#OSS#对象存储#权限管理#Bucket Policy#预签名URL