このトピックでは、タグポリシーの構文と、サポートされている継承演算子について説明します。
構文
タグポリシーでは 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
この演算子は、上書き操作を示します。
オブジェクトにアタッチされたタグポリシーの設定にこの演算子を指定し、その設定がオブジェクトに継承されるタグポリシーの関連設定と矛盾する場合、継承されたタグポリシーの関連設定は、アタッチされたタグポリシーの設定で上書きされます。
オブジェクトにアタッチされたタグポリシーの
@ @ assign
の設定が競合する場合は、最初にアタッチされたタグポリシーの設定が使用されます。
@ @ append
この演算子は追加操作を示しています。 オブジェクトにアタッチされたタグポリシーの設定にこの演算子を指定した場合、その設定はオブジェクトに継承されたタグポリシーに追加されます。 この演算子は、オブジェクトにアタッチされたタグポリシーでタグキーに複数のタグ値を指定する場合にのみ使用できます。
@ @ remove
この演算子は、削除操作を示しています。 オブジェクトにアタッチされたタグポリシーの設定にこの演算子を指定した場合、関連する設定はオブジェクトに継承されたタグポリシーから削除されます。 この演算子は、オブジェクトにアタッチされたタグポリシーでタグキーに複数のタグ値を指定する場合にのみ使用できます。
子制御演算子
子制御演算子は、高度な演算子です。 子ポリシーで使用できる値設定演算子を制限する場合は、子制御演算子を使用できます。 子ポリシーでは、値を設定する演算子はデフォルトですべて許可されています。
演算子
説明
"@ @ operators_allowed_for_child_policies":["@ @ all"]
フォルダーにアタッチされたタグポリシーでこの演算子を指定すると、フォルダーのサブフォルダーおよびフォルダー内のメンバーにアタッチされたポリシーで、任意の値設定の演算子を使用できます。 デフォルトでは、親ポリシーで子制御演算子が指定されていない場合、子ポリシーでは、すべての値設定の演算子が許可されます。
"@ @ operators_allowed_for_child_policies":["@ @ assign"
フォルダーにアタッチされたタグポリシーでこの演算子を指定すると、フォルダーのサブフォルダーおよびフォルダー内のメンバーにアタッチされたポリシーで、@@assign の値設定の演算子を使用できます。 この演算子では、1 つまたは複数の値設定の演算子を指定できます。
"@ @ operators_allowed_for_child_policies":["@ @ none"]
フォルダーにアタッチされたタグポリシーでこの演算子を指定した場合、フォルダーのサブフォルダーおよびフォルダー内のメンバーにアタッチされたポリシーで、値設定の演算子を使用することはできません。 この演算子を使用して、親ポリシーで定義されている設定をロックできます。 このように、子ポリシーは有効ポリシーの計算中に有効にならず、親ポリシーが有効ポリシーとして使用されます。