TL;DR
场景:多团队与跨账号协作下,OSS 需同时满足公开访问、最小权限与可审计。
结论:身份用 RAM Policy,来源与资源约束用 Bucket Policy,ACL 仅用于公开读等简单场景;显式拒绝优先。
产出:权限版本矩阵 + 常见 4xx/5xx 错误速查卡

版本矩阵
| 功能/策略 | 已验证说明 |
|---|---|
| Bucket/Object ACL 权限枚举 | 文档校对(2025) Bucket ACL 推荐枚举为:private / public-read / public-read-write;文中出现"public-write"需确认是否笔误(需修改提示)。 |
| Object ACL default 继承 | 文档校对(2025) default 继承 Bucket ACL,便于统一治理;特殊对象再单点覆盖。 |
| RAM Policy 四要素(Principal/Action/Resource/Condition) | 文档校对(2025) 细粒度授权;与用户/用户组/角色结合;建议配合 STS。 |
| Bucket Policy(基于资源的策略) | 文档校对(2025) 支持跨账号、IP/Referer/HTTPS 强制、黑白名单;适合来源与资源路径约束。 |
| 判定规则:显式拒绝优先 | 文档校对(2025) 任何策略中的 Deny 命中即拒绝,优先于 Allow。 |
控制方式
针对存放在 Bucket 的 Object 的访问,OSS提供了多种权限控制方式,包括 ACL、RAM Policy 和 Bucket Policy。
针对存放在 Bucket 的 Object 的访问,阿里云对象存储服务(OSS)提供了多层次、细粒度的权限控制机制,主要包括以下三种方式:
- ACL(访问控制列表)权限控制:
- 提供基础的读写权限管理
- 支持对Bucket和Object两个级别设置权限
- 权限类型包括:
- 私有(private):仅Owner可访问
- 公共读(public-read):所有人可读,仅Owner可写
- 公共读写(public-read-write):所有人可读写
- 典型应用场景:简单的静态网站托管、公开分享文件
- RAM Policy(资源访问管理策略):
- 基于阿里云RAM服务实现的精细化权限控制
- 支持对用户、用户组或角色授权
- 可定义详细的访问条件,包括:
- 允许/拒绝特定操作(如GetObject、PutObject等)
- 限制访问IP范围
- 设置访问时间段
- 指定可访问的资源路径
- 示例:限制开发团队只能访问特定项目目录下的资源
- Bucket Policy(存储桶策略):
- 直接在Bucket级别设置的访问策略
- 采用JSON格式的权限声明
- 支持跨账号访问授权
- 可实现更复杂的访问控制逻辑,如:
- 允许其他阿里云账号访问本Bucket
- 基于Referer防盗链
- 强制HTTPS访问
- 设置IP黑白名单
- 典型应用:企业间数据共享、内容分发网络(CDN)源站保护
这些权限控制方式可以单独使用,也可以组合使用以满足不同场景的安全需求。当多种策略同时存在时,OSS会按照"显式拒绝优先"的原则进行权限判定。建议用户根据实际业务需求,采用最小权限原则进行配置,以确保数据安全。
ACL
Bucket ACL
Bucket ACL 是 Bucket 级别的权限访问控制,目前有三种权限:public-read-write,public-read,public-write

Object ACL
Object ACL 是 Object 级别的权限访问控制,目前有四种访问权限:private、public-read、public-read-write、default。
Object ACL 的四种访问权限含义如下:

RAM Policy
RAM(Resource Access Management,资源访问管理)是阿里云提供的一套完善的资源访问控制服务。作为云上身份管理与访问控制的核心组件,RAM通过建立精细化的授权机制,帮助企业对云资源访问权限进行集中化管理。
RAM的核心功能包括:
- 身份管理:支持创建和管理RAM用户、用户组,以及自定义角色
- 权限控制:基于RAM Policy策略实现细粒度的访问控制
- 安全认证:提供访问密钥(AccessKey)和多因素认证(MFA)等安全机制
RAM Policy是RAM的核心授权机制,采用JSON格式的权限策略文档,可以精确控制:
- 授权主体(Principal):指定被授权的RAM用户或角色
- 操作权限(Action):定义允许或拒绝的具体API操作
- 资源范围(Resource):限定策略适用的资源范围
- 生效条件(Condition):设置策略生效的附加条件
典型应用场景:
- 企业多账号协作:某电商公司有运维、开发、财务等多个部门,通过RAM为不同部门创建独立账号,并授予相应的ECS管理、账单查看等权限
- 最小权限原则:为第三方服务商创建受限账号,仅开放必要的OSS读写权限,避免过度授权
- 临时权限分配:通过STS服务为移动应用颁发临时访问凭证,有效期内可访问指定资源
安全优势:
- 避免共享主账号密钥,降低凭证泄露风险
- 细粒度的权限划分,实现职责分离(SoD)
- 完整的操作审计,所有RAM用户操作都会记录在ActionTrail中
- 支持定期轮换访问密钥,提升账号安全性
实施建议:
- 使用用户组管理同类权限用户
- 优先选择系统策略模板,必要时再创建自定义策略
- 定期审查和优化权限分配
- 对高权限操作启用MFA二次验证

