Google Cloud のリソース階層は、リソースをツリー構造に整理する方法です。この階層は大規模なリソース管理に役立ちますが、組織構造、リージョン、ワークロード タイプ、コストセンターなど、一部のビジネス ディメンションをモデル化しているだけです。階層では複数のビジネス ディメンションを一緒にレイヤ化することはできません。
タグを使用すると、リソースのアノテーションを作成できます。場合によっては、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行えます。リソース階層全体にわたるきめ細かい管理のために、タグとポリシーの条件付き適用を使用できます。
タグとラベル
ラベルは、リソースのアノテーションを作成する別個の方法です。次の表に、タグとラベルの違いを示します。
タグ | ラベル | |
---|---|---|
リソース構造 | タグキー、タグ値、タグバインディングはすべて個別のリソースです。 | リソース自体ではなく、リソースのメタデータ |
定義 | 組織レベルまたはプロジェクト レベルで定義される | 各リソースによって定義される |
アクセス制御 | タグの管理と取り付けには、Identity and Access Management(IAM)ロールが必要 | ラベルの取り付けには、サービス リソースに応じて異なる IAM のロールが必要です |
取り付けの前提条件 | タグがリソースに取り付け可能になる前にタグキーとタグ値を定義する必要があります | 取り付けの前提条件なし |
継承 | タグ バインディングは、Google Cloud 階層内のリソースの子に継承されます。 | リソースの子には継承されません |
削除の要件 | タグを削除するには、そのタグにタグ バインディングが存在しない必要があります | リソースからいつでも削除可能 |
命名の要件 | タグ値とタグキーの要件 | ラベルの要件 |
Key-Value 名の長さ | 256 文字まで入力できます | 63 文字まで入力できます |
IAM ポリシーのサポート | タグは IAM ポリシーの条件で参照できます。 | IAM ポリシーのサポートなし |
組織のポリシーのサポート | 一部のリソースのタグは、組織のポリシーの条件付き制約で参照できます。 | 組織のポリシーはサポートされていません |
Cloud Billing との統合 | チャージバック、監査、その他の費用割り当て分析を行い、Cloud Billing の費用データを BigQuery にエクスポートする | Cloud Billing でラベルごとにリソースをフィルタリングし、Cloud Billing データを BigQuery にエクスポートする |
ラベルの詳細については、ラベルの作成と管理をご覧ください。
タグの作成
タグは Key-Value ペアとして構成されます。タグキー リソースは、組織リソースまたはプロジェクト リソースの下に作成できます。タグ値はキーに関連付けられるリソースです。たとえば、値 production
と development
を持つタグキー environment
などです。
タグの管理
管理者は、タグを作成、更新、削除、およびリソースに添付できるユーザーを制限することにより、タグの使用を制御できます。個々のタグを選択して、編集(値の追加や削除など)や説明の更新を行うことができます。これにより、タグをきめ細かく制御できます。
タグには、説明を付けることができ、タグに関する情報を取得するときに表示されます。この説明により、リソースにタグを接続しているユーザーは、そのタグの目的を理解できます。
1 つのタグで特定のリソースの指定されたキーに割り当てることができる値は 1 つだけです。たとえば、タグキー environment
と値 production
を持つプロジェクトには、environment
キーの development
値を付与できません。
ポリシーとタグ
タグをサポートするポリシーを使用して、条件付きでこうしたポリシーを適用できます。ポリシーを適用する条件には、タグ値の有無を使用できます。
たとえば、Identity and Access Management(IAM)のロールを条件付きで付与し、リソースに特定のタグが設定されているかどうかに応じて IAM の権限を条件付きで拒否できます。
タグを作成したら、リソースに適用できます。その後、タグがサポートされているリソースに付加されているかどうかに基づいて、条件付きポリシーを作成できます。そのポリシーは、リソースに付加されたタグの有無に基づいて機能します。
Identity and Access Management(IAM)でタグを使用して Google Cloud リソースへのアクセスを制御する方法については、タグとアクセス制御をご覧ください。
タグの継承
タグ Key-Value ペアをリソースに接続すると、そのリソースのすべての子孫がタグを継承します。継承されたタグは、子リソースでオーバーライドできます。継承されたタグをオーバーライドするには、継承されたタグと同じキーを使用してタグを適用しますが、値は異なります。
たとえば、environment: development
タグを適用したフォルダに team-a
と team-b
という名前の 2 つの子フォルダがあるとします。別のタグ environment: test
を team-b
フォルダに適用することもできます。その結果、team-a
フォルダのプロジェクトと他のリソースは environment: development
タグを継承しますが、team-b
フォルダのプロジェクトと他のリソースは environment: test
タグを継承します。
team-b
フォルダから environment: test
タグを削除すると、そのフォルダとリソースはタグ environment: development
を継承します。
リソースによって添付され、継承されるすべてのタグは、集合的に効果的なタグと呼ばれます。リソースで有効なタグは、直接接続されているタグと、階層全体でリソースの祖先のすべてに添付されているすべてのタグを組み合わせたものです。
タグを使用してポリシーを管理する場合は、安全なデフォルト タグを作成することをおすすめします。つまり、組織のリソース レベルでタグを設定して、リソース階層全体で継承されるようにします。たとえば、タグキーは短縮名 enforcement
で、値は default
、on
、off
です。組織のレベルで enforcement: default
を設定すると、下位レベルでオーバーライドされない限り、タグはすべてのリソースに継承されます。
次に、enforcement: on
または enforcement: off
の場合はリソースの、enforcement: default
の場合はセーフケースの効果を持つ条件で、enforcement
タグキーに対応するポリシーを記述します。enforcement
タグがリソースから削除された場合、親リソースから enforcement
のタグ値が継承されます。enforcement
タグを持つ親リソースがない場合、組織のリソースから enforcement: default
を継承します。
セーフ デフォルトタグを使用すると便利ですが、リソースの移動や、タグの削除を行う場合は、意図しない動作を回避するために事前にタグや条件付きポリシーを確認する必要があります。
タグのキーと値の削除
タグキーや値の定義を削除する際に、そのタグがリソースに関連付けられていると、削除は失敗します。タグ定義自体を削除する前に、タグ バインディングと呼ばれる既存のタグ付けを削除する必要があります。
タグ値を削除から保護する
タグ保留をタグ値に適用することで、タグ値の保護レイヤを追加できます。タグ バインディングと同様に、タグホールドによりユーザーがタグ値を削除できなくなります。
一部のリソースでは、リソースに接続されたタグ値ごとにタグホールドが自動的に作成されます。ユーザーがタグ値を削除するには、このタグホールドを削除する必要があります。
次のステップ
- タグの使用方法の詳細については、タグの作成と管理ページをご覧ください。
- Compute Engine でタグを使用する方法については、リソースのタグの管理をご覧ください。