文档简介:
IAM策略
策略是以JSON格式描述权限的信息。管理员创建的IAM用户在没有授权策略前是没有任何权限的。只有将策略授权给用户组或者用户,用户才拥有对应的权限。
IAM支持系统策略和自定义策略:
- 
							
系统策略:天翼云OOS预先创建好的策略,用户可以根据自身需求,直接引用。对于系统策略,用户只能使用,不能修改。
 - 
							
自定义策略:用户自己创建的策略,用户可以对该类型策略进行修改和删除。
 
						点击菜单栏中的访问控制->权限策略,进入权限策略,可以查看策略列表、创建自定义策略、删除自定义策略、对策略进行管理等。
					
						
					
系统策略
目前支持的系统策略有以下几种:
| 
									 策略名  | 
								
									 描述  | 
							
| 
									 AdministratorAccess  | 
								
									 所有权限,与根用户的权限一样多。  | 
							
| 
									 IAMReadOnlyAccess  | 
								
									 IAM相关的get和list权限。  | 
							
| 
									 OOSCloudTrailFullAccess  | 
								
									 操作跟踪需要的相关权限,包括: lOOS:CreateBucket、DeleteBucket、GetBucket、HeadBucket、GetService、GetObject; lClouldTrail:所有操作。  | 
							
| 
									 OOSCloudTrailReadOnlyAccess  | 
								
									 操作跟踪读相关的权限,包括:GetTrailStatus、DescribeTrails、LookupEvents、GetEventSelectors、GetObject、GetService。  | 
							
| 
									 OOSFullAccess  | 
								
									 OOS的所有权限,包括Bucket和Object的所有操作。  | 
							
| 
									 OOSIAMFullAccess  | 
								
									 IAM只读权限,包括IAM的GET、List相关操作。  | 
							
| 
									 OOSReadOnlyAccess  | 
								
									 OOS只读权限,包括Bucket和Object的GET、List相关操作。  | 
							
自定义策略
- 
							
新建自定义策略
 
点击访问控制->权限策略->新建,进入新建策略界面,可以按照下列步骤进行新建策略。
- 
							
输入策略名称。策略名需遵循下列规则: 1~128位字符串组成,字符只能包含字母、数字或特殊字符,不包含空格。字母不区分大小写,特殊字符只能是:下划线(_)、中划线(-)、逗号(,)、句点(.)、加号(+)、等号(=)和at符号(@)。
 - 
							
策略名必须唯一。
 - 
							
添加描述(可选):可以对策略进行概要描述。
 - 
							
添加策略内容,可以通过可视化策略编辑或JSON编程实现。
 
						
					
- 
							
可视化策略编辑
 
点击添加策略语句,弹出添加授权语句对话框,可以根据需要,对该策略进行权限配置。
						
					
						
					
| 
									 项目  | 
								
									 描述  | 
							
| 
									 选择产品/服务  | 
								
									 可以定义选择服务产品的类型: 
  | 
							
| 
									 选择效果  | 
								
									 对选择操作的效果: 
  | 
							
| 
									 操作类别  | 
								
									 选择操作的类别。可以在搜索框中模糊搜索或者精准搜索,搜索出的操作会在操作列表中显示。 操作类别: 
 (1)如果使用允许效果,则允许未列出的所有适用操作或服务; (2)如果使用拒绝效果,则拒绝此类未列出的操作或服务。  | 
							
| 
									 操作列表  | 
								
									 可以在操作列表中选择需要对操作实行的策略。各服务包含的策略见操作列表。  | 
							
| 
									 资源类别  | 
								
									 资源是策略生效的实体: 
  | 
							
| 
									 资源  | 
								
									 可以指定所有资源,也可以指定特定资源。选特定资源时,必须添加具体的资源ARN。 对于statistics,无法选择资源,默认所有资源。  | 
							
| 
									 条件(可选)  | 
								
									 用户策略生效的条件。 注意:如果条件值输入的是时间,将需要设置的时间转换为UTC+0时间。  | 
							
- 
							
操作列表
 
| 
									 产品/服务  | 
								
									 描述  | 
							
| 
									 OOS  | 
								
									 列表: 
  | 
							
| 
									 读: 
  | 
							|
| 
									 写: 
  | 
							|
| 
									 权限管理: 
  | 
							|
| 
									 cloudtrail 
  | 
								
									 列表: 
  | 
							
| 
									 读: 
  | 
							|
| 
									 写: 
  | 
							|
| 
									 statistics  | 
								
									 GetAccountStatistcsSummary  | 
							
