标签策略 policy 是由若干个策略子语句构成。每条策略子语句包括策略键 policy_key、标签键 tag_key、标签值 tag_value以及生效范围等多个元素。
语法格式
策略语法以 JSON 格式为基础。创建或更新的策略不满足 JSON 格式时,将无法提交成功也无法生效,所以用户必须要确保 JSON 格式正确。
语法约定
基本的标签策略语法,以标签值的取值方式区分如下:
{"tags": {"principal负责人": {"tag_key": {"@@assign": "principal负责人"},"tag_value": {"@@assign": ["value姓名1"]},"resource_type_scope":{"@@assign": ["ecs:instance","ecs:disk"]},"detection":"on",//检测是系统默认启用功能,将按照指定资源指定标签键检测标签值是否合规默认开启,在json中默认不显示"correction": {"@@assign": "on"},//自动修复。指定1个值时可以开启,但多个指定值无法自动修复"auto_assign":{"@@assign":"on"},//自动赋值-标签键"enforced_for": { "@@assign": [ "*"] }, //强制执行。当值不为"value姓名1"则拦截、不允许绑定其他值"auto_assign_value": { "@@assign": "on" } //自动赋值-标签值}}}
{"tags": {"principal负责人": {"tag_key": {"@@assign": "principal负责人"},"tag_value_dynamic": {"@@assign": "on"},//开启动态值,取值以子用户在访问管理中绑定的同名标签键的值为准"resource_type_scope":{"@@assign": ["ecs:instance","ecs:disk"]},"detection":"on",//检测是系统默认启用功能,将按照指定资源指定标签键检测标签值是否合规默认开启,在json中默认不显示"correction": {"@@assign": "on"},//自动修复,动态值也只有一个值,可开启自动修复"auto_assign":{"@@assign":"on"},//自动赋值-标签键"enforced_for": { "@@assign": [ "*"] }, //强制执行。当值不为"value姓名1"则拦截、不允许绑定其他值"auto_assign_value": { "@@assign": "on" } //自动赋值-标签值}}}
语法中的元素
元素 | 是否必填 | 使用说明 | 对应到示例中的含义 |
tags | 是 | 标签策略始终以 tags 作为开头、位于策略的第一行,固定值 | tags 固定值 |
policy_key | 是 | 策略键。作为唯一标识策略语句的策略键,与标签键取值相同。一个标签策略中可以定义多个策略键。区分大小写 | 将 principal负责人 作为策略键 |
tag_key | 是 | 标签键。作为标识符合要求的标签键,与策略键取值相同。一个标签策略中可定义多个标签键。区分大小写 | 将 principal负责人 作为标签键 |
tag_value | 是 | 标签值。作为标签键符合要求的标签值 | 将 value姓名1 分配给标签值 ,principal负责人 作为允许值 |
tag_value_dynamic | 否 | 标签值是否使用动态值。如开启,则需要保障子用户已绑定同名标签键,将以对应值为准。 | on 将动态取该子用户的同名标签值 |
resource_type_scope | 是 | 资源类型范围。作为标签键值指定的生效范围 | 将限定生效范围为
ecs:instance,ecs:disk |
detection | 是 | 系统默认开启 | on 将标签键值生效的资源范围下的检测功能开启 |
correction | 否 | 是否开启自动修复。作为标签键值是否需自动修复的开关 | on 将标签键值生效的资源范围下的自动修复功能开启 |
auto_assign | 否 | 是否开启自动赋值。表示标签键是否需要默认展示在编辑标签的位置 | on 将标签键生效的资源范围下的自动赋值功能开启 |
auto_assign_value | 否 | 是否开启自动赋值。表示标签值是否需要默认展示在编辑标签的位置 | on 将标签值生效的资源范围下的自动赋值功能开启 |
enforced_for | 否 | 是否开启强制执行。表示对于不符合要求的标签键值是否需要拦截绑定 | * 将标签键值所有的资源的强制执行功能开启 |
策略长度限制
语法的生效规则
生效对象
您可以将标签策略绑定到多个用户实体对象上(主账号、主账号下的子用户),但它只会对所绑定的用户生效。
当您将标签策略绑定到主账号时,则只会影响该主账号。
当您将标签策略绑定到子用户时,则只会影响该子用户。
生效时间
生效对象在操作资源标签时,将会按照标签策略实时检测对应资源是否绑定对应标签键值。此过程时间延迟将在10S 以内。
生效优先级
您可以给一个用户实体绑定多个标签策略,但最终会将多个标签策略合并为一个有效策略。合并规则如下:
1. 如果策略键不重复,则按多个策略键执行,但有效策略中全部策略键不会超过50个。如果超过,则从第51个开始不会被合并。
2. 如果策略键重复,且每个策略键约定的标签值规则不同,则以最早绑定的标签策略为准。例如 A 策略要求 key=1 时,需要 value=1,但 B 策略要求 key=1 时,需要 value=2,但 A 策略先绑定到用户,则以 A 策略为准。
生效符号
运算符用来控制标签策略中的运算规则。这些运算符目前仅支持赋值运算符。
运算符 | 是否必填 | 使用说明 | 对应到示例中的含义 |
@@assign | 是 | 指定。用于将指定内容分配给指定元素 | 指定策略键、标签键为 principal负责人 指定标签值为 value姓名1 指定资源类型范围为 ecs:instance,ecs:disk 指定是否自动修复为 on |