应用场景

最近更新时间:2023-07-14 16:59:44

我的收藏
场景类型
场景说明
示例
条件运算符包含一个条件键的一个条件值
允许 VPC 绑定指定的对等连接,VPC 的地域需要指定
只能对绑定标签的云服务器实例进行重启
条件运算符包含一个条件键的多个条件值
允许指定两个 IP 的用户访问
具有多个条件运算符的场景
允许指定 IP 和指定日期的用户访问
单个条件运算符包含多个条件键
将多个条件键附加到单个条件运算符则
布尔值条件运算符的应用
子用户需绑定 token 后才可删除 API 密钥

条件运算符包含一个条件键的一个条件值

场景说明1

当 CAM 用户在调用 VPC 对等连接 API 时,除了需要判断 CAM 用户是否拥有对等连接 API 和对等连接资源的访问权限外,还需要确认 CAM 用户是否拥有对等连接关联的 VPC 的访问权限。

使用示例1

以下示例描述允许 VPC 绑定指定的对等连接, VPC 的地域必须是上海。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": "name/vpc:AcceptVpcPeeringConnection",
"resource": "qcs::vpc:sh::pcx/2341",
"condition": {
"string_equal_if_exist": {
"vpc:region": "sh"
}
}
}
]
}

场景说明2

当 CAM 用户访问腾讯云资源时,需要限制用户仅可访问绑定指定标签的资源。

使用示例2

以下示例描述用户只能对绑定标签“部门&研发部”的云服务器实例进行重启(cvm:RebootInstances)。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cvm:RebootInstances"
],
"resource": "*",
"condition": {
"for_any_value:string_equal": {
"qcs:resource_tag": [
"部门&研发部"
]
}
}
}
]
}

条件运算符包含一个条件键的多个条件值

场景说明

单个条件运算符包含一个条件键的多个条件值,则采用逻辑 OR 评估该条件运算符,多个条件值时需要使用集合运算符号表示。
CAM 用户调用云 API 时,需要限制用户访问来源,则要求在现有的策略基础上加上 IP 条件。

使用示例

以下示例描述用户必须在 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"
]
}
}
}
]
}

具有多个条件运算符的场景

场景说明

如果您的策略具有多个条件运算符,则使用逻辑 AND 评估条件。

使用示例

以下示例描述用户必须请求 IP 为 192.168.1.1,请求日期小于2022-05-31 00:00:00才可以匹配。
"condition":{
"ip_equal": {
"qcs:ip": "192.168.1.1"
},
"date_less_than": {
"qcs:current_time": "2022-05-31 00:00:00"
}
}

单个条件运算符包含多个条件键

场景说明

如果您的策略具有多个条件运算符或将多个条件键附加到单个条件运算符则使用逻辑 AND 评估条件。

使用示例

以下示例描述资源标签为"部门&研发部",且请求标签为"部门&研发部"才可以匹配。
"condition":{
"string_equal": {
"qcs:resource_tag": [
"部门&研发部"
],
"qcs:request_tag": [
"部门&研发部"
]
}
}

布尔值条件运算符的应用

场景说明

子用户需绑定 token 后才可删除 API 密钥。

使用示例

以下示例描述,授权此条策略的子用户,需要绑定 token 后,才可删除 API 密钥。
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cam:DeleteApiKey"
],
"resource": [
"*"
],
"condition": {
"bool_equal": {
"qcs:BindToken": "true"
}
}
}
]
}