上云无忧 > 文档中心 > 天翼云对象存储(OOS经典版)I型Bucket Policy元素
对象存储
天翼云对象存储(OOS经典版)I型Bucket Policy元素

文档简介:
下面介绍statements中的各个元素。 Version Version是policy语言的版本,它是个可选项,目前只允许填写2012-10-17。 "Version":"2012-10-17" Id Id是policy的一个可选标识。推荐使用UUID来指明policy。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Bucket Policy元素


下面介绍statements中的各个元素。

Version

Version是policy语言的版本,它是个可选项,目前只允许填写2012-10-17。

"Version":"2012-10-17"

Id

Id是policy的一个可选标识。推荐使用UUID来指明policy。

Statement

Statement是个重要的元素,它可以包含多个元素。Statement元素可以包含一组独立的statements,每个独立的Statement是一个包含在大括号({})内的严格的JSON块。

"Statement":[{...},{...},{...}] 

1.Sid

Sid(statement ID)是statement的一个可选标识,它可以看作是policy id的子id。

"Sid" : "1" 

2.Effect

Effect是一个必填元素,用于表示允许访问或拒绝访问,有效值只能是 Allow或Deny。

"Effect":"Allow" 

3.Principal

Principal用于指定被允许或被拒绝访问的用户,Principal可以为:

  • "Principal": "*"、或"Principal": {"CTYUN":"*"}:表示所有用户;

  • "Principal": { "CTYUN": "arn:ctyun:iam:: accountId:root" }:表示根用户;

  • "Principal": { "CTYUN": "arn:ctyun:iam::accountId:user/user-name" }:表示子用户。

可以指定根用户和多个子用户,如下表示方法:

"Principal":   {

  "CTYUN": [

    "arn:ctyun:iam::accountId:root",

    "arn:ctyun:iam::accountId:user/user-name1",

    "arn:ctyun:iam::accountId:user/user-name2"

  ]

}


4.Action

Action用于指定被允许或拒绝访问的操作,必填项。只有bucke owner能执行bucket相关写操作,以及bucket子资源的相关操作。Action中可以配置以下权限。

与Bucket相关的OOS权限列表如下。

权限关键字

OOS 操作

oos:ListBucket

GET   BucketList Object)、HEAD Bucket

oos:ListBucketMultipartUploads

List   Multipart Uploads


对象操作的 OOS 权限列表如下。

权限

OOS操作

oos:AbortMultipartUpload

Abort Multiple Upload

oos:DeleteObject

DELETE Object

oos:GetObject

GET ObjectHEAD Object

oos:ListMultipartUploadParts

List Part

oos:PutObject

PUT ObjectPUT   Object-CopyPOST ObjectInitiate Mulitipart UploadUpload PartCompelete   Multipart UploadUpload Part Copy

可使用通配符 (*) 来访问OOS产品提供的所有操作。例如,以下 Action 元素适用于所有OOS操作。

"Action": "oos:*" 

还可以使用通配符 (*) 作为操作名称的一部分。例如下面的Action元素,适用于PutObject, GetObject, DeleteObject

"Action": "oos:*Object" 

5.Resource

Resource是指policy覆盖的对象或对象集合。可以使用通配符*和?,必须以arn:ctyun:oos:::bucketName/开头。例如要使Policy对于所有以image开头的Object生效,可以这样配置:

"Resource":"arn:ctyun:oos:::example-bucket/image*"

6.Condition

Condition是Statement中最复杂的一个元素,我们把它称之为condition块,虽然只有一个condition元素,但是它可以包含多个conditions,而且每个condition可以包含多个key-value对。如下图所示,condition块中的各个condition之间是逻辑与关系,condition key之间也是逻辑与关系,各个value之间是逻辑或关系。

(1) 条件运算符

条件运算符是条件的“动词”形式,可指定OOS执行的比较类型。条件运算符可分为以下类别:

1) String Conditions

String conditions可以允许设置string的匹配规则。

Condition

描述

StringEquals

精准匹配指定的值,区分大小写。

StringNotEquals

与指定的值不匹配,区分大小写。

StringEqualsIgnoreCase

与指定的值精准匹配,不区分大小写。

StringNotEqualsIgnoreCase

与指定的值不匹配,不区分大小写

StringLike

与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*)或单字符匹配的通配符 (?)。区分大小写。

StringNotLike

与指定的值不匹配,区分大小写的无效匹配。或通过填充通配符,与指定的值也不匹配。

例如,要匹配HTTP Referer头是以“/”开头的请求,可以这样配置:

"StringLike":{ 
          "ctyun:Referer":[ 
            "/*" 
          ] 
        } 

2) 布尔值条件运算符

利用布尔值条件,用户可以通过与“正确”或“错误”的对比,来设置Condition元素。

条件运算符

说明

Bool

布尔值匹配

例如,下列声明使用 Bool 条件运算符与 ctyun:SecureTransport 键来指定必须使用 SSL 发出请求。

{ 
  "Version": "2012-10-17", 
  "Statement": [ 
{ 
"Effect": "Allow", 
"Principal":{ "CTYUN": ["*"] }, 
    "Action": "oos:PutObject", 
    "Resource": "arn:ctyun:oos:::example_bucket/*", 
    "Condition": {"Bool": {"ctyun:SecureTransport": "true"}} 
  } 
 ] 

}

3) IP Address

IP address conditions允许设置IP地址的匹配规则,与ctyun:SourceIp key配合使用。此项的值必须符合标准的CIDR格式(例如:10.52.176.0/24),参考RFC 4632

Condition

描述

IpAddress

IP地址或范围的白名单

NotIpAddress

IP地址或范围的黑名单

(2) 条件键

条件键

描述

ctyun:Referer

与字符串运算符结合使用。用于检查请求中的Referer请求头

ctyun:SecureTransport

与布尔值运算符结合使用。检查请求是否是使用 SSL 发送的。

ctyun:SourceIp

IP地址运算符结合使用。用于检查请求者的 IP 地址。

ctyun:UserAgent

与字符串运算符结合使用。用于检查请求者的客户端应用程序。

相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部