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

语法结构

标签策略支持JSON格式,遵从JSON标准语法。如下将以一个简单的标签策略为例,为您介绍标签策略的语法结构。

{
    "tags": {
        "CostCenter": {
            "tag_key": {
                "@@assign": "CostCenter"
            },
            "tag_value": {
                "@@assign": [
                    "*"
                ]
            },
            "enforced_for": {
                "@@assign": [
                    "ecs:instance"
                ]
            }
        },
        "owner": {
            "tag_key": {
                "@@assign": "owner"
            },
            "tag_value": {
                "@@assign": [
                    "*"
                ]
            },
            "enforced_for": {
                "@@assign": [
                    "ecs:instance"
                ]
            }
        }
    }
}

以上策略表示所有ECS实例都需要绑定成本标签CostCenter和资源所有者标签owner。标签策略包含的元素如下表所示。

元素 说明 是否必选
标签 标签策略都是以tags开头。
策略键 策略键用于唯一标识标签策略内容,策略键区分大小写。一个标签策略中可以定义多个策略键。策略键与标签键取值相同。

本示例中,策略键分别为CostCenterowner

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

本示例中,标签键分别为CostCenterowner

标签值 tag_value用来定义符合规范的标签值列表。 如果没有定义tag_value,则表示任意标签值或没有标签值都是合规的。您也可以使用通配符星号(*)表示任意标签值。

本示例中,tag_value值为*,表示当ECS实例绑定标签键CostCenterowner时,对应的标签值取任意值都是合规的。

强制执行 enforced_for用来阻止标签的不合规操作。

本示例中,要求创建ECS实例的时候必须绑定CostCenterowner标签键,否则ECS实例将创建失败。

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

本示例中,使用操作符@@assign指定tag_keytag_valueenforced_for的值。

继承操作符

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

说明 在控制台可视化快速录入模式中,您只能使用基本的@@assign操作符。其他操作符都属于高阶功能,当您有此需求时,您可以在JSON模式中编写策略语句使用这些操作符。
  • 值设置操作符
    操作符 说明
    @@assign 覆盖。当继承的策略与当前绑定的策略冲突时,用指定的配置覆盖继承策略里的配置。
    @@append 追加。在继承的策略里追加该配置。仅当配置支持多值时,可以使用该操作符。
    @@remove 移除。从有效策略中移除继承策略里的指定配置。仅当配置支持多值时,可以使用该操作符。
  • 子策略操作控制符

    子策略操作控制符是高阶功能,仅当企业需要控制子策略可以使用哪些值设置操作符时,才会使用。默认情况下,允许子策略使用所有值设置操作符。

    操作符 说明
    "@@operators_allowed_for_child_policies":["@@all"] 资源目录的子资源夹和成员可以在策略中使用任意的操作符。默认情况下,允许子策略使用所有的值设置操作符。
    "@@operators_allowed_for_child_policies":["@@assign" 资源目录的子资源夹和成员可以在策略中使用指定的操作符。您可以指定一个或多个值设置操作符。
    "@@operators_allowed_for_child_policies":["@@none"] 不允许资源目录的子资源夹和成员在策略中使用操作符。通过这种方式,可以对父策略中的配置实现锁定,即子资源夹和成员不能通过操作符对父策略进行任何修改。