全部产品
Search
文档中心

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

更新时间:Feb 11, 2025

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级别的操作。

OSS Resource说明

在OSS中,Resource指代某个具体资源或者某些资源,支持通配符星号(*)。单个RAM Policy允许包含多个Resource。

分类

格式

示例

Bucket级别

acs:oss:{region}:{bucket_owner_id}:{bucket_name}

acs:oss:*:*:mybucket

Object级别

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

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

资源池级别

acs:oss:{region}:{account_id}:resourcepool/{resource_pool_name}

acs:oss:*:*:resourcepool/resource-pool-for-ai

说明

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

    • IpAddressIncludeBorder

  • 条件关键字

    条件关键字

    说明

    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常见示例