186
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
天翼云对象存储(经典版)I型访问控制教程-新建自定义策略



点击这里注册天翼云特邀VIP帐号,立即体验天翼云对象存储>>>


天翼云对象存储(经典版)I型访问控制教程-新建自定义策略


点击访问控制->权限策略->新建,进入新建策略界面,可以按照下列步骤进行新建策略。

1.输入策略名称。策略名需遵循下列规则:

1~128位字符串组成,字符只能包含字母、数字或特殊字符,不包含空格。字母不区分大小写,特殊字符只能是:下划线(_)、中划线(-)、逗号(,)、句点(.)、加号(+)、等号(=)和at符号(@)。

策略名必须唯一。

2.添加描述(可选):可以对策略进行概要描述。

3.添加策略内容,可以通过可视化策略编辑或JSON编程实现。

 

可视化策略编辑

点击添加策略语句,弹出添加授权语句对话框,可以根据需要,对该策略进行权限配置。

项目

描述

选择产品/服务

可以定义选择服务产品的类型:

  • oos:对象存储;

  • cloudtrail:操作跟踪;

  • statistics:统计;

  • iam:用户身份管理与访问控制服务。

选择效果

对选择操作的效果:

  • 允许:根据选择的操作类别,对选择的操作效果表现为允许;

  • 拒绝:根据选择的操作类别,对选择的操作效果表现为拒绝。

操作类别

选择操作的类别。可以在搜索框中模糊搜索或者精准搜索,搜索出的操作会在操作列表中显示。

操作类别

  • Action:对指定的操作匹配;

  • NotAction:与指定的操作之外的其他操作匹配的策略元素。使用NotAction时:

            如果使用允许效果,则允许未列出的所有适用操作或服务;

            如果使用拒绝效果,则拒绝此类未列出的操作或服务。

操作列表

可以在操作列表中选择需要对操作实行的策略。各服务包含的策略见操作列表

资源类别

资源是策略生效的实体:

  • Resource:策略生效的资源。

  • NotResource:除指定资源外的其他资源,策略生效。

资源

可以指定所有资源,也可以指定特定资源。选特定资源时,必须添加具体的资源ARN。

对于statistics,无法选择资源,默认所有资源

条件(可选)

用户策略生效的条件。

注意:如果条件值输入的是时间,将需要设置的时间转换为UTC+0时间。


操作列表

产品/服务

描述

OOS

列表:

ListBucket

ListAllMyBucket

GetRegions

读:

ListBucketMultipartUploads

GetBucketAcl

GetBucketLocation

GetBucketPolicy

GetLifecycleConfiguration

GetBucketWebsite

GetBucketCORS

GetBucketLogging

GetObject

ListMultipartUploadParts

写:

DeleteBucket

PutLifecycleConfiguration

PutBucketWebsite

DeleteBucketWebsite

PutBucketCORS

PutBucketLogging

PutObject

DeleteObject

DeleteMultipleObjects

AbortMultipartUpload

PutBucket

权限管理:

PutBucketPolicy

DeleteBucketPolicy

cloudtrail

 

列表:

DescribeTrails

LookupEvents

读:

GetEventSelectors

GetTrailStatus

写:

PutEventSelectors

StopLogging

CreateTrail

UpdateTrail

DeleteTrail

StartLogging

statistics

GetAccountStatistcsSummary

iam

列表:

GetAccountSummary

GetLoginProfile

ListAccessKeys

ListUsers

ListUserTags

ListGroups

ListGroupsForUser

ListPolicies

ListAttachedGroupPolicies

ListAttachedUserPolicies

ListEntitiesForPolicy

ListVirtualMFADevices

ListMFADevices

读:

GetUser

GetGroup

GetPolicy

GetAccountPasswordPolicy

GetAccountLoginSecurityPolicy

写:

CreateAccessKey

DeleteAccessKey

UpdateAccessKey

GetSessionToken

CreateUser

DeleteUser

TagUser

UntagUser

CreateGroup

DeleteGroup

AddUserToGroup

RemoveUserFromGroup

ChangePassword

UpdateAccountPasswordPolicy

