全部產品
Search
文件中心

Resource Management:標籤策略文法

更新時間:Jun 30, 2024

本文為您介紹標籤策略的文法,包含標籤策略文法結構和繼承操作符。

文法結構

標籤策略支援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"
                ]
            }
        }
    }
}

標籤值匹配指定Regex

該類型策略都是以matched_tags開頭。

元素

是否必選

說明

樣本值

策略鍵

策略鍵用於唯一標識標籤策略內容,策略鍵使用小寫。一個標籤策略中可以定義多個策略鍵。策略鍵與標籤鍵在忽略大小寫時取值相同。

number

標籤鍵

tag_key用來定義符合規範的標籤鍵,標籤鍵區分大小寫。

NUMBER

標籤值

tag_value用來定義標籤值滿足的Regex。

^[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"]

    不允許資來源目錄的子資源夾和成員在策略中使用操作符。通過這種方式,可以對父策略中的配置實現鎖定,即子資源夾和成員不能通過操作符對父策略進行任何修改。

相關文檔