タグの概要

Google Cloud リソース階層は、リソースをツリー構造に整理する方法です。この階層は大規模なリソース管理に役立ちますが、組織構造、リージョン、ワークロード タイプ、コストセンターなど、一部のビジネス ディメンションをモデル化しているだけです。階層では複数のビジネス ディメンションを一緒にレイヤ化することはできません。

タグを使用すると、リソースのアノテーションを作成できます。場合によっては、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行えます。リソース階層全体にわたるきめ細かい管理のために、タグとポリシーの条件付き適用を使用できます。

タグとラベル

ラベルは、リソースのアノテーションを作成する別個の方法です。次の表に、タグとラベルの違いをいくつか示します。

タグ ラベル
リソース構造 タグキー、タグ値、タグ バインディングはすべて個別のリソース リソース自体ではなく、リソースのメタデータ
定義 組織レベルまたはプロジェクト レベルで定義する 各リソースによって定義される
アクセス制御 タグの管理と取り付けには、Identity and Access Management(IAM)ロールが必要 ラベルの取り付けには、サービス リソースに応じて異なる IAM のロールが必要です
取り付けの前提条件 タグがリソースに取り付け可能になる前にタグキーとタグ値を定義する必要があります 取り付けの前提条件なし
継承 タグ バインディングは、 Google Cloud 階層内のリソースの子に継承されます リソースの子には継承されない
削除の要件 タグのバインディングが存在しない場合を除き、タグを削除できない リソースからいつでも削除可能
命名の要件 タグ値タグキーの要件 ラベルの要件
Key-Value 名の長さ 最大 256 文字 最大 63 文字
許可ポリシーと拒否ポリシーのサポート タグは、許可ポリシーの条件拒否ポリシーの条件で参照できます。 許可ポリシーと拒否ポリシーのサポートなし
組織のポリシーのサポート 一部のリソースのタグは、組織のポリシーの条件付き制約で参照できます。 組織のポリシーのサポートなし
Cloud Billing の統合 チャージバック、監査、その他の費用割り当て分析を実行し、Cloud Billing の費用データを BigQuery にエクスポートする Cloud Billing でラベルごとにリソースをフィルタリングし、BigQuery に Cloud Billing データをエクスポートする

ラベルの詳細については、ラベルの作成と管理をご覧ください。

タグの作成

タグは Key-Value ペアとして構成されます。タグキー リソースは、組織リソースまたはプロジェクト リソースの下に作成できます。タグ値はキーに関連付けられるリソースです(たとえば、値 productiondevelopment を持つタグキー environment など)。

タグの管理

管理者は、タグを作成、更新、削除、およびリソースに添付する権限を持つユーザーを制限することにより、タグの使用を制御できます。個々のタグを選択して、編集(値の追加や削除など)や説明の更新を行うことができます。これにより、タグをきめ細かく制御できます。

タグには、タグに関する情報を取得するときに表示される説明を付けることができます。説明は、リソースにタグを付加するユーザーがタグの目的を理解するのに役立ちます。

親プロジェクトまたは組織では、各タグキーは一意である必要があります。これにより、各タグ値がリソースにバインドされると、タグキーとの一意のペアが作成されます。

ポリシーとタグ

タグと IAM の条件を組み合わせて使用すると、次のことができます。

タグ値を作成したら、タグ値をリソースにバインドできます。その後、タグキーがリソースにバインドされているかどうかに基づいてリソースを識別する条件付きの IAM ポリシーを作成できます。タグと IAM 条件の使用については、タグと条件付きアクセスをご覧ください。

組織のポリシーを使用した必須タグの適用

組織のポリシーを使用して、リソースに必須タグを適用できます。必須タグを適用すると、組織のタグ付けポリシーに準拠するリソースのみを作成できます。つまり、リソースは、ポリシーで指定された必須タグキーのタグ値にバインドされます。詳細については、タグを適用するカスタム制約を設定するをご覧ください。

必須タグの適用は、次のリソースタイプでサポートされています。

  • Resource Manager のプロジェクトとフォルダ
  • Filestore インスタンス
  • AlloyDB for PostgreSQL クラスタとバックアップ リソース
  • Workflows ワークフロー

タグの継承

タグ値がリソースに付加されると、デフォルトで、そのリソースのすべての子孫が同じタグ値を継承します。子孫リソースで、継承されたタグ値をオーバーライドできます。継承されたタグ値をオーバーライドするには、別のタグ値を子孫リソースにバインドします。異なるタグ値には、継承されたタグ値と同じタグキーを使用する必要があります。

たとえば、environment: development タグを適用したフォルダに team-ateam-b という名前の 2 つの子フォルダがあるとします。別のタグ environment: testteam-b フォルダに適用することもできます。その結果、team-a フォルダのプロジェクトと他のリソースは environment: development タグを継承しますが、team-b フォルダのプロジェクトと他のリソースは environment: test タグを継承します。

team-b フォルダから environment: test タグを削除すると、そのフォルダとリソースはタグ environment: development を継承します。

リソースによって添付され、継承されるすべてのタグは、集合的に効果的なタグと呼ばれます。リソースで有効なタグは、直接接続されているタグと、階層全体でリソースの祖先のすべてに添付されているすべてのタグを組み合わせたものです。

IAM 条件でタグを使用する場合は、IAM 条件で使用されるタグキーごとに安全なデフォルトのタグ値を作成することをおすすめします。安全なデフォルトのタグ値を組織にバインドして、組織内のすべてのリソースに継承されるようにします。関連するリソースで継承されたバインディングを明示的にオーバーライドすることによってのみ、タグ値を変更します。たとえば、enforcement タグキーのタグ値 on に依存する IAM 条件があり、タグキーに off タグ値もあるとします。タグ値 enforcement: off を組織にバインドして、組織内のすべてのリソースに継承される安全なデフォルトを作成します。組織内の選択したリソースに対してのみ、タグ値 enforcement: on をバインドします。

次に、enforcement: on または enforcement: off の場合はリソースの、enforcement: default の場合はセーフケースの効果を持つ条件で、enforcement タグキーに対応するポリシーを記述します。enforcement タグキーがリソースから削除された場合、リソースは親リソースから enforcement のタグ値を継承できます。enforcement タグキーを持つ親リソースがない場合、リソースは組織リソースから enforcement: default を継承します。

セーフ デフォルトタグを使用すると便利ですが、意図しない動作を回避するために、リソースの移動やタグの削除を行う前に、タグと条件付きポリシーを確認することをおすすめします。

タグのキーと値の削除

タグ値を削除する前に、そのタグ値を使用しているすべてのリソース バインディングを削除する必要があります。

タグ値を削除から保護する

タグ保留をタグ値に適用することで、タグ値の保護レイヤを追加できます。タグ バインディングと同様に、タグホールドによりユーザーがタグ値を削除できなくなります。

一部のリソースでは、リソースに接続されたタグ値ごとにタグホールドが自動的に作成されます。タグ値を削除するには、このタグホールドを削除する必要があります。

次のステップ