本文为您介绍标签策略的语法,包含标签策略语法结构和继承操作符。
语法结构
标签策略支持JSON格式,遵从JSON标准语法。不同场景标签策略的语法结构略有不同。
资源绑定指定标签值
该类型标签策略都是以tags
开头。
元素 | 是否必选 | 说明 | 示例值 |
策略键 | 是 | 策略键用于唯一标识标签策略内容,策略键使用小写。一个标签策略中可以定义多个策略键。策略键与标签键在忽略大小写时取值相同。 |
|
标签键 | 是 |
|
|
标签值 | 是 |
|
|
资源类型范围 | 否 |
|
|
地域范围 | 否 |
|
|
资源组范围 | 否 |
|
|
事前拦截 | 否 |
|
|
自动修复 | 否 |
|
|
继承操作符 | 是 | 继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。 |
示例代码
{
"tags": {
"color": {
"tag_key": {
"@@operators_allowed_for_child_policies": [
"@@none"
],
"@@assign": "COLER"
},
"tag_value": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"red",
"green",
"grey"
]
},
"resource_type_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"ecs:instance"
]
},
"region_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"cn-hangzhou"
]
},
"rg_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"rg-xxxx"
]
},
"enforced_for": {
"@@operators_allowed_for_child_policies": [
"@@remove"
],
"@@assign": [
"ecs:instance"
]
},
"tag_value_correction": {
"@@operators_allowed_for_child_policies": [
"@@none"
],
"@@assign": {
"red": {
"value_type": "Tag",
"value_scope": {
"acs:rm:rgId": "rg-xx1"
}
},
"green": {
"value_type": "Tag",
"value_scope": {
"k1": "v2"
}
},
"grey": {
"value_type": "Tag",
"value_scope": {
"k111": "v222"
}
}
}
}
}
}
}
资源自动继承资源组标签
该类型策略都是以rg_inherit
开头。
元素 | 是否必选 | 说明 | 示例值 |
策略键 | 是 | 策略键用于唯一标识标签策略内容,策略键使用小写。一个标签策略中可以定义多个策略键。策略键与标签键在忽略大小写时取值相同。 |
|
标签键 | 是 |
|
|
资源类型范围 | 否 |
|
|
地域范围 | 否 |
|
|
资源组范围 | 否 |
|
|
继承操作符 | 是 | 继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。 |
示例代码
{
"rg_inherit": {
"color": {
"tag_key": {
"@@operators_allowed_for_child_policies": [
"@@none"
],
"@@assign": "COLER"
},
"resource_type_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"ecs:instance"
]
},
"region_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"cn-hangzhou"
]
},
"rg_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"rg-xxxx"
]
}
}
}
}
标签值匹配指定正则表达式
该类型策略都是以matched_tags
开头。
元素 | 是否必选 | 说明 | 示例值 |
策略键 | 是 | 策略键用于唯一标识标签策略内容,策略键使用小写。一个标签策略中可以定义多个策略键。策略键与标签键在忽略大小写时取值相同。 |
|
标签键 | 是 |
|
|
标签值 | 是 |
|
|
资源类型范围 | 否 |
|
|
地域范围 | 否 |
|
|
资源组范围 | 否 |
|
|
自动修复 | 否 |
|
|
继承操作符 | 是 | 继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。 |
{
"matched_tags": {
"number": {
"tag_key": {
"@@operators_allowed_for_child_policies": [
"@@none"
],
"@@assign": "NUMBER"
},
"tag_value": {
"@@operators_allowed_for_child_policies": [
"@@assign"
],
"@@assign": [
"^[0-9]+$"
]
},
"resource_type_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"ecs:instance"
]
},
"region_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"cn-hangzhou"
]
},
"rg_scope": {
"@@operators_allowed_for_child_policies": [
"@@append"
],
"@@assign": [
"rg-xxxx"
]
},
"tag_value_correction": {
"@@operators_allowed_for_child_policies": [
"@@none"
],
"@@assign": {
"1": {
"value_type": "Tag",
"value_scope": {
"acs:rm:rgId": "rg-xx1"
}
},
"2": {
"value_type": "Tag",
"value_scope": {
"k1": "v2"
}
},
"3": {
"value_type": "Tag",
"value_scope": {
"k111": "v222"
}
}
}
}
}
}
}
继承操作符
继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。继承操作符包含值设置操作符和子策略操作控制符。
在控制台可视化快速录入模式中,您只能使用基本的@@assign
操作符。其他操作符都属于高阶功能,当您有此需求时,您可以在JSON模式中编写策略语句使用这些操作符。
值设置操作符
操作符
说明
@@assign
覆盖。
当继承的策略与当前绑定的策略冲突时,用当前策略中的配置覆盖继承策略里的配置。
同级
@@assign
策略出现冲突时,选择应用到该节点时间最早的策略结果。
@@append
追加。在继承的策略里追加该配置。仅当配置支持多值时,可以使用该操作符。
@@remove
移除。从有效策略中移除继承策略里的指定配置。仅当配置支持多值时,可以使用该操作符。
子策略操作控制符
子策略操作控制符是高阶功能,仅当企业需要控制子策略可以使用哪些值设置操作符时,才会使用。默认情况下,允许子策略使用所有值设置操作符。
操作符
说明
"@@operators_allowed_for_child_policies":["@@all"]
资源目录的子资源夹和成员可以在策略中使用任意的操作符。默认情况下,允许子策略使用所有的值设置操作符。
"@@operators_allowed_for_child_policies":["@@assign"
资源目录的子资源夹和成员可以在策略中使用指定的操作符。您可以指定一个或多个值设置操作符。
"@@operators_allowed_for_child_policies":["@@none"]
不允许资源目录的子资源夹和成员在策略中使用操作符。通过这种方式,可以对父策略中的配置实现锁定,即子资源夹和成员不能通过操作符对父策略进行任何修改。