本文為您介紹標簽策略的語法,包含標簽策略語法結構和繼承操作符。
語法結構
標簽策略支持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"]
不允許資源目錄的子資源夾和成員在策略中使用操作符。通過這種方式,可以對父策略中的配置實現鎖定,即子資源夾和成員不能通過操作符對父策略進行任何修改。