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