首页/云/云平台与虚拟化速查/桶策略与访问控制

桶策略与访问控制

桶策略以 JSON 描述谁在什么条件下能对哪些对象做什么操作;配合账号侧授权与防盗链,构成对象存储的权限体系。

云平台与虚拟化速查云更新于 2026-10-13

桶策略与访问控制

桶策略是一段 JSON,描述谁在什么条件下能对哪些对象做什么操作。它由主体、动作、资源、条件和效果五部分构成,配合账号侧的身份策略与防盗链设置,构成对象存储的权限体系。配置时最大的风险是「打开公网可读写」:一条放宽语句就能让整个桶的权限形同虚设,而从控制台界面上很难一眼看出来。

基本信息

五要素Effect、Principal、Action、Resource、Condition
判断逻辑桶策略与账号身份策略叠加判断,显式拒绝优先于允许
常见动作GetObject、PutObject、DeleteObject、ListBucket
条件维度来源 IP、协议要求(强制 HTTPS)、Referer 防盗链
验证方式改完用匿名访问或受限身份实际验证一次

典型使用场景

  • 开放只读静态资源:让指定网段或 CDN 回源读取公开素材
  • 限制来源网段:只允许公司出口 IP 或指定 VPC 访问私有桶
  • 强制 HTTPS:禁止通过明文协议访问对象
  • 防盗链:限制只有指定站点的页面可以引用资源
  • 跨账号授权:给合作方账号只读访问某个前缀下的对象

桶策略片段(允许指定网段只读)

桶策略片段(允许指定网段只读)
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": ["*"],
      "Action": ["oss:GetObject"],
      "Resource": ["acs:oss:*:*:my-app-assets/public/*"],
      "Condition": {"IpAddress": {"acs:SourceIp": ["203.0.113.0/24"]}}
    }
  ]
}

要素读法

要素含义风险点
Effect允许或拒绝显式拒绝会覆盖其他允许
Principal授权给谁写通配符等于对所有人开放
Action允许的动作带上写与删除动作风险陡增
Resource作用对象路径前缀写得过宽会覆盖整个桶
Condition生效条件条件写错时策略可能静默失效
把 Principal 设为通配符且 Action 含写入与删除动作,等于开放公网读写;每次变更后做一次匿名访问验证,确认权限没有被放大。
排权限问题时桶策略、账号身份策略、临时凭证权限三处都要看:上传接口用了临时密钥但桶策略仍放开匿名读写,权限控制就失去意义。
策略建议按文件管理:JSON 存进版本库、变更走评审记录,避免有人在控制台点几下就把整个桶的读写放开了,事后也无人知晓。

易错点

  • 桶策略与账号策略叠加判断,排错时两处都要看
  • 上传接口使用临时密钥但桶策略仍放开匿名读写,权限形同虚设
  • 策略里的资源路径写错前缀,授权范围比预期大很多
  • 开放权限后不做验证也不记时间,出现异常访问时无从追溯是哪次变更引入的

数据来源与参考

  • 阿里云 OSS 权限控制文档
  • 腾讯云 COS 访问控制文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