全部产品
Search
文档中心

对象存储 OSS:通过RAM Policy授权访问OSS

更新时间:Aug 29, 2024

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

    接口描述

    ListBuckets(GetService)

    oss:ListBuckets

    列举请求者拥有的所有Bucket。

    ListUserDataRedundancyTransition

    oss:ListUserDataRedundancyTransition

    列举请求者所有的存储冗余转换任务。

    oss:ActivateProduct

    开通OSS以及内容安全检测服务。

    oss:CreateOrder

    创建OSS资源包的订单。

    PutPublicAccessBlock

    oss:PutPublicAccessBlock

    为OSS全局开启阻止公共访问。

    GetPublicAccessBlock

    oss:GetPublicAccessBlock

    获取OSS全局阻止公共访问的配置信息。

    DeletePublicAccessBlock

    oss:DeletePublicAccessBlock

    删除OSS全局阻止公共访问配置信息。

  • Bucket级别

    API

    Action

    接口描述

    PutBucket

    oss:PutBucket

    创建Bucket。

    ListObjects(GetBucket)

    oss:ListObjects

    列举Bucket中所有Object的信息。

    GetBucketInfo

    oss:GetBucketInfo

    查看Bucket相关信息。

    GetBucketLocation

    oss:GetBucketLocation

    查看Bucket位置信息。

    PutBucketVersioning

    oss:PutBucketVersioning

    设置指定Bucket的版本控制状态。

    GetBucketVersioning

    oss:GetBucketVersioning

    获取指定Bucket的版本控制状态。

    ListObjectVersions(GetBucketVersions)

    oss:ListObjectVersions

    列出Bucket中包括删除标记(Delete Marker)在内的所有Object的版本信息。

    PutBucketAcl

    oss:PutBucketAcl

    设置或修改Bucket ACL。

    GetBucketAcl

    oss:GetBucketAcl

    获取Bucket ACL。

    DeleteBucket

    oss:DeleteBucket

    删除某个Bucket。

    InitiateBucketWorm

    oss:InitiateBucketWorm

    新建合规保留策略。

    AbortBucketWorm

    oss:AbortBucketWorm

    删除未锁定的合规保留策略。

    CompleteBucketWorm

    oss:CompleteBucketWorm

    锁定合规保留策略。

    ExtendBucketWorm

    oss:ExtendBucketWorm

    延长已锁定的合规保留策略对应Bucket中Object的保留天数。

    GetBucketWorm

    oss:GetBucketWorm

    获取合规保留策略信息。

    PutBucketLogging

    oss:PutBucketLogging

    开启Bucket日志转存功能。

    GetBucketLogging

    oss:GetBucketLogging

    查看Bucket日志转存配置。

    DeleteBucketLogging

    oss:DeleteBucketLogging

    关闭Bucket日志转存功能。

    PutBucketWebsite

    oss:PutBucketWebsite

    设置Bucket为静态网站托管模式并设置其跳转规则(RoutingRule)。

    GetBucketWebsite

    oss:GetBucketWebsite

    查看Bucket的静态网站托管状态以及跳转规则。

    DeleteBucketWebsite

    oss:DeleteBucketWebsite

    关闭Bucket的静态网站托管模式以及跳转规则。

    PutBucketReferer

    oss:PutBucketReferer

    设置Bucket的防盗链。

    GetBucketReferer

    oss:GetBucketReferer

    查看Bucket的防盗链(Referer)相关配置。

    PutBucketLifecycle

    oss:PutBucketLifecycle

    设置Bucket的生命周期规则。

    GetBucketLifecycle

    oss:GetBucketLifecycle

    查看Bucket的生命周期规则。

    DeleteBucketLifecycle

    oss:DeleteBucketLifecycle

    删除Bucket的生命周期规则。

    PutBucketTransferAcceleration

    oss:PutBucketTransferAcceleration

    设置Bucket传输加速。

    GetBucketTransferAcceleration

    oss:GetBucketTransferAcceleration

    查看Bucket的传输加速配置。

    ListMultipartUploads

    oss:ListMultipartUploads

    列举所有执行中的Multipart Upload事件,即已经初始化但还未完成(Complete)或者还未中止(Abort)的Multipart Upload事件。

    PutBucketCors

    oss:PutBucketCors

    设置指定Bucket的跨域资源共享CORS(Cross-Origin Resource Sharing)规则。

    GetBucketCors

    oss:GetBucketCors

    获取指定Bucket当前的跨域资源共享CORS规则。

    DeleteBucketCors

    oss:DeleteBucketCors

    关闭指定Bucket对应的跨域资源共享CORS功能并清空所有规则。

    PutBucketPolicy

    oss:PutBucketPolicy

    设置指定Bucket的授权策略。

    GetBucketPolicy

    oss:GetBucketPolicy

    获取指定Bucket的授权策略。

    DeleteBucketPolicy

    oss:DeleteBucketPolicy

    删除指定Bucket的授权策略。

    PutBucketTags

    oss:PutBucketTagging

    添加或修改指定Bucket的标签。

    GetBucketTags

    oss:GetBucketTagging

    获取Bucket的标签。

    DeleteBucketTags

    oss:DeleteBucketTagging

    删除Bucket的标签。

    PutBucketEncryption

    oss:PutBucketEncryption

    配置Bucket的加密规则。

    GetBucketEncryption

    oss:GetBucketEncryption

    获取Bucket的加密规则。

    DeleteBucketEncryption

    oss:DeleteBucketEncryption

    删除Bucket的加密规则。

    PutBucketRequestPayment

    oss:PutBucketRequestPayment

    设置请求者付费模式。

    GetBucketRequestPayment

    oss:GetBucketRequestPayment

    获取请求者付费模式配置信息。

    PutBucketReplication

    oss:PutBucketReplication

    设置Bucket的数据复制规则。

    PutBucketRTC

    oss:PutBucketRTC

    为已有的跨区域复制规则开启或关闭数据复制时间控制(RTC)功能。

    GetBucketReplication

    oss:GetBucketReplication

    获取Bucket已设置的数据复制规则。

    DeleteBucketReplication

    oss:DeleteBucketReplication

    停止Bucket的数据复制并删除Bucket的复制配置。

    GetBucketReplicationLocation

    oss:GetBucketReplicationLocation

    获取可复制到的目标Bucket的所在地域。

    GetBucketReplicationProgress

    oss:GetBucketReplicationProgress

    获取Bucket的数据复制进度。

    PutBucketInventory

    oss:PutBucketInventory

    配置Bucket的清单(Inventory)规则。

    GetBucketInventory

    oss:GetBucketInventory

    查看Bucket中指定的清单任务。

    ListBucketInventory

    oss:GetBucketInventory

    批量获取Bucket中所有清单任务。

    DeleteBucketInventory

    oss:DeleteBucketInventory

    删除Bucket中指定的清单任务。

    PutBucketAccessMonitor

    oss:PutBucketAccessMonitor

    配置Bucket的访问跟踪状态。

    GetBucketAccessMonitor

    oss:GetBucketAccessMonitor

    获取Bucket的访问跟踪状态。

    OpenMetaQuery

    oss:OpenMetaQuery

    开启Bucket的元数据管理功能。

    GetMetaQueryStatus

    oss:GetMetaQueryStatus

    获取Bucket的元数据索引库信息。

    DoMetaQuery

    oss:DoMetaQuery

    查询满足指定条件的Object,并按照指定字段和排序方式列出Object信息。

    CloseMetaQuery

    oss:CloseMetaQuery

    关闭Bucket的元数据管理功能.

    InitUserAntiDDosInfo

    oss:InitUserAntiDDosInfo

    创建高防OSS实例。

    UpdateUserAntiDDosInfo

    oss:UpdateUserAntiDDosInfo

    更改高防OSS实例状态。

    GetUserAntiDDosInfo

    oss:GetUserAntiDDosInfo

    查询指定账号下的高防OSS实例信息。

    InitBucketAntiDDosInfo

    oss:InitBucketAntiDDosInfo

    初始化Bucket防护。

    UpdateBucketAntiDDosInfo

    oss:UpdateBucketAntiDDosInfo

    更新Bucket防护状态。

    ListBucketAntiDDosInfo

    oss:ListBucketAntiDDosInfo

    获取Bucket防护信息列表。

    PutBucketResourceGroup

    oss:PutBucketResourceGroup

    设置Bucket所属资源组。

    GetBucketResourceGroup

    oss:GetBucketResourceGroup

    查询Bucket所属资源组ID。

    CreateCnameToken

    oss:CreateCnameToken

    创建域名所有权验证所需的CnameToken。

    GetCnameToken

    oss:GetCnameToken

    获取已创建的CnameToken。

    PutCname

    oss:PutCname

    为Bucket绑定自定义域名。

    ListCname

    oss:ListCname

    获取Bucket下绑定的所有的自定义域名(Cname)列表。

    DeleteCname

    oss:DeleteCname

    删除Bucket已绑定的Cname。

    PutStyle

    oss:PutStyle

    设置图片样式。

    GetStyle

    oss:GetStyle

    获取图片样式。

    ListStyle

    oss:ListStyle

    列举图片样式。

    DeleteStyle

    oss:DeleteStyle

    删除图片样式。

    PutBucketArchiveDirectRead

    oss:PutBucketArchiveDirectRead

    为Bucket开启或关闭归档直读。

    GetBucketArchiveDirectRead

    oss:GetBucketArchiveDirectRead

    查看Bucket是否开启归档直读。

    CreateAccessPoint

    oss:CreateAccessPoint

    创建接入点。

    GetAccessPoint

    oss:GetAccessPoint

    获取单个接入点信息。

    DeleteAccessPoint

    oss:DeleteAccessPoint

    删除接入点。

    ListAccessPoints

    oss:ListAccessPoints

    获取用户级别及Bucket级别的接入点信息。

    PutAccessPointPolicy

    oss:PutAccessPointPolicy

    配置接入点策略。

    GetAccessPointPolicy

    oss:GetAccessPointPolicy

    获取接入点策略信息。

    DeleteAccessPointPolicy

    oss:DeleteAccessPointPolicy

    删除接入点策略。

    PutBucketHttpsConfig

    oss:PutBucketHttpsConfig

    为Bucket开启或关闭TLS版本设置。

    GetBucketHttpsConfig

    oss:GetBucketHttpsConfig

    查看Bucket的TLS版本设置。

    oss:ReplicateList

    复制过程涉及的列举权限。即允许OSS先列举源Bucket的历史数据,再逐一对历史数据进行复制。

    CreateAccessPointForObjectProcess

    oss:CreateAccessPointForObjectProcess

    创建对象FC接入点。

    GetAccessPointForObjectProcess

    oss:GetAccessPointForObjectProcess

    获取对象FC接入点基础信息。

    DeleteAccessPointForObjectProcess

    oss:DeleteAccessPointForObjectProcess

    删除对象FC接入点。

    ListAccessPointsForObjectProcess

    oss:ListAccessPointsForObjectProcess

    获取用户级别的对象FC接入点信息。

    PutAccessPointConfigForObjectProcess

    oss:PutAccessPointConfigForObjectProcess

    修改对象FC接入点配置。

    GetAccessPointConfigForObjectProcess

    oss:GetAccessPointConfigForObjectProcess

    获取对象FC接入点配置信息。

    PutAccessPointPolicyForObjectProcess

    oss:PutAccessPointPolicyForObjectProcess

    为对象FC接入点配置权限策略。

    GetAccessPointPolicyForObjectProcess

    oss:GetAccessPointPolicyForObjectProcess

    获取对象FC接入点的权限策略配置。

    DeleteAccessPointPolicyForObjectProcess

    oss:DeleteAccessPointPolicyForObjectProcess

    删除对象FC接入点的权限策略。

    WriteGetObjectResponse

    oss:WriteGetObjectResponse

    自定义返回数据和响应标头。

    CreateBucketDataRedundancyTransition

    oss:CreateBucketDataRedundancyTransition

    创建存储冗余转换任务。

    GetBucketDataRedundancyTransition

    oss:GetBucketDataRedundancyTransition

    获取存储冗余转换任务。

    DeleteBucketDataRedundancyTransition

    oss:DeleteBucketDataRedundancyTransition

    删除存储冗余转换任务。

    ListBucketDataRedundancyTransition

    oss:ListBucketDataRedundancyTransition

    列举某个Bucket下所有的存储冗余转换任务。

    PutBucketPublicAccessBlock

    oss:PutBucketPublicAccessBlock

    为某个Bucket开启阻止公共访问。

    GetBucketPublicAccessBlock

    oss:GetBucketPublicAccessBlock

    获取某个Bucket的阻止公共访问配置信息。

    DeleteBucketPublicAccessBlock

    oss:DeleteBucketPublicAccessBlock

    删除某个Bucket的阻止公共访问配置信息。

    PutAccessPointPublicAccessBlock

    oss:PutAccessPointPublicAccessBlock

    为某个接入点开启阻止公共访问。

    GetAccessPointPublicAccessBlock

    oss:GetAccessPointPublicAccessBlock

    获取某个接入点的阻止公共访问配置信息。

    DeleteAccessPointPublicAccessBlock

    oss:DeleteAccessPointPublicAccessBlock

    删除某个接入点的阻止公共访问配置信息。

    GetBucketPolicyStatus

    oss:GetBucketPolicyStatus

    查看当前Bucket Policy是否允许公共访问。

  • Object级别

    说明

    如果在上传文件的过程中,包含Object的标签(Tagging)信息。则必须同时具有oss:PutObject权限和oss:PutObjectTagging权限。

    API

    Action

    接口描述

    PutObject

    oss:PutObject

    上传文件(Object)。

    PostObject

    oss:PutObject

    通过HTML表单上传的方式将Object上传到指定Bucket。

    AppendObject

    oss:PutObject

    以追加写的方式上传Object。

    InitiateMultipartUpload

    oss:PutObject

    在使用Multipart Upload模式传输数据前,通知OSS初始化一个分片上传(Multipart Upload)事件。

    UploadPart

    oss:PutObject

    根据指定的Object名和uploadId来分块(Part)上传数据

    CompleteMultipartUpload

    oss:PutObject

    在将所有数据Part都上传完成后,需调用此接口来完成整个Object的分片上传。

    AbortMultipartUpload

    oss:AbortMultipartUpload

    取消MultipartUpload事件并删除对应的Part数据。

    PutSymlink

    oss:PutObject

    为OSS的目标文件(TargetObject)创建软链接(Symlink)。

    GetObject

    oss:GetObject

    获取某个Object。

    HeadObject

    oss:GetObject

    获取某个Object的元数据。

    GetObjectMeta

    oss:GetObject

    获取Object的元数据信息,包括该Object的ETag、Size、LastModified信息。

    SelectObject

    oss:GetObject

    对目标文件执行SQL语句,返回执行结果。

    GetSymlink

    oss:GetObject

    获取目标文件的软链接。

    DeleteObject

    oss:DeleteObject

    删除某个Object。

    DeleteMultipleObjects

    oss:DeleteObject

    删除同一个Bucket中的多个Object。

    CopyObject

    oss:GetObject

    oss:PutObject

    拷贝同一地域下相同或不同Bucket之间的Object。

    UploadPartCopy

    oss:GetObject

    oss:PutObject

    在UploadPart请求的基础上增加一个请求头x-oss-copy-source来调用UploadPartCopy接口,实现从一个已存在的Object中拷贝数据来上传一个Part。

    ListParts

    oss:ListParts

    列举指定Upload ID所属的所有已经上传成功的Part。

    PutObjectACL

    oss:PutObjectAcl

    修改Bucket下某个Object的ACL。

    GetObjectACL

    oss:GetObjectAcl

    获取Bucket下某个Object的ACL。

    RestoreObject

    oss:RestoreObject

    解冻归档存储、冷归档存储或者深度冷归档存储类型的Object。

    PutObjectTagging

    oss:PutObjectTagging

    设置或更新Object的标签(Tagging)信息。

    GetObjectTagging

    oss:GetObjectTagging

    获取Object的标签信息。

    DeleteObjectTagging

    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的标签信息。

    PutLiveChannel

    oss:PutLiveChannel

    通过RTMP协议上传音视频数据前,必须先调用该接口创建一个LiveChannel。

    ListLiveChannel

    oss:ListLiveChannel

    列举指定的LiveChannel。

    DeleteLiveChannel

    oss:DeleteLiveChannel

    删除指定的LiveChannel。

    PutLiveChannelStatus

    oss:PutLiveChannelStatus

    在启用(enabled)和禁用(disabled)两种状态之间进行切换。

    GetLiveChannelInfo

    oss:GetLiveChannel

    获取指定LiveChannel的配置信息。

    GetLiveChannelStat

    oss:GetLiveChannelStat

    获取指定LiveChannel的推流状态信息。

    GetLiveChannelHistory

    oss:GetLiveChannelHistory

    获取指定LiveChannel的推流记录。

    PostVodPlaylist

    oss:PostVodPlaylist

    为指定的LiveChannel生成一个点播用的播放列表。

    GetVodPlaylist

    oss:GetVodPlaylist

    查看指定LiveChannel在指定时间段内推流生成的播放列表。

    oss:PublishRtmpStream

    将音频和视频数据流推送到RTMP。

    ImgSaveAs

    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

acs:oss:{region}:{bucket_owner}:{bucket_name}

acs:oss:*:*:mybucket

Object级别Resource

acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}

acs:oss:*:*:mybucket/abc.txt

说明

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。

    主要针对GetObjectHeadObject等读取文件接口以及PutObjectTaggingGetObjectTagging等ObjectTagging接口。

    oss:RequestObjectTag

    请求中携带的对象标签。

    单个ObjectTag可以作为一个Condition。当设置多个ObjectTag时,需在每个ObjectTag前加上oss:RequestObjectTag/,组成多个Condition。

    主要针对PutObjectPostObject等写入文件接口以及PutObjectTaggingGetObjectTagging等ObjectTagging接口。

常见示例

您可以使用RAM Policy实现不同场景下的用户权限策略。更多信息,请参见RAM Policy常见示例