このトピックでは、ポリシーの継承と有効なポリシーの定義、タグポリシーの継承ロジック、および有効なポリシーの計算方法について説明します。 また、このトピックでは、タグポリシーの継承の有効化の方法および、有効なポリシーの取得方法の例についても説明します。
用語
期間 | 説明 |
ポリシーの継承 | タグポリシーは、リソースディレクトリ内のフォルダーレベルに基づいて、親フォルダーからサブフォルダーに継承されます。 リソースディレクトリ内のフォルダーにアタッチされたタグポリシーは、フォルダー内のメンバーとそのサブフォルダーに継承されます。 |
親ポリシー | 親ポリシーは、リソースディレクトリ内における上位レベルのオブジェクトにアタッチされたポリシーを指します。 |
子ポリシー | 子ポリシーは、リソースディレクトリ内における下位レベルのオブジェクトにアタッチされたポリシーを指します。 |
有効なポリシー | 有効なポリシーは、メンバーにアタッチされたタグポリシーと、メンバーに継承されたタグポリシーを集約することで得られます。 有効なポリシーは、メンバーに対して実際に実行されるポリシーです。 |
継承演算子 | 継承演算子は、メンバーにアタッチされたタグポリシーと、メンバーによって継承されたタグポリシーの集計に使われます。 詳細については、「継承演算子」をご参照ください。 |
タグポリシーの継承方法および有効なポリシーの取得方法
シングルアカウントモードでのタグポリシー
ログオンアカウントに複数のタグポリシーをアタッチする場合、タグポリシーはタグポリシーで定義されているタグキーに基づいて集計されます。 タグポリシーで定義されたタグキーが互いに競合する場合、最初にアタッチされたタグポリシーがアカウントの有効なポリシーとして使われます。
リソースディレクトリモードのタグポリシー
リソースディレクトリの管理アカウントを使用して、次のオブジェクトのいずれかにタグポリシーをアタッチできます。
ルートフォルダー: タグポリシーがルートフォルダーにアタッチされている場合、リソースディレクトリ内のすべてのメンバーがタグポリシーを継承します。
特定のフォルダー:タグポリシーが特定のフォルダーにアタッチされている場合、タグポリシーは、フォルダーおよびサブフォルダー内のすべてのメンバーに継承されます。
特定のメンバー:タグポリシーが特定のメンバーにアタッチされている場合、タグポリシーはそのメンバーに対してのみ適用されます。
例:
この例では、タグキーがenv
である環境タグとタグキーがproject
であるプロジェクトタグを企業のリソースに追加する必要があります。 この例では、タグポリシーの継承ロジックと、有効なポリシーの計算方法が示されています。
PolicyAという名前のタグポリシーを、エンタープライズのリソースディレクトリのRootフォルダーにアタッチします。
以下のコードは、PolicyA のドキュメントです。
{ "tags": { "env": { "tag_key": { "@@assign": "env" }, "tag_value": { "@@assign": [ "Production", "Test" ] } }, "Project": { "tag_key": { "@@assign": "Project" } } } }
PolicyAは、タグキー
env
とProject
の規則を定義し、リソースディレクトリのRootフォルダーにアタッチされます。 PolicyA が Root フォルダーにアタッチされると、以下の状況が発生します。PolicyAは、リソースディレクトリ内のすべてのメンバーに対して有効になります。 これは、タグキーが
env
およびProject
である準拠タグをメンバー内のすべてのリソースに追加する必要があることを示します。 タグキーenv
の有効なタグ値は、Production
とTest
です。PolicyB という名前のタグポリシーを、Root フォルダー内の特定のメンバーにアタッチします。
以下のコードは、PolicyB のドキュメントです。
{ "tags": { "env": { "tag_value": { "@@append": [ "Development" ] } }, "Project": { "tag_value": { "@@assign": [ "A", "B" ] } } } }
PolicyBは、
Development
がタグキーenv
のタグ値として追加され、タグキーProject
の有効なタグ値がa
とB
であることを定義しています。特定のメンバーの有効なポリシーを計算します。
PolicyB は特定のメンバーにアタッチされ、メンバーは PolicyA を継承します。 この場合、メンバーに対する有効なポリシーは、PolicyA と PolicyB を集約することで得られます。 これは、PolicyAとPolicyBの両方で定義されたタグ値が準拠していることを示します。 次の表に、タグキー
env
およびProject
の有効なタグ値を示します。タグキー
タグ値
env
制作
テスト
開発
プロジェクト
A
B
以下のコードは、タグポリシーのドキュメントです。
{ "tags": { "env": { "tag_value": [ "Production", "Test", "Development" ] , "tag_key": "env" }, "Project": { "tag_value": [ "A", "B" ], "tag_key": "Project" } } }