このガイドでは、Compute Engine リソースのタグを作成および管理する方法について説明します。タグとは、Google Cloud Platform リソースに付加できる Key-Value ペアのことです。タグは、次のような複数の目的で使用されます。
- リソースに特定のタグがあるかどうかに基づいて、条件付きでポリシーを許可または拒否する。
- グローバル ネットワークのファイアウォール ポリシーとリージョン ネットワークのファイアウォール ポリシーのソースとターゲットを定義する。
- 論理的な方法でリソースを整理する。
タグを作成し、タグとリソースの両方に対する適切なアクセス権を付与したら、タグを Key-Value ペアとして付加できます。特定のキーのリソースに付加できる値は、1 つだけです。たとえば、environment: development
タグを付加する場合、environment: production
タグや environment: test
タグは付加できません。各リソースには、最大 50 個の Key-Value ペアを付加できます。
リソースにタグを付加するには、タグ値を Google Cloud リソースにリンクする TagBinding リソースを作成する必要があります。タグとその仕組みの詳細については、タグの概要をご覧ください。
始める前に
- Resource Manager ドキュメントのタグの概要を確認します。
- Resource Manager ドキュメントのタグの作成と管理を確認します。
-
まだ認証を設定していない場合は、ここで認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境でコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 仮想マシン(VM)インスタンス
- ディスク
- マネージド インスタンス グループ
- 画像
- スナップショット
- ほとんどのネットワーキング リソース(ネットワーク、サブネットワーク、ファイアウォール、HealthCheck などのリソース)。
- VM インスタンス
- ディスク
Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[名前] 列で、タグを追加する VM の名前をクリックします。
[VM インスタンスの詳細] ページで、次の手順を実施します。
- [編集] をクリックします。
- [基本] セクションで [タグを管理] をクリックし、インスタンスに必要なタグを追加します。
- [保存] をクリックします。
- LOCATION_NAME: ターゲット リソースのリージョン(例:
us-central1
) - TAGVALUE_ID: タグ値の数値 ID
- PROJECT_NUMBER: プロジェクトの数値 ID
- ZONE: ゾーン名(例:
us-central1-a
) - VM_ID: VM インスタンスの ID
- LOCATION: ターゲット リソースが属するロケーション
- PROJECT_NUMBER: プロジェクトの数値 ID
- ZONE: ゾーン名(例:
us-central1-a
) - VM_ID: VM の数値 ID
- TAGVALUE_ID: 付加されているタグ値の永続 ID。例:
4567890123
。 - TAGVALUE_NAMESPACED_NAME: 付加されているタグ値の名前空間付きの名前。形式は
parentNamespace/tagKeyShortName/tagValueShortName
です。 Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[インスタンスを作成] をクリックします。
[タグとラベルを管理] をクリックします。
[タグを追加] をクリックします。
サイドパネルの指示に沿って、インスタンスに追加するタグを選択します。
[保存] をクリックします。
VM インスタンスの作成と起動の他の手順を完了して、インスタンスの作成を完了します。
- INSTANCE_NAME: インスタンスの名前
- TAGKEY_ID: タグキー番号の数値 ID
- TAGVALUE_ID: 付加されているタグ値の永続的な数値 ID。例:
4567890123
。 - INSTANCE_NAME: インスタンスの名前
- TAGKEY_ID: タグキー番号の数値 ID
- TAGVALUE_ID: 付加されているタグ値の永続的な数値 ID。例:
4567890123
。 Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[名前] 列で、タグを追加する VM の名前をクリックします。
[VM インスタンスの詳細] ページで、次の手順を実施します。
- [編集] をクリックします。
- [基本] セクションで [タグを管理] をクリックし、インスタンスの目的のタグを削除します。
- [保存] をクリックします。
- LOCATION_NAME: ターゲット リソースのリージョン(例:
us-central1
) - TAGVALUE_ID: タグキーの数値 ID
- PROJECT_NUMBER: プロジェクトの数値 ID
- ZONE: ゾーン名(例:
us-central1-a
) - VM_ID: VM インスタンスの ID
TAGBINDINGS_NAME は TagBinding の永続 ID です。例:
tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456
。LOCATION は、リソースのリージョン エンドポイント(
us-central1
など)です。Google Cloud コンソールで [VM インスタンス] ページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[名前] 列で、タグを表示する VM の名前をクリックします。
[VM インスタンスの詳細] ページの [タグ] セクションで、目的のタグを探します。
- LOCATION_NAME: ターゲット リソースのリージョン(例:
us-central1
) - PROJECT_NUMBER: プロジェクトの数値 ID
- ZONE: ゾーン名(例:
us-central1-a
) - VM_ID: VM インスタンスの ID
- LOCATION_NAME: ターゲット リソースのリージョン(例:
us-central1
) - PROJECT_NUMBER: プロジェクトの数値 ID
- ZONE: ゾーン名(例:
us-central1-a
) - VM_ID: VM インスタンスの ID
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
権限
Compute Engine リソースのタグを管理するには、ユーザーとサービス アカウントに
tagUser
ロールを付与する必要があります。tagUser
ロールの詳細については、必要な権限をご覧ください。サポートされているリソース
次のリソースは、リソース作成後にのみタグ付けをサポートします。
次のリソースも、リソース作成時のタグ付けをサポートしています。
リソースにタグを追加する
リソースの作成後は、次の手順に沿って既存のタグを特定のリソースに付加できます。
コンソール
リソースの種類によっては、正確な手順が若干異なる場合があります。たとえば、次の手順で VM にタグを付加します。
gcloud
これらのフラグの使用方法について詳しくは、Resource Manager ドキュメントのリソースへのタグ付けをご覧ください。
たとえば、次のコマンドにより VM にタグが付加されます。
gcloud resource-manager tags bindings create \ --location LOCATION_NAME \ --tag-value=tagValues/TAGVALUE_ID \ --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
次のように置き換えます。
API
リソースにタグを付加するには、まず、タグ値の永続 ID または名前空間付きの名前と、リソースの永続 ID を含むタグ バインディングの JSON 表現を作成する必要があります。タグ バインディングの形式の詳細については、TagBinding リファレンスをご覧ください。
VM インスタンスなどのゾーンリソースにタグを付加するには、リソースが配置されているリージョン エンドポイントで
tagBindings.create
メソッドを使用します。次に例を示します。POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
リクエストの本文は次のいずれかです。
{ "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID", "tagValue": "tagValue/TAGVALUE_ID" }
または
{ "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID", "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME }
次のように置き換えます。
リソースの作成時にリソースにタグを追加する
状況によっては、リソースの作成後ではなく、リソースの作成時にリソースにタグを付ける場合があります。たとえば、Cloud Next Generation Firewall リソースを作成するときに、ネットワーク ポリシーにファイアウォール タグを適用できます。
コンソール
リソースの種類によっては、正確な手順が若干異なる場合があります。 VM の場合、次の手順を実施します。
gcloud
リソースの作成時にタグをリソースに付加するには、それぞれの
create
コマンドで--resource-manager-tags
フラグを追加します。たとえば、VM にタグを付加するには、次のコマンドを使用します。gcloud compute instances create INSTANCE_NAME --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID
次のように置き換えます。
複数のタグを指定する場合は、タグをカンマで区切ります(例:
TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2
)。API
次の URL に
POST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
次のリクエスト JSON 本文を含めます。
{ "name": INSTANCE_NAME, "params": { "resourceManagerTags": { "tagKeys/TAGKEY_ID: "tagValues/TAGVALUE_ID", }, } // other fields omitted }
次のように置き換えます。
リソースのタグの取り外し
タグ バインディング リソースを削除すると、リソースからタグを取り外すことができます。
タグを取り外す方法については、Resource Manager ドキュメントのリソースのタグの取り外しをご覧ください。
コンソール
リソースの種類によっては、正確な手順が若干異なる場合があります。たとえば、次の手順で VM からタグを取り外します。
gcloud
次の例では、gcloud CLI を使用して VM からタグの適用を解除します。
gcloud resource-manager tags bindings delete \ --location LOCATION_NAME \ --tag-value=tagValues/TAGVALUE_ID \ --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
次のように置き換えます。
既存のタグ バインディングを別のタグ バインディングに更新または置換するには、古いタグ バインディングを取り外して新しいタグ バインディングを付加します。
API
VM などのリソースに付加されたタグ バインディングを削除するには、リソースが配置されているリージョン エンドポイントで
tagBindings.delete
メソッドを使用します。DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}
各要素の意味は次のとおりです。
リソースに付加されたタグの表示
タグを一覧表示する方法の詳細については、Resource Manager ドキュメントのリソースに付加されたタグの一覧表示をご覧ください。
コンソール
リソースの種類によっては、正確な手順が若干異なる場合があります。たとえば、VM のタグを表示する手順は、以下のとおりです。
gcloud
リソースに直接適用されたタグ バインディングのリストを取得するには、
gcloud resource-manager tags bindings list
コマンドを使用します。--effective
フラグを追加すると、このリソースが継承するタグのリストも返されます。次に例を示します。gcloud resource-manager tags bindings list \ --location=LOCATION_NAME \ --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID
次のように置き換えます。
--effective
フラグをtags bindings list
コマンドに追加すると、このリソースが継承したすべてのタグのリストも返されます。次のようなレスポンスが返されます。namespacedTagKey: 961309089256/environment namespacedTagValue: 961309089256/environment/production tagKey: tagKeys/417628178507 tagValue: tagValues/247197504380 inherited: true
リソースで評価されるすべてのタグが直接付加されている場合は、
inherited
フィールドが false となり省略されます。API
Compute Engine インスタンスなどのリージョン リソースに付加されているタグ バインディングを一覧表示するには、リソースが存在するリージョン エンドポイントで
tagBindings.list
メソッドを使用します。次に例を示します。GET https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings { "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID" }
次のように置き換えます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-