タグ・デフォルトの管理

このトピックでは、作成時にリソースに自動的に適用されるタグを指定する方法について説明します。

必須IAMポリシー

管理者グループに属している場合は、タグのデフォルトおよびタグ・ネームスペースの管理に必要なアクセス権があります。この機能の特定のポリシー情報については、タグのデフォルトの作業に必要な権限を参照してください。

ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。タグ付けまたはその他のIAMコンポーネントのポリシーの書込みの詳細は、アイデンティティ・ドメインのないIAMの詳細を参照してください。

タグのデフォルトの概要

タグのデフォルトを使用すると、特定のコンパートメントで、作成時にすべてのリソースに自動的に適用されるタグを指定できます。この機能により、適切なタグがリソース作成時に適用されるようにできます。リソースを作成するユーザーが、タグ・ネームスペースへのアクセス権を持つ必要はありません。次の例を参照してください。

Aliceは財務管理者であり、「Finance」という制限付きのタグ・ネームスペースにアクセスできます。Aliceはタグのデフォルトを設定し、値がW1234のFinance.CostCenterタグをすべてのリソースに適用できます。Eliは、リソースを作成できますが、Financeタグのネームスペースにアクセスできません。Eliによってリソースが作成されると、Finance.CostCenterタグはW1234の値を使用して自動的に適用されます。Eliはこのタグを変更できません。Aliceは、タグが常に適切に適用され、リソースを作成または編集するユーザーによって変更されないことを確信できます。

タグのデフォルトによって、テナンシ管理者は、ガバナンスやリソースの作成および管理が必要なユーザーに関係する、ユーザー間の安全な権限境界を作成できます。

タグのデフォルトを管理する場所

タグのデフォルトは、特定のコンパートメントに対して定義されます。コンソールのコンパートメントの詳細ページで、タグのデフォルトを管理します。

タグのデフォルトの作業に必要な権限

コンパートメントのタグのデフォルトを作成または編集するには、次の権限の組合せが付与される必要があります:

  • タグのデフォルトを追加するコンパートメント上でのmanage tag-defaultsアクセス
  • タグ・ネームスペースが存在するコンパートメント上でのuse tag-namespacesアクセス
  • テナンシへのinspect tag-namespacesアクセス

API操作に対する権限の完全なマッピングについては、アイデンティティ・ドメインのないIAMの詳細を参照してください。

たとえば、CompartmentAに一連のタグ・ネームスペースを作成したとします。TagAdminsグループにアクセス権を付与してタグのデフォルトをCompartmentAに追加するには、次のステートメントを指定してポリシーを記述します。

Allow group TagAdmins to manage tag-defaults in compartment CompartmentA
Allow group TagAdmins to use tag-namespaces in compartment CompartmentA
Allow group TagAdmins to inspect tag-namespaces in tenancy

ここで、TagAdminsが、CompartmentZに存在するタグ・ネームスペースを使用して、タグのデフォルトをCompartmentAに作成できるようにするものとします。TagAdminsがCompartmentZのタグ・ネームスペースを使用できるようにするステートメントを追加します。

Allow group TagAdmins to use tag-namespaces in compartment CompartmentZ

TagAdminsがCompartmentCにタグのデフォルトを作成すると、CompartmentAまたはCompartmentZにあるタグ・ネームスペースを使用できるようになります。

タグのデフォルトの制限

タグのデフォルトはコンパートメントごとに定義できます。

ノート

タグ・キー定義を削除しても、そのタグ・キー定義に基づく既存のタグのデフォルトはコンパートメントから削除されません。コンパートメント内のタグ・デフォルトを削除しないかぎり、タグのデフォルトは、コンパートメント当たり20個というタグ・デフォルトにカウントされます。

タグの制限は、タグの制限を参照してください。

タグのデフォルトの作業

タグのデフォルトは、定義済タグでのみ使用できます。タグのデフォルトでは、フリーフォーム・タグはサポートされていません。

最大20のタグのデフォルトは、コンパートメントごとに定義できます。

コンパートメントにタグのデフォルトが作成されると:

  • デフォルト・タグが、そのコンパートメントに作成された新しいリソースに適用されます。
  • コンパートメントの既存のリソースは、さかのぼってタグが付けられません。
  • タグのデフォルトの値を変更しても、既存の出現箇所は更新されません。