Bucket Policy
Bucket Policy 是基于资源的授权策略,主要用于管理对阿里云OSS存储桶(Bucket)的访问权限。与RAM Policy相比,Bucket Policy具有以下特点和优势:
-
图形化配置界面:
- 可以直接在阿里云OSS控制台通过可视化界面进行配置
- 无需编写复杂的JSON策略文档
- 提供策略生成器,通过选择预设条件快速生成策略
-
授权灵活性:
- Bucket拥有者可以直接授权其他阿里云账号或匿名用户访问
- 支持细粒度的权限控制,如读写权限、列举权限等
- 可以基于IP地址、Referer等条件设置访问限制
-
典型应用场景:
- 允许特定IP范围内的客户端访问存储桶
- 为合作伙伴账号授予临时访问权限
- 配置静态网站托管时的公开读取权限
- 限制特定来源的HTTP Referer访问
-
策略配置示例:
json
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "oss:GetObject",
"Resource": "acs:oss:*:*:examplebucket/*",
"Condition": {
"IpAddress": {"oss:SourceIp": ["192.168.0.0/24"]}
}
}
]
}
这个策略允许192.168.0.0/24网段内的所有用户获取examplebucket中的对象。
- 注意事项 :
- Bucket Policy的权限检查优先级高于RAM Policy
- 匿名访问授权需谨慎,可能带来安全风险
- 建议定期审计Bucket Policy设置
开放接口
开发者在发送请求给OSS的时候,既可以使用带签名认证的请求,也可以使用匿名访问,OSS提供的相关API接口如下。
Bucket操作

Object操作

Multipart Upload操作

CORS跨域

Live Channel

错误响应
当用户访问OSS出现错误时,OSS会返回给用户相应的操作码和错误信息,便于用户定位问题,并做出适当地处理。
响应格式
当用户访问OSS出错时,OSS会返回给用户一个合适的3XX、4XX、5XX的HTTP状态码,以及一个 application/xml 格式的消息体。
xml
<?xml version="1.0" ?>
<Error xmlns="http://doc.oss.aliyuncs.com">
<Code>
AccessDenied
</Code>
<Message>
Query-string authentication requires the Signature, Expires and
OSSAccessKeyId parameters
</Message>
<RequestId>
1D842BC5425544BB
</RequestId>
<HostId>
oss.aliyuncs.com
</HostId>
</Error>
所有错误的消息体中都包括以下几个元素:
- Code:OSS返回给用户的错误码
- Message:OSS给出的详细错误信息
- RequestId:用于唯一标识该次请求的UUID,当你无法解决问题时,可以凭借这个 RequestId 找 OSS 的工程师帮忙
- HostId:用于标识访问 OSS 集群
错误码


其他系列
🚀 AI篇持续更新中(长期更新)
AI炼丹日志-29 - 字节跳动 DeerFlow 深度研究框斜体样式架 私有部署 测试上手 架构研究 ,持续打造实用AI工具指南!
AI研究-132 Java 生态前沿 2025:Spring、Quarkus、GraalVM、CRaC 与云原生落地
🔗 AI模块直达链接
💻 Java篇持续更新中(长期更新)
Java-180 Java 接入 FastDFS:自编译客户端与 Maven/Spring Boot 实战
MyBatis 已完结,Spring 已完结,Nginx已完结,Tomcat已完结,分布式服务已完结,Dubbo已完结,MySQL已完结,MongoDB已完结,Neo4j已完结,FastDFS 已完结,OSS正在更新... 深入浅出助你打牢基础!
🔗 Java模块直达链接
📊 大数据板块已完成多项干货更新(300篇):
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!
大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解
🔗 大数据模块直达链接