標籤政策語法和範例 - AWS Organizations

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

標籤政策語法和範例

此頁面說明標籤政策語法並提供範例。

標籤政策語法

標籤政策是根據 JSON 規則建構的純文字檔。標籤政策的語法遵循管理政策類型的語法。如需該語法的完整討論,請參閱理解管理政策繼承。本主題著重於以該一般語法滿足標籤政策類型的特定需求。

下列標籤政策顯示基本的標籤政策語法:

{ "tags": { "costcenter": { "tag_key": { "@@assign": "CostCenter" }, "tag_value": { "@@assign": [ "100", "200" ] }, "enforced_for": { "@@assign": [ "secretsmanager:*" ] } } } }

標籤政策語法包括下列元件:

  • tags 欄索引鍵名稱。標籤政策一律以此固定索引鍵名稱開頭。這是上面範例政策的第一行。

  • 唯一識別政策陳述式的政策索引鍵。必須符合「標籤鍵」的值 (大小寫處理除外)。與標籤鍵 (於下方說明) 不同,政策值不區分大小寫。

    在此範例中,costcenter 是政策索引鍵。

  • 至少有一個標籤鍵,指定允許的標籤鍵含有您希望資源符合的大寫。如果沒有定義大小寫處理,則小寫為標籤鍵的預設大小寫處理。標籤鍵的值必須符合政策鍵的值。但由於政策索引鍵值不區分大小寫,大寫可能有所不同。

    在此範例中,CostCenter 是標籤鍵。這是符合標籤政策規範的大小寫處理。此標籤鍵具有替代大小寫處理的資源,不符合標籤政策規範。

    您可以在標籤政策中定義多個標籤鍵。

  • (選用) 標籤鍵可接受的一或多個標籤值的清單。如果標籤政策未指定標籤鍵的標籤值,則任何值 (包括完全沒有值) 都視為合規。

    在此範例中,CostCenter 標籤鍵的可接受值為 100200

  • (選用) enforced_for 選項,指出是否防止對指定的服務和資源執行任何不合規的標記操作。在主控台,這是視覺化編輯器中用於建立標籤政策的 Prevent noncompliant operations for this tag (防止對此標籤執行不合規操作) 選項。此選項的預設設定為 null。

    範例標籤原則指定在所有 AWS Secrets Manager 資源上傳遞的CostCenter標籤必須符合此原則。

    警告

    只有在您使用標籤政策很有經驗時,才應該變更此選項的預設值。否則,可能會使組織帳戶中的使用者無法建立他們所需的資源。

  • 運算子,指定標籤政策如何與組織樹狀結構中的其他標籤政策合併,以建立帳戶的有效的標籤政策。此範例中使用 @@assign,將字串指定給 tag_keytag_valueenforced_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"] } } } }

此標籤政策定義兩個標籤鍵:CostCenterProject。將此標籤政策連接至組織根,會產生下列影響:

  • 組織中的所有帳戶都會繼承此標籤政策。

  • 組織中所有帳戶都必須使用已定義的大小寫處理以符合規範。具有 CostCenterProject 標籤的資源符合規範。標籤鍵具有替代大小寫處理的資源 (例如 costcenterCostcenterCOSTCENTER) 不符合規範。

  • @@operators_allowed_for_child_policies": ["@@none"] 行會封鎖標籤鍵。在組織樹狀結構中較下方連接的標籤政策 (子政策),不能使用值-設定運算子來變更標籤鍵 (包括其大小寫處理)。

  • 與所有標籤政策一樣,對於未標記的資源或標籤政策中未定義的標籤,不會評估是否符合標籤政策規範。

AWS 建議您使用此範例做為您要使用的標籤金鑰建立類似標籤原則的指南。將此標籤政策連接至組織根目錄。然後,建立類似於下一個範例的標籤政策,只為已定義的標籤鍵定義可接受的值。

下一步:定義值

假設您已將先前的標籤政策連接至組織根。接下來,您可以建立如下所示的標籤政策,並連接至帳戶。此政策定義 CostCenterProject 標籤鍵可接受的值。

政策 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" ] } } } }