| 
									 iam  | 
								
									 列表: 
  | 
							
| 
									 读: 
  | 
							|
| 
									 写: 
  | 
							|
| 
									 权限: 
  | 
							
- 
							
条件描述
 
| 
									 条件键  | 
								
									 运算符  | 
								
									 值  | 
							
| 
									 ctyun:CurrentTime  | 
								
									 l DateEquals:匹配指定日期; l DateNotEquals:不等于指定日期; l DateLessThan:早于指定日期; l DateLessThanEquals:早于或等于指定日期; l DateGreaterThan:晚于指定日期; l DateGreaterThanEquals:晚于或等于指定日期。  | 
								
									 格式为:yyyy-MM-dd’T’HH:mm:ss’Z’。例如:2019-12-18T09:00:00Z。 DateEquals和DateNotEquals精确到天,其他精确到秒。 注意:将需要设置的时间转换为UTC+0时间。  | 
							
| 
									 ctyun:SourceIp  | 
								
									 l IpAddress:与指定IP地址或范围匹配; l NotIpAddress:除指定IP地址或范围外的所有IP地址匹配。  | 
								
									 IPv4:点分十进制格式。 IPv6:32位16进制数,格式为X:X:X:X:X:X:X:X。 如果指定地址范围,IP地址后加掩码表示,如192.163.1.5/3。  | 
							
| 
									 ctyun:userid  | 
								
									 l StringEquals:精准匹配指定的值,区分大小写; l StringNotEquals:与指定的值不匹配,区分大小写; l StringEqualsIgnoreCase:与指定的值精准匹配,不区分大小写。 l StringNotEqualsIgnoreCase:与指定的值不匹配,不区分大小写; l StringLike:与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。区分大小写; l StringNotLike:与指定的值不能进行模糊匹配,区分大小写。  | 
								
									 包含数字和小写字母的32位字符串。 运算符为StringLike和StringNotLike,可以包含通配符。  | 
							
| 
									 ctyun:username  | 
								
									 l StringEquals:精准匹配指定的值,区分大小写; l StringNotEquals:与指定的值不匹配,区分大小写; l StringEqualsIgnoreCase:与指定的值精准匹配,不区分大小写。 l StringNotEqualsIgnoreCase:与指定的值不匹配,不区分大小写; l StringLike:与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。区分大小写; l StringNotLike:与指定的值不匹配,区分大小写。值可以在字符串中的任何位置包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。  | 
								
									 1~64位字符串组成,字符只能包含字母、数字或特殊字符,字母不区分大小写,特殊字符只能是:下划线(_)、中划线(-)、逗号(,)、句点(.)、加号(+)、等号(=)和at符号(@)。 说明:运算符为StringLike和StringNotLike,可以包含通配符。  | 
							
| 
									 ctyun:UserAgent  | 
								
									 l StringEquals:精准匹配指定的值,区分大小写; l StringNotEquals:与指定的值不匹配,区分大小写; l StringEqualsIgnoreCase:与指定的值精准匹配,不区分大小写。 l StringNotEqualsIgnoreCase:与指定的值不匹配,不区分大小写; l StringLike:与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。区分大小写; l StringNotLike:与指定的值不匹配,区分大小写的无效匹配。或通过填充通配符,与指定的值也不匹配。  | 
								
									 字符串,可以包含特殊字符。  | 
							
| 
									 ctyun:Referer  | 
								
									 l StringEquals:精准匹配指定的值,区分大小写; l StringNotEquals:与指定的值不匹配,区分大小写; l StringEqualsIgnoreCase:与指定的值精准匹配,不区分大小写。 l StringNotEqualsIgnoreCase:与指定的值不匹配,不区分大小写; l StringLike:与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。区分大小写; l StringNotLike:与指定的值不匹配,区分大小写的无效匹配。或通过填充通配符,与指定的值也不匹配。  | 
								
									 字符串,可以包含特殊字符。  | 
							
| 
									 ctyun:SecureTransport  | 
								
									 Bool:布尔匹配。  | 
								
									 l true l false  | 
							
| 
									 ctyun:MultiFactorAuthPresent  | 
								
									 Bool:布尔匹配。 说明:只有IAM服务支持此条件键。  | 
								
									 l true l false  | 
							
| 
									 ctyun:MultiFactorAuthAge  | 
								
									 l NumericEquals:与指定的值相同; l NumericNotEquals:与指定的值不同,否定匹配; l NumericLessThan:小于指定的值; l NumericLessThanEquals:小于等于指定的值; l NumericGreaterThan:大于指定的值; l NumericGreaterThanEquals:大于等于指定的值。 说明:只有IAM服务支持此条件键。  | 
								
									 整数形式。  | 
							
