在设置访问管理策略时,您可以指定策略生效的条件(Condition)。生效条件是可选的,设置后,当用户向腾讯云发出请求时,系统会使用请求上下文中的条件键和条件值与您在策略中指定的生效条件的条件键和条件值进行匹配,只有条件匹配成功,对应的权限策略才会生效。
生效条件构成
生效条件由一个或多个条件子句构成。一个条件子句由条件键、运算符和条件值组成,一个条件键可以指定一个或多个条件值。
"condition" : { "{condition-operator}" : { "{condition-key}" : "{condition-value}" }}
条件子句示例
请求 IP 为
192.168.1.1
,且请求日期小于2022-05-31 00:00:00,Condition 如下:"condition":{"ip_equal": {"qcs:ip": "192.168.1.1"},"date_less_than": {"qcs:current_time": "2022-05-31 00:00:00"}}
生效条件匹配逻辑
生效条件的评估逻辑如下:
评估逻辑 | 说明 |
条件满足 | 一个条件键可以指定一个或多个条件值,在条件检查时,如果条件键的值与指定值中的某一个相同,即可判定条件满足。 |
条件子句满足 | 同一条件操作类型的条件子句下,若有多个条件键,则所有条件键必须同时满足,才能判定该条件子句满足。 |
条件块满足 | 条件块下的所有条件子句同时满足的情况下,才能判定该条件块满足。 |
条件运算符(null_equal 除外)加上后缀 if_exist | 表示上下文信息中即便不包含对应的键值依然生效。 |
for_all_value | 限定词搭配条件运算符使用,表示上下文信息中条件键的每个条件值都满足要求时才生效。 |
for_any_value | 限定词搭配条件运算符使用,表示上下文信息中条件键的任意一个条件值满足要求时就可以生效。 |
说明
生效条件示例
"condition":{"ip_equal": {"qcs:ip": "192.168.1.1"}}
请求中的条件值由条件键表示,在此示例中为 qcs:ip。将上下文键值与您指定为文本值的值进行比较,例如
192.168.1.1
。要进行的比较类型由条件运算符指定(此处为 ip_equal)。在某些情况下,需要匹配多种访问情况来满足实际需求,这时您可以在设置 Condition 时,指定多个条件值来匹配,例如:用户必须在
10.217.182.3/24
或者 111.21.33.72/24
网段才能上传对象(cos:PutObject),权限策略内容如下:{"version": "2.0","statement": [{"effect": "allow","action": ["cos:PutObject"],"resource": ["*"],"condition":{"ip_equal": {"qcs:ip": ["10.217.182.3/24","111.21.33.72/24"]}}}]}