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的生命周期规则(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说明

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。

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

    oss:RequestObjectTag 请求中携带的对象标签。

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

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

常见示例

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