权限与访问控制概述

更新时间:
复制为 MD 格式

对象存储OSS提供多层次权限控制机制,确保数据在存储和访问过程中的安全性。以下介绍OSS权限与访问控制的整体架构,帮助理解各控制方式的定位和差异,根据业务需求选择合适的方案。

快速选择

场景

推荐方案

数据私有,阻止非授权用户和匿名访问

Bucket ACL设为私有(默认配置)

对外提供公开可读的静态资源

Bucket ACL设为公共读,配合防盗链防止资源盗用

授权多个用户访问特定Bucket

Bucket Policy,仅需单条策略即可指定允许的用户列表

统一管理某个用户可访问的所有资源

RAM Policy绑定到该用户

将资源共享给其他阿里云账号

Bucket Policy基于RAM角色实现跨账号访问OSS

同一Bucket为多个应用或团队提供差异化访问

接入点,每个应用或团队独立的入口和策略

防止误配置导致数据公开泄露

阻止公共访问

浏览器端JavaScript访问OSS

跨域设置

鉴权机制

OSS根据请求类型采用不同的鉴权流程:

  • 签名请求:OSS验证签名有效性后,分别评估RAM Policy、Bucket Policy、ACL,综合判定是否允许访问。

  • 匿名请求:OSS评估Bucket PolicyACL是否允许公开访问。

鉴权结果分为三类:Allow(策略明确授权)、Explicit Deny(策略明确拒绝,优先级最高)、Implicit Deny(无授权则拒绝)。

完整的鉴权流程请参见OSS鉴权详解

权限控制方式

ACL

ACL(访问控制列表)通过预定义的权限等级控制资源的公开或私有状态,是最简单的权限控制方式。

Bucket ACL控制存储空间的默认访问权限,Object ACL控制单个对象的权限(优先级更高),Object ACL未指定时默认继承Bucket ACL。支持以下权限等级:

权限等级

效果

私有(private)

数据私有,仅资源拥有者或被授权用户可访问

公共读(public-read)

任何人可读取,仅资源拥有者或被授权用户可写入

公共读写(public-read-write)

任何人可公开读取和写入

ACL仅支持预定义等级,无法指定授权对象或条件限制。如需精细控制,请使用Bucket PolicyRAM Policy。

Bucket Policy

Bucket Policy是配置在Bucket上的授权策略,定义谁可以访问此Bucket中的资源。支持授权给RAM用户、其他阿里云账号或匿名用户,并可设置IP地址、VPC、时间等条件限制。

当需要授权多个用户访问同一Bucket时,单条Bucket Policy即可完成,无需为每个用户单独配置。

实践教程:基于VPC PolicyBucket Policy实现双重访问控制基于Bucket Policy实现跨部门数据共享

RAM Policy

RAM Policy是绑定到用户身份上的授权策略,定义该用户可以访问哪些OSS资源,适合统一管理某个用户或应用在多个Bucket上的权限。

OSS提供系统策略(如AliyunOSSFullAccessAliyunOSSReadOnlyAccess)可直接使用,也支持自定义策略。通过RAM角色可实现跨账号访问和STS临时授权。

实践教程:基于RAM角色实现跨账号访问OSS基于RAM Policy控制OSS的访问权限

Bucket PolicyRAM Policy区别

维度

Bucket Policy

RAM Policy

配置位置

Bucket

RAM身份主体上

管理视角

以资源为中心:谁可以访问此资源

以身份为中心:身份主体可访问哪些资源

匿名访问

支持

不支持

选择建议:授权多个用户访问同一资源时Bucket Policy更高效;管理单个用户的所有资源权限时RAM Policy更直观;需要匿名访问时只能用Bucket Policy。两者可同时使用,OSS会综合评估,都允许时请求才通过。

接入点

接入点(Access Point)为Bucket提供独立的访问入口。当一个Bucket需要被多个应用或团队以不同权限访问时,可为每个访问方创建独立的接入点,通过接入点策略(AP Policy)分别管理各自的权限,避免在单一Bucket Policy中维护复杂的规则。

每个接入点拥有独立的访问域名、AP Policy和网络限制配置。用户通过接入点访问时,需要RAM PolicyBucket Policy的合并结果为Allow,且AP Policy也为Allow,请求才通过。

安全防护

阻止公共访问

阻止公共访问开启后,即使ACLBucket Policy配置了公开授权也不会生效,防止因误配置导致数据泄露。可在账号级别(作用于所有Bucket)、Bucket级别或接入点级别独立配置,优先级依次递减。

存储敏感数据且无匿名访问需求时,建议在账号级别开启此功能。

防盗链

防盗链通过校验HTTP请求头中的Referer字段,阻止未授权站点引用OSS资源。支持白名单模式(仅允许指定域名)和黑名单模式(拒绝指定域名)。适用于防止图片、视频等资源被盗用。

说明

Referer可被伪造,如需更高安全性建议使用签名URL。

跨域设置

浏览器默认禁止网页JavaScript访问不同域名的资源。通过配置CORS规则,OSS会在响应中返回允许跨域的头信息,使浏览器放行请求。适用于前端直传文件、获取资源等场景。

授权策略语法

Bucket Policy、RAM PolicyAP Policy均使用JSON格式定义,核心元素包括:

元素

说明

Effect

授权效果:AllowDeny

Principal

授权对象(RAM Policy不需要)

Action

授权操作,如oss:GetObject

Resource

授权资源范围

Condition

生效条件(可选)

完整的语法说明和Action列表请参见OSS授权语法与元素

相关文档