通过RAM Policy授权访问OSS
RAM Policy是基于用户的授权策略。您可以使用RAM Policy控制用户可以访问您名下哪些资源的权限。
背景信息
RAM Policy语法和结构
RAM Policy包含版本号(Version)和授权语句(Statement)。每条授权语句又包含授权效力(Effect)、操作(Action)、资源(Resource)以及限制条件(Condition,可选项)。有关权限策略的语法和结构的详情,请参见权限策略语法和结构。
其中OSS中Version、Statement以及Effect的应用规则与RAM相同。OSS的Action、Resource以及Condition说明请参见:
OSS常用的权限策略
AliyunOSSFullAccess:为RAM用户授予OSS的完全管理权限。
AliyunOSSReadOnlyAccess:为RAM用户授予OSS的只读访问权限。
OSS访问控制方式
有关OSS包含的访问控制方式的更多信息,请参见访问控制概述。
OSS Action分类
Action分为Service级别操作、Bucket级别操作以及Object级别的操作。
Service级别
API
Action
接口描述
oss:ListBuckets
列举请求者拥有的所有Bucket。
oss:ListUserDataRedundancyTransition
列举请求者所有的存储冗余转换任务。
无
oss:ActivateProduct
开通OSS以及内容安全检测服务。
无
oss:CreateOrder
创建OSS资源包、预留空间、无地域属性预留空间的订单。
oss:PutPublicAccessBlock
为OSS全局开启阻止公共访问。
oss:GetPublicAccessBlock
获取OSS全局阻止公共访问的配置信息。
oss:DeletePublicAccessBlock
删除OSS全局阻止公共访问配置信息。
Bucket级别
API
Action
接口描述
oss:PutBucket
创建Bucket。
oss:ListObjects
列举Bucket中所有Object的信息。
oss:GetBucketInfo
查看Bucket相关信息。
oss:GetBucketLocation
查看Bucket位置信息。
oss:PutBucketVersioning
设置指定Bucket的版本控制状态。
oss:GetBucketVersioning
获取指定Bucket的版本控制状态。
oss:ListObjectVersions
列出Bucket中包括删除标记(Delete Marker)在内的所有Object的版本信息。
oss:PutBucketAcl
设置或修改Bucket ACL。
oss:GetBucketAcl
获取Bucket ACL。
oss:DeleteBucket
删除某个Bucket。
oss:InitiateBucketWorm
新建合规保留策略。
oss:AbortBucketWorm
删除未锁定的合规保留策略。
oss:CompleteBucketWorm
锁定合规保留策略。
oss:ExtendBucketWorm
延长已锁定的合规保留策略对应Bucket中Object的保留天数。
oss:GetBucketWorm
获取合规保留策略信息。
oss:PutBucketLogging
开启Bucket日志转存功能。
oss:GetBucketLogging
查看Bucket日志转存配置。
oss:DeleteBucketLogging
关闭Bucket日志转存功能。
oss:PutBucketWebsite
设置Bucket为静态网站托管模式并设置其跳转规则(RoutingRule)。
oss:GetBucketWebsite
查看Bucket的静态网站托管状态以及跳转规则。
oss:DeleteBucketWebsite
关闭Bucket的静态网站托管模式以及跳转规则。
oss:PutBucketReferer
设置Bucket的防盗链。
oss:GetBucketReferer
查看Bucket的防盗链(Referer)相关配置。
oss:PutBucketLifecycle
设置Bucket的生命周期规则。
oss:GetBucketLifecycle
查看Bucket的生命周期规则。
oss:DeleteBucketLifecycle
删除Bucket的生命周期规则。
oss:PutBucketTransferAcceleration
设置Bucket传输加速。
oss:GetBucketTransferAcceleration
查看Bucket的传输加速配置。
oss:ListMultipartUploads
列举所有执行中的Multipart Upload事件,即已经初始化但还未完成(Complete)或者还未中止(Abort)的Multipart Upload事件。
oss:PutBucketCors
设置指定Bucket的跨域资源共享CORS(Cross-Origin Resource Sharing)规则。
oss:GetBucketCors
获取指定Bucket当前的跨域资源共享CORS规则。
oss:DeleteBucketCors
关闭指定Bucket对应的跨域资源共享CORS功能并清空所有规则。
oss:PutBucketPolicy
设置指定Bucket的授权策略。
oss:GetBucketPolicy
获取指定Bucket的授权策略。
oss:DeleteBucketPolicy
删除指定Bucket的授权策略。
oss:PutBucketTagging
添加或修改指定Bucket的标签。
oss:GetBucketTagging
获取Bucket的标签。
oss:DeleteBucketTagging
删除Bucket的标签。
oss:PutBucketEncryption
配置Bucket的加密规则。
oss:GetBucketEncryption
获取Bucket的加密规则。
oss:DeleteBucketEncryption
删除Bucket的加密规则。
oss:PutBucketRequestPayment
设置请求者付费模式。
oss:GetBucketRequestPayment
获取请求者付费模式配置信息。
oss:PutBucketReplication
设置Bucket的数据复制规则。
oss:PutBucketRTC
为已有的跨区域复制规则开启或关闭数据复制时间控制(RTC)功能。
oss:GetBucketReplication
获取Bucket已设置的数据复制规则。
oss:DeleteBucketReplication
停止Bucket的数据复制并删除Bucket的复制配置。
oss:GetBucketReplicationLocation
获取可复制到的目标Bucket的所在地域。
oss:GetBucketReplicationProgress
获取Bucket的数据复制进度。
oss:PutBucketInventory
配置Bucket的清单(Inventory)规则。
oss:GetBucketInventory
查看Bucket中指定的清单任务。
oss:GetBucketInventory
批量获取Bucket中所有清单任务。
oss:DeleteBucketInventory
删除Bucket中指定的清单任务。
oss:PutBucketAccessMonitor
配置Bucket的访问跟踪状态。
oss:GetBucketAccessMonitor
获取Bucket的访问跟踪状态。
oss:OpenMetaQuery
开启Bucket的元数据管理功能。
oss:GetMetaQueryStatus
获取Bucket的元数据索引库信息。
oss:DoMetaQuery
查询满足指定条件的Object,并按照指定字段和排序方式列出Object信息。
oss:CloseMetaQuery
关闭Bucket的元数据管理功能.
oss:InitUserAntiDDosInfo
创建高防OSS实例。
oss:UpdateUserAntiDDosInfo
更改高防OSS实例状态。
oss:GetUserAntiDDosInfo
查询指定账号下的高防OSS实例信息。
oss:InitBucketAntiDDosInfo
初始化Bucket防护。
oss:UpdateBucketAntiDDosInfo
更新Bucket防护状态。
oss:ListBucketAntiDDosInfo
获取Bucket防护信息列表。
oss:PutBucketResourceGroup
设置Bucket所属资源组。
oss:GetBucketResourceGroup
查询Bucket所属资源组ID。
oss:CreateCnameToken
创建域名所有权验证所需的CnameToken。
oss:GetCnameToken
获取已创建的CnameToken。
oss:PutCname
为Bucket绑定自定义域名。
oss:ListCname
获取Bucket下绑定的所有的自定义域名(Cname)列表。
oss:DeleteCname
删除Bucket已绑定的Cname。
oss:PutStyle
设置图片样式。
oss:GetStyle
获取图片样式。
oss:ListStyle
列举图片样式。
oss:DeleteStyle
删除图片样式。
oss:PutBucketArchiveDirectRead
为Bucket开启或关闭归档直读。
oss:GetBucketArchiveDirectRead
查看Bucket是否开启归档直读。
oss:CreateAccessPoint
创建接入点。
oss:GetAccessPoint
获取单个接入点信息。
oss:DeleteAccessPoint
删除接入点。
oss:ListAccessPoints
获取用户级别及Bucket级别的接入点信息。
oss:PutAccessPointPolicy
配置接入点策略。
oss:GetAccessPointPolicy
获取接入点策略信息。
oss:DeleteAccessPointPolicy
删除接入点策略。
oss:PutBucketHttpsConfig
为Bucket开启或关闭TLS版本设置。
oss:GetBucketHttpsConfig
查看Bucket的TLS版本设置。
无
oss:ReplicateList
复制过程涉及的列举权限。即允许OSS先列举源Bucket的历史数据,再逐一对历史数据进行复制。
oss:CreateAccessPointForObjectProcess
创建对象FC接入点。
oss:GetAccessPointForObjectProcess
获取对象FC接入点基础信息。
oss:DeleteAccessPointForObjectProcess
删除对象FC接入点。
oss:ListAccessPointsForObjectProcess
获取用户级别的对象FC接入点信息。
oss:PutAccessPointConfigForObjectProcess
修改对象FC接入点配置。
oss:GetAccessPointConfigForObjectProcess
获取对象FC接入点配置信息。
oss:PutAccessPointPolicyForObjectProcess
为对象FC接入点配置权限策略。
oss:GetAccessPointPolicyForObjectProcess
获取对象FC接入点的权限策略配置。
oss:DeleteAccessPointPolicyForObjectProcess
删除对象FC接入点的权限策略。
oss:WriteGetObjectResponse
自定义返回数据和响应标头。
oss:CreateBucketDataRedundancyTransition
创建存储冗余转换任务。
oss:GetBucketDataRedundancyTransition
获取存储冗余转换任务。
oss:DeleteBucketDataRedundancyTransition
删除存储冗余转换任务。
oss:ListBucketDataRedundancyTransition
列举某个Bucket下所有的存储冗余转换任务。
oss:PutBucketPublicAccessBlock
为某个Bucket开启阻止公共访问。
oss:GetBucketPublicAccessBlock
获取某个Bucket的阻止公共访问配置信息。
oss:DeleteBucketPublicAccessBlock
删除某个Bucket的阻止公共访问配置信息。
oss:PutAccessPointPublicAccessBlock
为某个接入点开启阻止公共访问。
oss:GetAccessPointPublicAccessBlock
获取某个接入点的阻止公共访问配置信息。
oss:DeleteAccessPointPublicAccessBlock
删除某个接入点的阻止公共访问配置信息。
oss:GetBucketPolicyStatus
查看当前Bucket Policy是否允许公共访问。
Object级别
说明如果在上传文件的过程中,包含Object的标签(Tagging)信息。则必须同时具有
oss:PutObject
权限和oss:PutObjectTagging
权限。API
Action
接口描述
oss:PutObject
上传文件(Object)。
oss:PutObject
通过HTML表单上传的方式将Object上传到指定Bucket。
oss:PutObject
以追加写的方式上传Object。
oss:PutObject
在使用Multipart Upload模式传输数据前,通知OSS初始化一个分片上传(Multipart Upload)事件。
oss:PutObject
根据指定的Object名和uploadId来分块(Part)上传数据
oss:PutObject
在将所有数据Part都上传完成后,需调用此接口来完成整个Object的分片上传。
oss:AbortMultipartUpload
取消MultipartUpload事件并删除对应的Part数据。
oss:PutObject
为OSS的目标文件(TargetObject)创建软链接(Symlink)。
oss:GetObject
获取某个Object。
oss:GetObject
获取某个Object的元数据。
oss:GetObject
获取Object的元数据信息,包括该Object的ETag、Size、LastModified信息。
oss:GetObject
对目标文件执行SQL语句,返回执行结果。
oss:GetObject
获取目标文件的软链接。
oss:DeleteObject
删除某个Object。
oss:DeleteObject
删除同一个Bucket中的多个Object。
oss:GetObject
oss:PutObject
拷贝同一地域下相同或不同Bucket之间的Object。
oss:GetObject
oss:PutObject
在UploadPart请求的基础上增加一个请求头x-oss-copy-source来调用UploadPartCopy接口,实现从一个已存在的Object中拷贝数据来上传一个Part。
oss:ListParts
列举指定Upload ID所属的所有已经上传成功的Part。
oss:PutObjectAcl
修改Bucket下某个Object的ACL。
oss:GetObjectAcl
获取Bucket下某个Object的ACL。
oss:RestoreObject
解冻归档存储、冷归档存储或者深度冷归档存储类型的Object。
oss:PutObjectTagging
设置或更新Object的标签(Tagging)信息。
oss:GetObjectTagging
获取Object的标签信息。
oss:DeleteObjectTagging
删除指定Object的标签信息。
GetObject(请求参数中指定versionId)
oss:GetObjectVersion
下载指定版本Object。
PutObjectACL(请求参数中指定versionId)
oss:PutObjectVersionAcl
修改Bucket下指定版本Object的ACL。
GetObjectACL(请求参数中指定versionId)
oss:GetObjectVersionAcl
获取Bucket下指定版本Object的ACL。
RestoreObject(请求参数中指定versionId)
oss:RestoreObjectVersion
解冻指定版本的归档存储、冷归档存储或者深度冷归档存储类型的Object。
DeleteObject(请求参数中指定versionId)
oss:DeleteObjectVersion
删除指定版本Object。
PutObjectTagging(请求参数中指定versionId)
oss:PutObjectVersionTagging
设置或更新指定版本Object的标签(Tagging)信息。
GetObjectTagging(请求参数中指定versionId)
oss:GetObjectVersionTagging
获取指定版本Object的标签信息。
DeleteObjectTagging(请求参数中指定versionId)
oss:DeleteObjectVersionTagging
删除指定版本Object的标签信息。
oss:PutLiveChannel
通过RTMP协议上传音视频数据前,必须先调用该接口创建一个LiveChannel。
oss:ListLiveChannel
列举指定的LiveChannel。
oss:DeleteLiveChannel
删除指定的LiveChannel。
oss:PutLiveChannelStatus
在启用(enabled)和禁用(disabled)两种状态之间进行切换。
oss:GetLiveChannel
获取指定LiveChannel的配置信息。
oss:GetLiveChannelStat
获取指定LiveChannel的推流状态信息。
oss:GetLiveChannelHistory
获取指定LiveChannel的推流记录。
oss:PostVodPlaylist
为指定的LiveChannel生成一个点播用的播放列表。
oss:GetVodPlaylist
查看指定LiveChannel在指定时间段内推流生成的播放列表。
无
oss:PublishRtmpStream
将音频和视频数据流推送到RTMP。
oss:ProcessImm
基于图片AI技术检测图片标签和置信度。
oss:PostProcessTask
保存处理后的图片至指定Bucket。
无
oss:ReplicateGet
复制过程涉及的读权限。即允许OSS读取源Bucket和目标Bucket中的数据与元数据,包括Object、Part、Multipart Upload等。
无
oss:ReplicatePut
复制过程涉及的写权限。即允许OSS对目标Bucket复制相关的写入类操作,包括写入Object、Multipart Upload、Part和Symlink,修改元数据信息等。
无
oss:ReplicateDelete
复制过程涉及的删除权限。即允许OSS对目标Bucket复制相关的删除操作,包括DeleteObject、AbortMultipartUpload、DeleteMarker等。
重要仅当数据复制方式选择增/删/改 同步时,需要授予RAM角色该Action。
OSS Resource说明
在OSS中,Resource指代某个具体资源或者某些资源,支持通配符星号(*)。单个RAM Policy允许包含多个Resource。
分类 | 格式 | 示例 |
Bucket级别Resource |
|
|
Object级别Resource |
|
|
region字段当前仅支持设置为通配符星号(*)。
OSS Condition说明
OSS Condition用于指定授权生效的限制条件,由一个或多个条件子句构成。一个条件子句由条件操作类型、条件关键字和条件值组成。关于Condition的更多信息,请参见条件(Condition)。
OSS Condition中的条件操作类型和条件关键字如下:
条件操作类型
条件操作类型
支持类型
字符串类型(String)
StringEquals
StringNotEquals
StringEqualsIgnoreCase
StringNotEqualsIgnoreCase
StringLike
StringNotLike
数字类型(Number)
NumericEquals
NumericNotEquals
NumericLessThan
NumericLessThanEquals
NumericGreaterThan
NumericGreaterThanEquals
日期类型(Date and time)
DateEquals
DateNotEquals
DateLessThan
DateLessThanEquals
DateGreaterThan
DateGreaterThanEquals
布尔类型(Boolean)
Bool
IP地址类型(IP address)
IpAddress
NotIpAddress
条件关键字
条件关键字
说明
acs:SourceIp
指定普通IP网段,支持通配符星号(*)。
acs:SourceVpc
指定VPC,支持配置为指定的VPC ID以及vpc-*。
重要通过
acs:SourceVpc
限制VPC来源时,确保选择的VPC地域与OSS支持的网关终端节点区域相匹配,否则会导致鉴权请求无法关联至对应的VPC,进而引发鉴权失败。关于OSS支持的网关终端节点地域,请参见OSS支持的网关终端节点地域。acs:UserAgent
指定HTTP User-Agent头。
类型:字符串
acs:CurrentTime
请求到达OSS服务端的时间。
格式:ISO8601
acs:SecureTransport
请求的协议类型。取值范围如下:
true:仅允许HTTPS请求访问。
false:仅允许HTTP请求访问。
如果未设置
acs:SecureTransport
,表示HTTP或者HTTPS请求均可以访问。oss:x-oss-acl
限制Bucket ACL的类型。取值如下:
private:私有
public-read:公共读
public-read-write:公共读写
更多信息,请参见设置Bucket ACL。
oss:x-oss-object-acl
限制Object ACL的类型。取值如下:
private:私有
public-read:公共读
public-read-write:公共读写
default:继承Bucket ACL
更多信息,请参见设置Object ACL。
oss:Prefix
用于ListObjects请求时,列举指定前缀的Object。
oss:Delimiter
用于ListObjects请求时,对Object名字进行分组的字符。
acs:AccessId
请求中携带的AccessId。
oss:BucketTag
存储空间标签(BucketTag)。
单个BucketTag可以作为一个Condition。当设置多个BucketTag时,需在每个BucketTag前加上
oss:BucketTag/
,组成多个Condition。acs:MFAPresent
是否启用了多因素认证MFA(Multi-factor authentication)。
取值:
true:已启用多因素认证。
false:未启用多因素认证。
oss:ExistingObjectTag
请求的Object已存在标签。
单个ObjectTag可以作为一个Condition。当设置多个ObjectTag时,需在每个ObjectTag前加上
oss:ExistingObjectTag/
,组成多个Condition。主要针对GetObject、HeadObject等读取文件接口以及PutObjectTagging、GetObjectTagging等ObjectTagging接口。
oss:RequestObjectTag
请求中携带的对象标签。
单个ObjectTag可以作为一个Condition。当设置多个ObjectTag时,需在每个ObjectTag前加上
oss:RequestObjectTag/
,组成多个Condition。主要针对PutObject、PostObject等写入文件接口以及PutObjectTagging、GetObjectTagging等ObjectTagging接口。
oss:DataAccessPointArn
为指定的接入点委派权限。委派后,仅指定的接入点生效。
oss:AccessPointNetworkOrigin
为互联网或专有网络VPC下的接入点委派权限。委派后,仅指定网络的接入点生效。
说明互联网支持外网和专有云网络VPC。选择互联网接入点后,专有网络接入点也会生效。
oss:DataAccessPointAccount
为当前账号下的所有接入点委派权限。委派后,账号下所有的接入点生效。
常见示例
您可以使用RAM Policy实现不同场景下的用户权限策略。更多信息,请参见RAM Policy常见示例。