DeleteAccountPasswordPolicy

UpdateAccountLoginSecurityPolicy

DeleteAccountLoginSecurityPolicy

CreateVirtualMFADevice

DeleteVirtualMFADevice

EnableMFADevice

DeactivateMFADevice

CreateLoginProfile

DeleteLoginProfile

UpdateLoginProfile

权限:

CreatePolicy

DeletePolicy

AttachUserPolicy

DetachUserPolicy

AttachGroupPolicy

DetachGroupPolicy


条件描述

条件键

运算符

ctyun:CurrentTime

DateEquals:匹配指定日期;

DateNotEquals:不等于指定日期;

DateLessThan:早于指定日期;

DateLessThanEquals:早于或等于指定日期;

DateGreaterThan:晚于指定日期;

DateGreaterThanEquals:晚于或等于指定日期。

格式为:yyyy-MM-dd’T’HH:mm:ss’Z’。例如:2019-12-18T09:00:00Z。

DateEqualsDateNotEquals精确到天,其他精确到秒。

注意:将需要设置的时间转换为UTC+0时间。

ctyun:SourceIp

IpAddress:与指定IP地址或范围匹配;

NotIpAddress:除指定IP地址或范围外的所有IP地址匹配。

IPv4:点分十进制格式。

IPv6:32位16进制数,格式为X:X:X:X:X:X:X:X。

如果指定地址范围,IP地址后加掩码表示,如192.163.1.5/3。

ctyun:userid

StringEquals:精准匹配指定的值,区分大小写;

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

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

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

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

StringNotLike:与指定的值不能进行模糊匹配,区分大小写。

包含数字和小写字母的32位字符串。

运算符为StringLikeStringNotLike,可以包含通配符。

ctyun:username

StringEquals:精准匹配指定的值,区分大小写;

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

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

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

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

StringNotLike:与指定的值不匹配,区分大小写。值可以在字符串中的任何位置包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。

1~64位字符串组成,字符只能包含字母、数字或特殊字符,字母不区分大小写,特殊字符只能是:下划线(_)、中划线(-)、逗号(,)、句点(.)、加号(+)、等号(=)和at符号(@)。

说明:运算符为StringLikeStringNotLike,可以包含通配符。

ctyun:UserAgent

StringEquals:精准匹配指定的值,区分大小写;

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

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

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

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

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

字符串,可以包含特殊字符。

ctyun:Referer

StringEquals:精准匹配指定的值,区分大小写;

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

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

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

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

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

字符串,可以包含特殊字符。

ctyun:SecureTransport

Bool:布尔匹配。

  • true

  • false

ctyun:MultiFactorAuthPresent

Bool:布尔匹配。

说明:只有IAM服务支持此条件键。

  • true

  • false

ctyun:MultiFactorAuthAge

NumericEquals:与指定的值相同;

NumericNotEquals:与指定的值不同,否定匹配;

NumericLessThan:小于指定的值;

NumericLessThanEquals:小于等于指定的值;

NumericGreaterThan:大于指定的值;

NumericGreaterThanEquals:大于等于指定的值。

说明:只有IAM服务支持此条件键。

整数形式。

oos:prefix

StringEquals:精准匹配指定的值,区分大小写;

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

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

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

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

StringNotLike:与指定的值不匹配,区分大小写。值可以在字符串中的任何位置包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。

字符串形式。

说明:本条件键仅对ListBucket生效。

oos:x-amz-acl

StringEquals:精准匹配指定的值,区分大小写;

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

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

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

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

StringNotLike:与指定的值不匹配,区分大小写。值可以在字符串中的任何位置包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。

字符串形式。

取值为:

  • private:私有

  • public-read:只读

  • public-read-write:公有

说明:创建Bucket时,通过使用此条件键可以控制存储桶ACL的类型,本条件键仅对PutBucket生效。

 


JSON编程授权

可以使用JSON语言对策略内容进行添加。以下列策略为例,说明JSON编程策略的语法结构。