| 
									 oos:prefix  | 
								
									 l StringEquals:精准匹配指定的值,区分大小写; l StringNotEquals:与指定的值不匹配,区分大小写; l StringEqualsIgnoreCase:与指定的值精准匹配,不区分大小写。 l StringNotEqualsIgnoreCase:与指定的值不匹配,不区分大小写; l StringLike:与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。区分大小写; l StringNotLike:与指定的值不匹配,区分大小写。值可以在字符串中的任何位置包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。  | 
								
									 字符串形式。 说明:本条件键仅对ListBucket生效。  | 
							
| 
									 oos:x-amz-acl  | 
								
									 l StringEquals:精准匹配指定的值,区分大小写; l StringNotEquals:与指定的值不匹配,区分大小写; l StringEqualsIgnoreCase:与指定的值精准匹配,不区分大小写。 l StringNotEqualsIgnoreCase:与指定的值不匹配,不区分大小写; l StringLike:与指定的值精准匹配;或通过填充通配符,与指定的值相似,可以包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。区分大小写; l StringNotLike:与指定的值不匹配,区分大小写。值可以在字符串中的任何位置包括多字符匹配的通配符 (*) 或单字符匹配的通配符 (?)。  | 
								
									 字符串形式。 取值为: l private:私有 l public-read:只读 l 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:效果  | 
								
									 定义操作的选择效果  | 
								
									 l Allow:允许执行; l Deny:拒绝执行。 说明:当同一个Action中的Effect同时包含Allow和Deny时,遵循Deny优先的原则。  | 
							
| 
									 l Action:对操作的类别显性匹配; l NotAction:与指定的操作之外的其他操作显性匹配。 说明:对于一个Statement,Action和NotAction二选一  | 
								
									 定义操作的类别  | 
								
									 格式为: l 服务名: Ø oos:对象存储; Ø cloudtrail:操作跟踪; Ø statistics:管理API; Ø iam:访问控制。 l 操作列表:见操作列表。  | 
							|
| 
									 l Resource:策略生效的资源; l NotResource:除指定资源外,策略生效。  | 
								
									 资源类别  | 
								
									 格式可以为: l arn:ctyun:service::accountid:resource l arn:ctyun:service::accountid:resourcetype/resource 其中: l service:服务名; l accountid:账户ID; l resource:具体资源。在指定资源时,可以使用通配符,其中*表示字符的任意组合,?表示任何单个字符;例如oos可以表示为:arn:ctyun:oos::accountID:bucket/object,其中bucket和object为用户实际的资源名称。 l resourcetype:资源类型。可以使用*表示所有资源类型。根据服务不同,对应的resourcetype不同: n iam的resourcetype可以为:user、group、policy、mfa或*; n cloudtrail的resourcetype可以为:trail或*; n statistics的resourcetype可以为: *。  | 
							|
| 
									 Condition:条件  | 
								
									 策略生效的条件  | 
								
									 格式为: 条件运算符:{条件名:[条件值1,条件值2]} 说明:一个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 } }  | 
							
- 
							
修改自定义策略
 
策略内容
点击权限策略->策略名称->策略内容->编辑策略,弹出编辑策略界面,可以通过可视化策略编辑器或JSON对策略进行编辑,具体编辑方法见新建策略和策略语法结构。
						
					
- 
							
删除自定义策略
 
点击导航栏的权限策略,进入权限策略页面。选择需要删除的策略进行勾选,点击删除策略,可以删除未关联用户和用户组的策略。
点击操作中的删除,可以删除该策略。
查看策略基本信息
在权限策略页面,点击策略名或者管理,可以进入具体策略页面,在该页面可以查看策略的基本信息和修改策略。
策略基本信息包含:策略名称、策略类型、创建时间、最近修改时间、描述。
						
					
授权用户
在权限策略页面,点击授权用户,弹出授权用户页面。选择需要授权的用户,可以为用户进行授权。弹框中灰色的用户表示已关联该策略的用户。
						 
					
- 
							
授权用户/组
 
在权限策略页面,点击授权,弹出授权用户/组页面。选择需要授权的用户或用户组,可以为其进行授权。弹框中灰色的用户组表示已关联该策略的用户或用户组。
						
					
查看授权用户/组
在权限策略页,点击对应策略或者策略后的管理,进入对应策略详情页,可以在用户/组,查看当前策略已关联的用户和用户组,同时可以为用户或用户组进行授权和移除授权。
						
					






