翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
タグポリシーの構文と例
このページでは、タグポリシーの構文について説明し、例を示します。
タグポリシー構文
タグポリシーは、JSON
次のタグポリシーは、基本的なタグポリシーの構文を示しています。
{ "tags": { "costcenter": { "tag_key": { "@@assign": "CostCenter" }, "tag_value": { "@@assign": [ "100", "200" ] }, "enforced_for": { "@@assign": [ "secretsmanager:*" ] } } } }
タグポリシー構文には、次の要素が含まれます。
-
tags
フィールドキーの名前。タグポリシーは、常にこの固定キー名で始まります。上記のポリシーの例では一番上の行です。 -
ポリシーステートメントを一意に識別するポリシーキー。大文字小文字の処理を除き、タグキーの値と一致する必要があります。タグキー (次に説明します) とは異なり、ポリシー値では大文字と小文字が区別されません。
この例では、
costcenter
がポリシーキーです。 -
リソースを準拠させる大文字小文字表記を持つ許容タグキーを指定するタグキーを 1 つ以上指定します。大文字小文字の処理が定義されていない場合、タグキーのデフォルトは小文字です。タグキーの値は、ポリシーキーの値と一致する必要があります。ただし、ポリシーのキーバリューでは大文字と小文字が区別されないため、大文字と小文字が異なる可能性があります。
この例では、
CostCenter
がタグキーです。これは、タグポリシーに準拠するために必要な大文字と小文字の処理です。このタグキーに対して大文字と小文字の処理が異なるリソースは、タグポリシーに準拠していません。タグポリシーでは、複数のタグキーを定義できます。
-
(オプション) タグキーに対して受け入れ可能な 1 つ以上のタグ値のリスト。タグポリシーがタグキーのタグ値を指定しない場合、すべての値 (値なしの場合を含む) が準拠していると見なされます。
この例では、
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
を使用できます。-
タグ値ごとに、ワイルドカードを 1 つのみ使用できます。例えば、
*@example.com
は許可されますが、*@*.com
は許可されません。 -
enforced_for
では、一部のサービスで<service>:*
を使用して、該当するサービスのすべてのリソースに対して強制を適用できます。enforced_for
がサポートするサービスとリソースタイプのリストについては、「強制をサポートするサービスとリソースタイプ」を参照してください。ワイルドカードを使用してすべてのサービスを指定したり、すべてのサービスのリソースを指定したりすることはできません。
-
タグポリシーの例
次のタグポリシーの例は、情報提供のみを目的としています。
注記
組織でこれらのタグポリシーの例を使用する前に、次の点に注意してください。
例 1: 組織全体のタグキーの大文字小文字取り扱いの定義
次の例は、組織内のアカウントに標準化させる 2 つのタグキーと大文字小文字のみを定義するタグポリシーを示しています。
ポリシー 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
という 2 つのタグキーを定義します。このタグポリシーを組織のルートにアタッチすると、次の効果があります。
-
組織内のすべてのアカウントは、このタグポリシーを継承します。
-
組織内のすべてのアカウントは、準拠のために、定義された大文字と小文字の処理を使用する必要があります。
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" ] } } } }