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 接口描述 GetService (ListBuckets) oss:ListBuckets 列举请求者拥有的所有Bucket。 - Bucket级别
API Action 接口描述 PutBucket oss:PutBucket 创建Bucket。 GetBucket (ListObjects) oss:ListObjects 列举Bucket中所有Object的信息。 GetBucketInfo oss:GetBucketInfo 查看Bucket相关信息。 GetBucketLocation oss:GetBucketLocation 查看Bucket位置信息。 PutBucketVersioning oss:PutBucketVersioning 设置指定Bucket的版本控制状态。 GetBucketVersioning oss:GetBucketVersioning 获取指定Bucket的版本控制状态。 GetBucketVersions(ListObjectVersions) oss:ListObjectVersions 列出Bucket中包括删除标记(Delete Marker)在内的所有Object的版本信息。 PutBucketAcl oss:PutBucketAcl 设置或修改Bucket ACL。 GetBucketAcl oss:GetBucketAcl 获取Bucket ACL。 DeleteBucket oss:DeleteBucket 删除某个Bucket。 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的生命周期规则(Lifecycle)。 DeleteBucketLifecycle oss:DeleteBucketLifecycle 删除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的授权策略(Policy)。 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的数据复制规则。 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中指定的清单任务。 PutStyle oss:PutStyle 设置图片样式。 GetStyle oss:GetStyle 获取图片样式。 ListStyle oss:ListStyle 列举图片样式。 DeleteStyle oss:DeleteStyle 删除图片样式。 - Object级别
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 解冻归档类型(Archive)或冷归档(Cold Archive)的Object。 PutObjectTagging oss:PutObjectTagging 设置或更新Object的标签(Tagging)信息。 GetObjectTagging oss:GetObjectTagging 获取Object的标签信息。 DeleteObjectTagging oss:DeleteObjectTagging 删除指定Object的标签信息。 GetObject(请求参数中指定versionId) oss:GetObjectVersion 下载指定版本Object。 PutObjectACL(请求参数中指定versionId) oss:PutObjectAcl 修改Bucket下指定版本Object的ACL。 GetObjectACL(请求参数中指定versionId) oss:GetObjectVersionAcl 获取Bucket下指定版本Object的ACL。 RestoreObject(请求参数中指定versionId) oss:RestoreObjectVersion 解冻归档类型(Archive)或冷归档(Cold Archive)的指定版本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在指定时间段内推流生成的播放列表。 ProcessImm oss:ProcessImm 基于图片AI技术检测图片标签和置信度。 ImgSaveAs oss:PostProcessTask 保存处理后的图片至指定Bucket。
OSS Resource说明
在OSS中,Resource指代某个具体资源或者某些资源,支持通配符星号(*)。单个RAM Policy允许包含多个Resource。
Resource规则:acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}
针对Bucket级别的Resource设置,不需要在{bucket_name}
之后添加正斜线(/)以及{object_name}
,即acs:oss:{region}:{bucket_owner}:{bucket_name}
。region字段当前仅支持设置为通配符星号(*)。
OSS Condition说明
Condition代表Policy授权的条件。OSS支持的Condition如下:
Condition | 说明 |
---|---|
acs:SourceIp | 指定普通IP网段,支持通配符星号(*)。 |
acs:UserAgent | 指定HTTP User-Agent头。
类型:字符串 |
acs:CurrentTime | 请求到达OSS服务端的时间。
格式:ISO8601 |
acs:SecureTransport | 请求的协议类型。如果请求是HTTP协议,则为HTTP,如果请求是HTTPS协议,则为HTTPS。 |
oss:Prefix | 用于ListObjects请求时,列举指定前缀的Object。 |
oss:Delimiter | 用于ListObjects请求时,对Object名字进行分组的字符。 |
acs:AccessId | 请求中携带的AccessId。 |
oss:BucketTag | 存储空间标签(BucketTag)。
单个BucketTag可以作为一个Condition。当设置多个BucketTag时,需在每个BucketTag前加上 |
acs:MFAPresent | 是否启用了多因素认证MFA(Multi-factor authentication)。
取值:
|
oss:ExistingObjectTag | 请求的Object已存在标签。
单个ObjectTag可以作为一个Condition。当设置多个ObjectTag时,需在每个ObjectTag前加上 主要针对GetObject、HeadObject等读取文件接口以及PutObjectTagging、GetObjectTagging等ObjectTagging接口。 |
oss:RequestObjectTag | 请求中携带的对象标签。
单个ObjectTag可以作为一个Condition。当设置多个ObjectTag时,需在每个ObjectTag前加上 主要针对PutObject、PostObject等写入文件接口以及PutObjectTagging、GetObjectTagging等ObjectTagging接口。 |
常见示例
您可以使用RAM Policy实现不同场景下的用户权限策略。更多信息,请参见RAM Policy常见示例。