标签策略语法

本文为您介绍标签策略的语法,包含标签策略语法结构和继承操作符。

语法结构

标签策略支持JSON格式,遵从JSON标准语法。不同场景标签策略的语法结构略有不同。

资源绑定指定标签值

该类型标签策略都是以tags开头。

元素

是否必选

说明

示例值

策略键

策略键用于唯一标识标签策略内容,策略键使用小写。一个标签策略中可以定义多个策略键。策略键与标签键在忽略大小写时取值相同。

color

标签键

tag_key用来定义符合规范的标签键,标签键区分大小写。

COLER

标签值

tag_value用来定义符合规范的标签值列表。您也可以使用通配符星号(*)表示任意标签值。

redgreengrey

资源类型范围

resource_type_scope用来定义标签策略生效的资源类型范围。如果没有定义该字段,那么会对所有支持标签策略的资源类型生效。

ecs:instance

地域范围

region_scope用来定义标签策略生效的地域范围。如果没有定义该字段,那么会对所有地域生效。

cn-hangzhou

资源组范围

rg_scope用来定义策略生效的资源组范围。如果没有定义该字段,那么会对所有资源组生效。

rg-xxxx

事前拦截

enforced_for用来定义事前拦截的资源类型范围。如果没有定义该字段,那么将不会进行事前拦截。

ecs:instance

自动修复

tag_value_correction用来配置不合规资源的自动修复。如果没有定义该字段,那么将不会进行自动修复。

{
	"red": {
		"value_type": "Tag",
		"value_scope": {
			"acs:rm:rgId": "rg-xx1"
		}
	}
}

继承操作符

继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。

继承操作符

示例代码

{
    "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开头。

元素

是否必选

说明

示例值

策略键

策略键用于唯一标识标签策略内容,策略键使用小写。一个标签策略中可以定义多个策略键。策略键与标签键在忽略大小写时取值相同。

color

标签键

tag_key用来定义符合规范的标签键,标签键区分大小写。

COLER

资源类型范围

resource_type_scope用来定义标签策略生效的资源类型范围。如果没有定义该字段,那么会对所有支持标签策略的资源类型生效。

ecs:instance

地域范围

region_scope用来定义标签策略生效的地域范围。如果没有定义该字段,那么会对所有地域生效。

cn-hangzhou

资源组范围

rg_scope用来定义策略生效的资源组范围。如果没有定义该字段,那么会对所有资源组生效。

rg-xxxx

继承操作符

继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。

继承操作符

示例代码

{
    "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开头。

元素

是否必选

说明

示例值

策略键

策略键用于唯一标识标签策略内容,策略键使用小写。一个标签策略中可以定义多个策略键。策略键与标签键在忽略大小写时取值相同。

number

标签键

tag_key用来定义符合规范的标签键,标签键区分大小写。

NUMBER

标签值

tag_value用来定义标签值满足的正则表达式。

^[0-9]+$

资源类型范围

resource_type_scope用来定义标签策略生效的资源类型范围。如果没有定义该字段,那么会对所有支持标签策略的资源类型生效。

ecs:instance

地域范围

region_scope用来定义标签策略生效的地域范围。如果没有定义该字段,那么会对所有地域生效。

cn-hangzhou

资源组范围

rg_scope用来定义策略生效的资源组范围。如果没有定义该字段,那么会对所有资源组生效。

rg-xxxx

自动修复

tag_value_correction用来配置不合规资源的自动修复。如果没有定义该字段,那么将不会进行自动修复。

{
	"1": {
		"value_type": "Tag",
		"value_scope": {
			"acs:rm:rgId": "rg-xx1"
		}
	}
}

继承操作符

继承操作符用于控制继承的标签策略和当前绑定的标签策略如何进行聚合,进而计算出最终的有效策略。

继承操作符

{
    "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"]

    不允许资源目录的子资源夹和成员在策略中使用操作符。通过这种方式,可以对父策略中的配置实现锁定,即子资源夹和成员不能通过操作符对父策略进行任何修改。

相关文档