タグおよびタグ・ネームスペースの概念
Oracle Cloud Infrastructureでは、フリーフォーム・タグと定義済タグの2種類のタグをサポートしています。タグを作成して適用すると、タグ付けをサポートするサービスの特定のキーでタグ付けされたリソースのリストを取得できます。
必須IAMポリシー
管理者グループに属している場合は、タグ・ネームスペースおよびタグの管理に必要なアクセス権があります。
タグおよびタグ・ネームスペースの操作に固有のポリシーのサンプルは、定義済タグの作業に必要な権限を参照してください。
ポリシーを初めて使用する場合は、ポリシーの開始と共通ポリシーを参照してください。グループまたは他のIAMコンポーネントのポリシーの書込みの詳細は、アイデンティティ・ドメインのないIAMの詳細を参照してください。
タグおよびタグ・ネームスペースの概要
定義済タグはフリーフォーム・タグよりも多くの機能と制御を提供します。定義済のタグ・キーを作成する前に、最初にタグのネームスペースを設定します。タグ・ネームスペースは、タグ・キーのセットのコンテナと考えることができます。
タグ・キー定義を作成する場合は、値のタイプを選択する必要があります(これにより、タグを適用するユーザーが値をどのように追加するかも決定されます)。
- ユーザーが値を入力できるように空のままにすることができます
- ユーザーが値から選択するために値リストを作成できます
タグ・ネームスペースおよびキーに使用できる文字は、U+0020スペース(" ")およびU+002Eフル・ストップ(".")を除き、印刷可能なASCIIです。ネームスペースおよびキー名は空にできません。
機密情報を入力しないでください。
定義済のタグをリソースに適用するには、ユーザーは最初にタグ・ネームスペースを選択し、次にネームスペース内のタグ・キーを選択して、値を割り当てることができます。タグ・キーに空白値が含まれている場合は、値を入力することも、空白のままにすることもできます。タグ・キーにリストが含まれている場合は、リストから値を選択する必要があります。
定義済タグは、定義済のタグを適用できるユーザーを制御可能にするポリシーをサポートしています。タグ・ネームスペースは、ポリシーを適用できるエンティティです。管理者は、各ネームスペースを使用できるユーザーのグループを制御できます。
次の図は、定義済のタグを示しています。2つのタグ・ネームスペース、「Operations」および「HumanResources」が設定されています。タグ・キーはネームスペースで定義されます。各ネームスペース内では、タグ・キーは一意である必要があります。ただし、タグ・キー名はネームスペース全体で繰り返すことができます。この例では、両方のネームスペースに「Environment」という名前のキーが含まれています。
1つ目のインスタンスは、Operationsタグ・ネームスペースの2つのタグでタグ付けされ、Operationsの本番環境およびOperationsプロジェクトの「Alpha」に属することを示しています。2つ目のインスタンスは、HumanResourcesタグ・ネームスペースとOperationsタグ・ネームスペースの両方のタグが付いており、これはHumanResourcesの「Production」環境、HumanResourcesコスト・センター「42」およびOperationsプロジェクト「Beta」に属することを示しています。
標準タグの使用
タグの作成や管理の複雑さを軽減するために、Oracle Cloud Infrastructure Taggingには標準のタグ・ネームスペースおよびタグ定義のテンプレートが用意されています。
このテンプレートを使用して、タグ・ネームスペースを作成し、テナンシ全体で一貫性を保つことができます。
詳細は、標準タグについてを参照してください。コンソールを使用して標準タグをインポートする方法の詳細は、Standardタグのインポートを参照してください。
定義済タグの作業
ユーザーが定義されたタグをリソースに適用するには、テナンシのタグ・ネームスペースとタグ・キーを設定する必要があります。設定プロセスの中で、このネームスペースの使用に必要な権限をユーザー・グループに付与することも必要です。
"oci"と"orcl"で始まるタグ・ネームスペースおよびタグ・キー定義は内部使用のために予約されています。
定義済タグの機能は次のとおりです。
- タグ・ネームスペース、キーおよび値で構成されます。
- ユーザーが定義されたタグをリソースに適用するには、テナンシにタグ・ネームスペースおよびタグ・キー定義を設定する必要があります。
- 文字列のタグ値タイプ(ユーザーが値を追加する場合や空白のままにする場合)か、値のリスト(ユーザーが選択する必要がある値)でタグ・キーを作成できます。
- 定義済のタグを適用する場合、ユーザーはタグ・キーのリストから選択します。
- ユーザーは、リソースの作成時または既存のリソースに定義済のタグを適用できます。
- 定義済タグ・キーは、大文字と小文字を区別しません。
- 定義済タグ値は大/小文字が区別されます。たとえば、「alpha」と「Alpha」は別個の値です。
- タグ変数を使用できます。
- 事前定義済の変数のリストを作成して、タグ・キーに関連付けることができます。リソースにタグを適用するユーザーは、作成したリストから値を選択する必要があります。
タグ管理者が定義済タグを作成および管理し、ユーザーはこれらのタグをリソースに適用します。IAMポリシーを使用して、タグを作成できるタグ管理者を選択します。テナンシ内の他のすべてのユーザーには、タグを適用する権限のみを付与します。
定義済タグの作業に必要な権限
リソースに定義されたタグを適用、更新または削除するには、ユーザーに、リソースに対する権限およびそのタグ・ネームスペースを使用する権限が付与されている必要があります。
ユーザーには、リソースの定義済タグを適用、更新または削除するために、タグ・ネームスペースに対するuse
アクセス権を付与する必要があります。
タグ・ネームスペースのポリシーの例:
グループがテナンシ(またはコンパートメント)のタグ・ネームスペースを表示できるようにするには、inspect
アクセス権が必要です。
Allow group GroupA to inspect tag-namespaces in tenancy
コンソールの使用時にリソースにタグを適用するには、ユーザーに
inspect tag-namespaces in tenancy
権限が必要です。ユーザーにこの権限がない場合は、ダイアログ・メニューでタグ・ネームスペースのリストをユーザーに表示できません。タグ・ネームスペースに含まれるタグ定義の読取りをグループに許可するには、read
アクセス権が必要です。
Allow group GroupA to read tag-namespaces in tenancy
リソースに定義されたタグの適用、更新または削除をグループに許可するには、タグ・ネームスペースに対するuse
アクセス権が必要です。
Allow group GroupA to use tag-namespaces in tenancy
特定のタグ・ネームスペース(1つまたは複数)の使用を許可するには、target.tag-namespace.name
変数とともにwhere
句を使用します。例:
Allow group GroupA to use tag-namespaces in tenancy where target.tag-namespace.name='Operations'
または、複数のタグ・ネームスペースを指定するには:
Allow group GroupA to use tag-namespaces in tenancy where any {target.tag-namespace.name='Operations', target.tag-namespace.name='HumanResources'}
タグ・ネームスペースおよびその中のタグ定義を管理するには、manage
アクセス権が必要です。
Allow group GroupA to manage tag-namespaces in tenancy
タグ・ネームスペースの操作権限に加え、リソースに定義されたタグの適用または削除を行うには、リソースに対する更新権限が必要です。多くのリソースでは、更新権限がuse
動詞で付与されます。たとえば、CompartmentAでインスタンスを使用できるユーザーは、CompartmentAでインスタンスに対して定義されたタグを適用、更新または削除することもできます。
一部のリソースでは、use
動詞に更新権限は含まれていません。グループにこれらのリソースの定義済タグの適用、更新または削除を許可するが、manage
の完全な権限を付与しない場合は、manage
動詞の<RESOURCE>_UPDATE権限のみを付与するポリシー・ステートメントを追加できます。たとえば、グループNetworkUsersで、CompartmentA内のVCNで定義されたタグを使用できるようにするには、次のようなポリシーを記述します。
Allow group NetworkUsers to use vcns in compartment CompartmentA
Allow group NetworkUsers to manage vcns in compartment CompartmentA where request.permission='VCN_UDPATE'
リソースのinspect
権限は、そのリソースの定義済タグを表示する権限を付与します。たとえば、インスタンスをinspect
できるユーザーは、そのインスタンスに適用されているすべての定義済タグを表示することもできます。
リソース権限の詳細は、ポリシー参照を参照してください。
シナリオ例
会社にオペレーション部門があります。オペレーション部門内に複数のコスト・センターがあります。オペレーション部門に属するリソースに、該当するコスト・センターをタグ付けしようとしています。
- Operationsというタグ・ネームスペース定義を作成します。
- Operationsネームスペースに、CostCenterというタグ・キー定義を作成します。
AliceはすでにグループInstanceLaunchersに属しています。Aliceは、CompartmentAでインスタンスを管理できます。InstanceLaunchersグループのAliceや他のメンバーが、Operations.CostCenterタグをCompartmentA内のインスタンスに適用できるようにします。
InstanceLaunchersグループにOperationsタグ・ネームスペース(Operationsタグ・ネームスペースのみ)へのアクセス権を付与するには、次のステートメントをInstanceLaunchersポリシーに追加します:
Allow group InstanceLaunchers to use tag-namespaces in compartment CompartmentA where target.tag-namespace.name='Operations'
AliceはOperations.CostCenterタグをCompartmentAのリソースに適用できるようになりました。
コンパートメント・タグの継承
コスト分析、使用状況レポート、予算などの測定サービスにおける子コンパートメントとそのリソースは、コンパートメントに適用される定義済タグを継承します。ただし、継承されたタグと、リソースまたは子コンパートメントに直接適用されるタグの間に競合がある場合は、リソースに適用されるタグが継承されたタグより優先されます。定義済のタグをコンパートメント内のリソースに動的に適用できます。
たとえば、TagKey1=TagValuePのTenancyAというテナンシと、TagKey3=TagValueQおよびTagKey4=TagValueSのコンパートメントPがあるとします。コンパートメントPには、TagKey2=TagValueR、TagKey3=TagValueTのコンピュート・インスタンスがあります。タグ継承ロジックが適用されると、次のタグがコンピュート・インスタンスに適用されます: TagKey2=TagValueR、TagKey3=TagValueT、TagKey4=TagValueS。リソースは親コンパートメントからTagKey4=TagValueSを継承しました。ただし、コンピュート・インスタンスに適用されるTagKey3は、親コンパートメントに適用されるTagKey3値をオーバーライドします。
コスト分析で継承されたタグを使用してフィルタしたり、継承されたタグを持つ予算を作成したり、使用レポートでこのタグを表示できます。
キー定義とネームスペース定義の廃止
タグ・キー定義またはタグ・ネームスペース定義を廃止できます。
タグ・キー定義を廃止すると、それをリソースに適用できなくなります。ただし、タグは、それが適用されたリソースからは削除されません。タグはこれらのリソースのメタデータとして存在したまま、操作(リスト、ソート、レポートなど)で廃止済のタグをコールできます。
タグの廃止により、タグのコスト・トラッキングは停止されますが、タグ・キー定義でコスト・トラッキング・オプションが無効になっていない場合は、廃止済のタグは、テナンシの最大10個のコスト・トラッキング・タグにカウントされ続けます。タグ・キー定義を廃止する前にコスト・トラッキングを使用不可にしてください。タグが廃止された後でコスト・トラッキングを無効にするには、タグ・キー定義を再アクティブ化する必要があります。廃止状態のタグ・キー定義は更新できません。
タグ・キー定義とネームスペース定義の再アクティブ化
廃止したタグ・キー定義とタグ・ネームスペース定義を再アクティブ化できます。
- タグ・キーを再アクティブ化すると、リソースに適用するために再度使用できるようになります。
- タグ・ネームスペースを再アクティブ化すると、そのネームスペースに新しいタグ・キー定義を作成できます。ただし、ネームスペースで廃止されたタグ・キー定義を使用する場合は、各タグ・キー定義を明示的に再アクティブ化する必要があります。
異なるコンパートメントへのタグ・ネームスペースの移動
タグ・ネームスペースは別のコンパートメントに移動できます。タグ・ネームスペースは、移動するときにアクティブにすることも、廃止することもできます。タグ・ネームスペースを移動すると、タグ・キー定義もすべて移動されます。
この機能は、コンパートメント階層を再編成する必要がある場合、または廃止されたタグ・ネームスペースが含まれるコンパートメントを削除する必要がある場合に便利です。リソースを含むコンパートメントは削除できないことに注意してください。廃止したタグのネームスペースは、廃止されても既存のリソースです。廃止されたタグのネームスペースを別のコンパートメントに移動すると、そこに含まれている元のコンパートメントを削除できます。
タグ・ネームスペースを移動するには、両方のコンパートメントでmanage tag-namespaces
に許可されている必要があります。
手順別のコンパートメントへのタグ・ネームスペースの移動を参照してください。
タグ・キー定義およびネームスペースの削除
タグ・キー定義およびタグ・ネームスペースを削除できます。
タグ・キー定義を削除する場合は、テナンシ内のすべてのリソースからタグを削除するプロセスを開始します。これらはすぐに実行されます:
- タグがコスト・トラッキング・タグであった場合、このタグを最初に使用不可にしたかどうかにかかわらず、10個のコスト・トラッキング・タグの制限にカウントされることはありません。
- タグが動的グループとともに使用された場合、そのタグを含むルールはいずれもタグに対して評価されません。
削除アクションは非同期のため、作業リクエストを開始します。削除操作を開始すると、タグの状態が「削除中」に変わり、リソースからのタグの削除が開始されます。この処理には、タグ付けされたリソースの数およびそれらのリソースが存在するリージョンに応じて、最大48時間かかることがあります。すべてのタグが削除されると、状態は「削除済」に変わります。削除したタグを元に戻すことはできません。タグの状態が「削除済」に変わったら、同じタグ名を再び使用できます。
タグ・キー定義を削除するには、まずこれを廃止する必要があります。タグ・ネームスペースを削除するには、まずタグ・ネームスペースを廃止する必要があります。タグ・キー定義を含むタグ・ネームスペースを廃止すると、ネームスペース内のすべてのタグ・キーが廃止され、タグ・ネームスペースを削除できるようになります。