{
  "Version": "2012-10-17",
  "Statement": [
  {
      "Effect": "Allow",
      "Action": [
          "oos:ListAllMyBuckets",
          "oos:GetBucketLocation"
      ],
      "Resource": "arn:ctyun:oos::02elbe4neijs7:* ",
      "Condition": {
          "DateGreaterThan": {
              "ctyun:CurrentTime": "2019-01-16T12:00:00Z"
          },
          "DateLessThan": {
              "ctyun:CurrentTime": "2019-01-16T12:00:00Z"
          },
          "IpAddress": {
              "ctyun:SourceIp": ["192.0.2.0/24", "203.0.113.0/24"]
          }
      }
  }
  ]
}



JSON编程参数表

参数

含义

Version

策略的版本

2012-10-17

Statement:策略的授权语句。Statement可以有多个,表示不同的授权结构。

Effect:效果

定义操作的选择效果

Allow:允许执行;

Deny:拒绝执行。

说明:当同一个Action中的Effect同时包含Allow和Deny时,遵循Deny优先的原则。

Action:对操作的类别显性匹配;

NotAction:与指定的操作之外的其他操作显性匹配。

说明:对于一个Statement,Action和NotAction二选一

定义操作的类别

格式为:

服务名

Ø oos:对象存储;

Ø cloudtrail:操作跟踪;

Ø statistics:管理API;

Ø iam:访问控制。

操作列表:操作列表。

Resource:策略生效的资源;

NotResource:除指定资源外,策略生效。

资源类别

格式可以为:

    arn:ctyun:service::accountid:resource

    arn:ctyun:service::accountid:resourcetype/resource

其中:

  • service:服务名;

  • accountid:账户ID;

  • resource:具体资源。在指定资源时,可以使用通配符,其中*表示字符的任意组合,?表示任何单个字符;例如oos可以表示为:arn:ctyun:oos::accountID:bucket/object,其中bucket和object为用户实际的资源名称。

  • resourcetype:资源类型。可以使用*表示所有资源类型。根据服务不同,对应的resourcetype不同:

            iam的resourcetype可以为:user、group、policy、mfa或*;

            cloudtrail的resourcetype可以为:trail或*;

            statistics的resourcetype可以为: *。

Condition:条件

策略生效的条件

Condition的语法结构如下:

“Condition”: {“条件运算符A”: {“条件键A”:[“条件值A1”, “条件值A2”,…]}, “条件运算符B”: {“条件键B”:[“条件值B1”, “条件值B2”,…] } }

注意:Condition元素可以由多个条件组成。条件包括:条件运算符、条件键和条件值组成,一个条件键可以对应多个条件值。

IfExists条件运算符

IfExists:如果请求的内容中存在关键字,则依照策略所述的条件来处理关键字。如果该关键字不存在,则条件元素的计算结果将为true。

目前仅Bool型和数字类型的运算符支持使用IfExists条件运算符,表达形式:运算符IfExists,例如BoolIfExists、NumericEqualsIfExists。对于…IfExists的使用见示例1和示例2。

示例1

拒绝没有使用MFA认证的控制台请求,不拒绝使用MFA认证的控制台请求和使用密钥的API请求。但如果允许使用MFA认证的控制台请求和使用密钥的API请求,需要再写显性允许语句。

"Effect" : "Deny",
"Condition" : {   "Bool" : { "ctyun:MultiFactorAuthPresent" : false } }


拒绝没有使用MFA认证的控制台请求及使用密钥的API请求,不拒绝MFA认证的控制台请求。但如果允许MFA认证的控制台请求,需要再写显性允许语句。

"Effect" : "Deny",
"Condition" : {   "BoolIfExists" : { "ctyun:MultiFactorAuthPresent" : false   } }


示例2

允许使用MFA认证在1800秒内的请求及使用密钥的API请求。

"Effect" : "Allow",
"Condition" : { "   NumericLessThanEqualsIfExists" : {   "ctyun:MultiFactorAuthAge " : 1800 } }


允许使用MFA认证在1800秒内的请求,但不允许MFA认证超过1800秒以上及没有使用MFA的请求(包括API请求)。

"Effect" : "Allow",
"Condition" : { "   NumericLessThanEquals" : { "ctyun:MultiFactorAuthAge " :   1800 } }



这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!