本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
標籤政策語法和範例
此頁面說明標籤政策語法並提供範例。
標籤政策語法
標籤政策是根據 JSON
下列標籤政策顯示基本的標籤政策語法:
{ "tags": { "costcenter": { "tag_key": { "@@assign": "CostCenter" }, "tag_value": { "@@assign": [ "100", "200" ] }, "enforced_for": { "@@assign": [ "secretsmanager:*" ] } } } }
標籤政策語法包括下列元件:
-
tags
欄索引鍵名稱。標籤政策一律以此固定索引鍵名稱開頭。這是上面範例政策的第一行。 -
唯一識別政策陳述式的政策索引鍵。必須符合「標籤鍵」的值 (大小寫處理除外)。與標籤鍵 (於下方說明) 不同,政策值不區分大小寫。
在此範例中,
costcenter
是政策索引鍵。 -
至少有一個標籤鍵,指定允許的標籤鍵含有您希望資源符合的大寫。如果沒有定義大小寫處理,則小寫為標籤鍵的預設大小寫處理。標籤鍵的值必須符合政策鍵的值。但由於政策索引鍵值不區分大小寫,大寫可能有所不同。
在此範例中,
CostCenter
是標籤鍵。這是符合標籤政策規範的大小寫處理。此標籤鍵具有替代大小寫處理的資源,不符合標籤政策規範。您可以在標籤政策中定義多個標籤鍵。
-
(選用) 標籤鍵可接受的一或多個標籤值的清單。如果標籤政策未指定標籤鍵的標籤值,則任何值 (包括完全沒有值) 都視為合規。
在此範例中,
CostCenter
標籤鍵的可接受值為100
和200
。 -
(選用)
enforced_for
選項,指出是否防止對指定的服務和資源執行任何不合規的標記操作。在主控台,這是視覺化編輯器中用於建立標籤政策的 Prevent noncompliant operations for this tag (防止對此標籤執行不合規操作) 選項。此選項的預設設定為 null。範例標籤原則指定在所有 AWS Secrets Manager 資源上傳遞的
CostCenter
標籤必須符合此原則。警告
只有在您使用標籤政策很有經驗時,才應該變更此選項的預設值。否則,可能會使組織帳戶中的使用者無法建立他們所需的資源。
-
運算子,指定標籤政策如何與組織樹狀結構中的其他標籤政策合併,以建立帳戶的有效的標籤政策。此範例中使用
@@assign
,將字串指定給tag_key
、tag_value
和enforced_for
。如需運算子的詳細資訊,請參閱繼承運算子。 -
– 您可以在標籤值和
enforced_for
欄位中使用*
萬用字元︰-
每個標籤值中只能使用一個萬用字元。例如,允許
*@example.com
,但不允許*@*.com
。 -
對於
enforced_for
,您可以對某些服務搭配使用<service>:*
,以對該服務的所有資源啟用強制執行。如需支援enforced_for
的服務和資源類型清單,請參閱支援強制執行的服務和資源類型。萬用字元無法用來指定所有服務,也無法用來指定所有服務的某些資源。
-
標籤政策範例
接下來的範例標籤政策僅供參考。
注意
範例 1:定義整個組織的標籤鍵大小寫
下列範例顯示的標籤政策只定義兩個標籤鍵,以及您希望組織中的帳戶標準化所依據的大小寫。
政策 A – 組織根標籤政策
{ "tags": { "CostCenter": { "tag_key": { "@@assign": "CostCenter", "@@operators_allowed_for_child_policies": ["@@none"] } }, "Project": { "tag_key": { "@@assign": "Project", "@@operators_allowed_for_child_policies": ["@@none"] } } } }
此標籤政策定義兩個標籤鍵:CostCenter
和 Project
。將此標籤政策連接至組織根,會產生下列影響:
-
組織中的所有帳戶都會繼承此標籤政策。
-
組織中所有帳戶都必須使用已定義的大小寫處理以符合規範。具有
CostCenter
和Project
標籤的資源符合規範。標籤鍵具有替代大小寫處理的資源 (例如costcenter
、Costcenter
或COSTCENTER
) 不符合規範。 -
@@operators_allowed_for_child_policies": ["@@none"]
行會封鎖標籤鍵。在組織樹狀結構中較下方連接的標籤政策 (子政策),不能使用值-設定運算子來變更標籤鍵 (包括其大小寫處理)。 -
與所有標籤政策一樣,對於未標記的資源或標籤政策中未定義的標籤,不會評估是否符合標籤政策規範。
AWS 建議您使用此範例做為您要使用的標籤金鑰建立類似標籤原則的指南。將此標籤政策連接至組織根目錄。然後,建立類似於下一個範例的標籤政策,只為已定義的標籤鍵定義可接受的值。
下一步:定義值
假設您已將先前的標籤政策連接至組織根。接下來,您可以建立如下所示的標籤政策,並連接至帳戶。此政策定義 CostCenter
和 Project
標籤鍵可接受的值。
政策 B – 帳戶標籤政策
{ "tags": { "CostCenter": { "tag_value": { "@@assign": [ "Production", "Test" ] } }, "Project": { "tag_value": { "@@assign": [ "A", "B" ] } } } }
如果您將政策 A 連接至組織根,將政策 B 連接至帳戶,則這些政策合併起來,為帳戶建立下列有效的標籤政策:
政策 A + 政策 B = 帳戶的有效標籤政策
{ "tags": { "Project": { "tag_value": [ "A", "B" ], "tag_key": "Project" }, "CostCenter": { "tag_value": [ "Production", "Test" ], "tag_key": "CostCenter" } } }
如需政策繼承的詳細資訊,包括繼承運算子如何運作的範例,以及有效標籤政策的範例,請參閱理解管理政策繼承。
範例 2:禁止使用標籤鍵
若要禁止使用標籤鍵,您可以將如下所示的標籤政策連接至組織實體。
此範例政策指定 Color
標籤鍵不接受任何值。也會指定在子標籤政策中不允許運算子。因此,在受影響帳號中,資源上的任何 Color
標籤都會被系統視為不相容。然而,enforced_for
選項實際上會阻止受影響帳戶僅標記使用 Color
標籤的 Amazon DynamoDB 資料表。
{ "tags": { "Color": { "tag_key": { "@@operators_allowed_for_child_policies": [ "@@none" ], "@@assign": "Color" }, "tag_value": { "@@operators_allowed_for_child_policies": [ "@@none" ], "@@assign": [] }, "enforced_for": { "@@assign": [ "dynamodb:table" ] } } } }