タグのデフォルトの削除

  • タグのデフォルトをコンパートメントから削除しても、既存のタグの出現箇所はリソースから削除されません。
  • タグ・キー定義を削除しても、そのタグ・キー定義に基づく既存のタグのデフォルトはコンパートメントから削除されません。コンパートメント内のタグ・デフォルトを削除しないかぎり、タグのデフォルトは、コンパートメント当たり20個というタグ・デフォルトにカウントされます。

必須のタグ値

タグのデフォルトには、タグ値を含める必要がありますが、値の適用方法を選択できます。

  • デフォルト値
  • ユーザー適用値

デフォルト値を使用する場合は、作成する必要があります。この値はすべてのリソースに適用されます。

ユーザー適用の値が必須であると指定した場合は、リソースを作成するユーザーが、リソース作成時にタグの値を入力する必要があります。ユーザーは、タグの値を入力せずにリソースを作成することはできません。

ヒント

事前定義済の値とユーザーが適用した値を使用すると、ユーザーが信頼できる値のみを適用できます。事前定義済の値の使用を参照してください。

タグ継承

デフォルトのタグは、コンパートメントに作成されたすべてのリソース(子コンパートメント、子コンパートメントに作成されたリソースを含む)に適用されます。

例:

  • CompartmentAでは、タグのデフォルトのTagAを作成します。

    CompartmentAで作成されたリソース(およびコンパートメント)には、TagAのタグが自動的に付けられます。

    • サブコンパートメントCompartmentBで、TagBというタグのデフォルトを作成します。

      CompartmentBで作成されるリソースとコンパートメントには、TagAおよびTagBのタグが自動的に付けられます。

      • サブサブコンパートメントCompartmentCで、タグのデフォルトTagCを作成します。

        CompartmentCで作成されたリソースには、TagA、TagBおよびTagCのタグが自動的に付けられます。

これを次の図の例で説明します。

この画像は、ネストされたコンパートメントとデフォルトのタグの継承方法の例を示しています

タグのデフォルトのオーバーライド

リソースの作成とタグ・ネームスペースの使用の両方に対して適切な権限を持つユーザーは、リソースの作成時にタグのデフォルトをオーバーライドできます。

例: CompartmentAには、CostCenter.Operations="42"を適用するためにタグのデフォルトが定義されています。Pradeepは、CompartmentAでインスタンスを作成し、タグ・ネームスペースを使用する権限を付与されたグループに属します。CompartmentAでインスタンスを作成し、「インスタンスの作成」ダイアログで、タグCostCenter.Operations="50"を適用します。適切な権限があるため、インスタンスを作成すると、タグのデフォルトはオーバーライドされ、インスタンスはCostCenter.Operations="50"のタグが付けられます。

リソースの作成およびタグ付けが完了した後、リソースの更新とタグ・ネームスペースの使用の両方に適切な権限を持つユーザーは、リソースの作成時に適用されたデフォルト・タグを変更できます。

タグのデフォルトおよび廃止済のタグ

廃止済のタグは新規リソースに適用できません。したがって、タグのデフォルトで指定されているタグ・ネームスペースまたはタグ・キーが廃止された場合、新しいリソースの作成時に、廃止されたタグは適用されません。ベスト・プラクティスとして、廃止されたタグを指定するタグのデフォルトを削除する必要があります。

タグのデフォルトとタグ変数

タグのデフォルトには、タグ変数を使用できます。タグ変数は、リソース作成時に動的に解決されます。たとえば、特定のコンパートメントのタグのデフォルトとしてプリンシパル名のタグ変数を入力します。

Operations.CostCenter="${iam.principal.name}"

DavisとGarciaはそれぞれそのコンパートメント内にバケットを作成します。Davisが作成するバケットには、値として自分の名前を含むデフォルトのタグが含まれますが、Garciaが作成するバケットにはその名前が付けられます。

Operations.CostCenter="Davis"

Operations.CostCenter="Garcia"

その間も、タグのデフォルトには元の変数が含まれます。タグ変数の使用を参照してください。