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。 - 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的授权策略(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中指定的清单任务。 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。 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:PutObjectVersionAcl 修改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。
分类 | 格式 | 示例 |
---|---|---|
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 |
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
- 条件关键字
Condition 说明 acs:SourceIp 指定普通IP网段,支持通配符星号(*)。 acs:UserAgent 指定HTTP User-Agent头。 类型:字符串
acs:CurrentTime 请求到达OSS服务端的时间。 格式:ISO8601
acs:SecureTransport 请求的协议类型。取值范围如下: - true:仅允许HTTPS请求访问。
- false:仅允许HTTP请求访问。
如果未设置
acs:SecureTransport
,表示HTTP或者HTTPS请求均可以访问。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接口。
常见示例
您可以使用RAM Policy实现不同场景下的用户权限策略。更多信息,请参见RAM Policy常见示例。