タグの作成と管理

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このガイドでは、タグを作成して管理する方法について説明します。タグとは、組織、フォルダ、プロジェクトに付加できる Key-Value ペアのことです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行えます。

始める前に

タグとその仕組みのより詳しい説明は、タグの概要をご覧ください。

必要な権限

必要な権限は、実行する必要があるアクションによって異なります。

これらの権限を取得するには、リソース階層に見合うレベルで示されたロールを付与するように管理者へ依頼してください。

タグの表示

タグ定義とリソースに添付されたタグを表示するには、タグ閲覧者のロール(roles/resourcemanager.tagViewer)、または次の権限を含む別のロールが必要です。

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • 該当するリソースタイプ用のlistTagBindings。たとえば、Compute Engine インスタンスに接続されているタグを表示するためのcompute.instances.listTagBindings

タグの管理

タグの定義を作成、更新、削除するには、タグ管理者ロール(roles/resourcemanager.tagAdmin)か、次の権限を持つ別のロールが必要です。

  • resourcemanager.tagKeys.create
  • resourcemanager.tagKeys.update
  • resourcemanager.tagKeys.delete
  • resourcemanager.tagKeys.list
  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.getIamPolicy
  • resourcemanager.tagKeys.setIamPolicy
  • resourcemanager.tagValues.create
  • resourcemanager.tagValues.update
  • resourcemanager.tagValues.delete
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.getIamPolicy
  • resourcemanager.tagValues.setIamPolicy

リソースのタグの管理

リソースに付加されたタグを追加または削除するには、タグユーザー ロール(roles/resourcemanager.tagUser)、またはタグ値と、タグ値を付加するリソースに対して同等の権限を持つ別のロールが必要です。タグユーザー ロールには次の権限が含まれます。

  • タグ値を付加するリソースに関して必要な権限:

    • リソース固有の createTagBinding 権限(Compute Engine インスタンスの compute.instances.createTagBinding など)
    • リソース固有の deleteTagBinding 権限(Compute Engine インスタンスの compute.instances.deleteTagBinding など)
  • タグ値に関して必要な権限:

    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete
  • プロジェクトとタグの定義を閲覧できる権限:

    • resourcemanager.tagValues.get
    • resourcemanager.tagValues.list
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.projects.get

新しいタグの作成と定義

タグは Key-Value ペアで構成され、Google Cloud 階層内の組織、フォルダ、プロジェクト リソースにアタッチされます。新しいタグを作成するには、まず作成するタグを記述するタグキーを作成する必要があります。たとえば、environment という名前のキーを作成し、リソース階層内のリソースの本番環境、テスト環境、開発環境を指定できます。

次に、キーに対するさまざまな値を作成できます。environment という名前のタグキーを作成した場合、3 つの環境が存在することを示すために、それぞれの値(productiondevelopmenttest)を作成できます。

特定の組織の下で作成できるキーは最大で 1,000 個で、各キーに対して合計 1,000 個の値を作成できます。

最後に、こうした値を階層内のリソースに付加し、Key-Value ペアの関連付けを持たせることができます。たとえば、組織全体の複数のテスト環境フォルダに test を付加すると、それぞれが environment: test の Key-Value ペアを持つことができます。

タグの作成

最初は、タグキーを作成する必要があります。

タグキーの shortName は、63 文字以下にする必要があります。shortName に使用できる文字は、大文字、小文字の英数字(国際化なし)、ハイフン、アンダースコア、ピリオドです。shortName の先頭と末尾は、英数字にする必要があります。shortName は、作成した後は変更できません。また、同じ名前空間内で一意である必要があります。

Console

タグキーを作成するには次の操作を行います。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. [タグを作成] をクリックします。

  5. [タグ名] ボックスに、タグキーの表示名を入力します。これは、タグの名前空間名の一部になります。

  6. [タグの説明] ボックスに、タグキーの説明を入力します。

  7. このキーにタグ値を追加する場合は、作成する各タグ値の [値を追加] をクリックします。

  8. [タグ値] ボックスに、タグ値の表示名を入力します。これは、タグの名前空間名の一部になります。

  9. [タグの値の説明] ボックスに、タグ値の説明を入力します。

  10. タグの値の追加が完了したら、[タグを作成] をクリックします。

gcloud

タグキーを作成するには、gcloud resource-manager tags keys create コマンドを使用します。

gcloud resource-manager tags keys create SHORT_NAME \
    --parent=organizations/ORGANIZATION_ID

ここで

  • SHORT_NAME はタグキーの表示名(environment など)です。

  • ORGANIZATION_ID は、このタグキーの親リソースとなる組織の ID です(例: 12345678901)。組織 ID を取得する方法については、組織の作成と管理をご覧ください。

次のようなレスポンスが得られます。

Creating tag key environment in organization 1234567890...
<blocking wait until creation completes>
name: tagKeys/123456789012
short_name: environment
namespaced_name: 12345678901/environment
parent: organizations/12345678901

API

タグキーを作成するには、キーの JSON 表現を作成します。タグキーの形式の詳細については、TagKey リファレンスをご覧ください。

次に、tagKeys.create メソッドを使用します。

POST https://cloudresourcemanager.googleapis.com/v3/tagKeys/ -d

JSON 本文のリクエスト:

{
    "parent": ORGANIZATION_ID,
    "shortName": SHORT_NAME,
    "description": DESCRIPTION,
}

ここで

  • SHORT_NAME はタグキーの表示名(environment など)です。

  • ORGANIZATION_ID は、このタグキーの親リソースとなる組織の ID です(例: organizations/12345678901)。組織 ID を取得する方法については、組織の作成と管理をご覧ください。

  • DESCRIPTION はキーの説明で、256 文字以内で記述します。

キーを作成すると、親組織内で名前空間が設定された namespacedName という一意の表示名と、name という名前のグローバルに一意な永続 ID を確認できます。

タグキーの表示

特定のタグキーに関する情報は、作成時に表示されるこの永続 ID か名前空間付名を使用して検索できます。

Console

作成したタグを表示する方法は次のとおりです。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. この組織内のすべてのタグがリストに表示されます。タグキーを表示するタグをクリックします。

gcloud

特定のタグキーに関連する情報を表示するには、gcloud resource-manager tags keys describe コマンドを使用します。

gcloud resource-manager tags keys describe TAGKEY_NAME

ここで、TAGKEY_NAME は、情報を表示するタグキーの永続 ID または名前空間付名です。例: tagKeys/123456789012

次のようなレスポンスが得られます。

name: tagKeys/123456789012
short_name: environment
namespaced_name: 12345678901/environment
parent: organizations/12345678901

API

特定のタグキーに関連する情報を表示するには、tagKeys.get メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/{name=TAGKEY_NAME}

TAGKEY_NAME は、情報を表示するタグキーの永続 ID です。例: tagKeys/123456789012

タグ値の追加

タグキーを作成すると、キーに対して使用できる値を追加できます。

タグ値の shortName は次の要件を満たす必要があります。

  • shortName は 63 文字以下にします。

  • shortName の先頭と末尾には英数字を使用する必要があります。

  • AshortName大文字と小文字の英数字のみを使用し、国際化、ハイフン(- )、アンダースコア(_ )、ピリオド(. )、記号(@ )、パーセント記号(% )、等号(= )、プラス記号(+ )、 コロン(: )、カンマ(, )、アスタリスク(* )、シャープ記号(# )、 アンパサンド(& )、かっこ(( または ))、角かっこ([ または ])、中かっこ({ または })、スペースは使用できません。

  • shortName は作成後に変更できず、同じ名前空間内で一意にする必要があります。

Console

タグの値を作成するには次の操作を行います。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. タグのリストで、新しい値を追加するタグをクリックします。

  5. [値を追加] をクリックします。

  6. [タグ値] ボックスに、タグ値の表示名を入力します。これは、タグの名前空間名の一部になります。

  7. [タグの値の説明] ボックスに、タグ値の説明を入力します。

  8. [保存] をクリックします。

gcloud

タグ値を作成するには、gcloud resource-manager tags keys create コマンドを使用します。この値を作成するキーは、指定する必要があります。

gcloud resource-manager tags values create TAGVALUE_SHORTNAME \
    --parent=TAGKEY_NAME

ここで

  • TAGVALUE_SHORTNAME は新しいタグ値の短縮名(production など)です。

  • TAGKEY_NAME は、親タグキーの永続 ID または名前空間名です。例: tagKeys/4567890123

次のようなレスポンスが得られます。

Creating tag value production in tag key 12345678901/environment...
<blocking wait until creation completes>
name: tagValues/7890123456
short_name: production
namespaced_name: 12345678901/environment/production
parent: tagKeys/123456789012

API

タグ値を作成するには、値の JSON 表現を作成します。タグ値の形式については、TagValue リファレンスをご覧ください。

次に、tagValues.create メソッドを使用します。

POST https://cloudresourcemanager.googleapis.com/v3/tagValues/ -d

JSON 本文のリクエスト:

{
    "parent": TAGKEY_NAME,
    "shortName": SHORT_NAME,
    "description": DESCRIPTION,
}

ここで

  • TAGKEY_NAME は、親タグキーの永続 ID です。例:tagKeys/4567890123

  • SHORT_NAME はタグ値の表示名(environment など)です。

  • DESCRIPTION は、値の説明で、長さは 256 文字以下です。

値を作成すると、親組織内で名前空間が設定された namespacedName という一意の表示名と、name という名前のグローバルに一意な永続 ID を確認できます。

タグ値の取得

特定のタグ値に関する情報は、作成時に表示されるこの永続 ID か名前空間付名を使用して検索できます。

Console

作成したタグを表示する方法は次のとおりです。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. この組織で作成したすべてのタグがリストに表示されます。タグの値を確認するタグをクリックします。

gcloud

特定のタグ値に関連する情報を表示するには、gcloud resource-manager tags values describe コマンドを使用します。

gcloud resource-manager tags values describe TAGVALUE_NAME

ここで、TAGVALUE_NAME はタグ値の名前空間名(1234567890/environment/production など)です。

次のようなレスポンスが得られます。

short_name: production
namespaced_name: 1234567890/environment/production
parent: tagKeys/123456789012

API

特定のタグ値に関連する情報を表示するには、tagValues.get メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/{name=TAGVALUE_NAME}

ここで、TAGVALUE_NAME はタグ値の永続 ID です。例: tagValues/4567890123

Google Cloud CLI を使用してタグを参照する場合、タグのキーと値には、名前空間付きの名前または永続的な ID を使用できます。API の呼び出しでは、永続 ID のみを使用する必要があります。タグが使用する識別子の種類についての詳細は、タグの定義と識別子をご覧ください。

既存のタグの更新

既存のタグは、関連付けられている Key-Value を更新することで変更できます。 タグの説明は更新できますが、略称は更新できません。

Console

タグキーの説明を更新するには、次の手順を行います。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. 更新するタグキーの横にある [ アクション] をクリックし、[詳細を表示] をクリックします。

  5. 画面の上部付近の [説明] の横にある [編集] をクリックします。

  6. タグキーの説明を更新します。

  7. [保存] をクリックします。

gcloud

タグキーの説明を変更するには、gcloud resource-manager tags keys update コマンドを使用します。

gcloud resource-manager tags keys update TAGKEY_NAME \
    --description=NEW_DESCRIPTION

ここで

  • TAGKEY_NAME は、更新する鍵の永続 ID または名前空間名です。例: tagKeys/123456789012

  • NEW_DESCRIPTION は、新しい説明として使用する 256 文字以下の文字列です。

次のようなレスポンスが得られます。

name: tagKeys/123456789012
short_name: environment
namespaced_name: 12345678901/environment
description: "new description"
parent: organizations/12345678901

API

タグキーの説明を変更するには、tagKeys.patch メソッドを使用します。

PATCH https://cloudresourcemanager.googleapis.com/v3/{tagKey.name=TAGKEY_NAME} -d

JSON 本文のリクエスト:

{
    "description": DESCRIPTION,
}

ここで

  • TAGKEY_NAME はタグキーの永続 ID です。例: tagKeys/123456789012

  • DESCRIPTION はキーの説明で、256 文字以内で記述します。

タグ値の説明を変更することもできます。

Console

タグ値の説明を更新するには、次の手順を行います。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. 更新する値のタグキーの横にある [アクション] をクリックし、[詳細を表示] をクリックします。

  5. 更新するタグ値の横にある [アクション] をクリックし、[詳細を表示] をクリックします。

  6. 画面の上部付近の [説明] の横にある [編集] をクリックします。

  7. タグ値の説明を更新します。

  8. [保存] をクリックします。

gcloud

タグ値の説明を変更するには、gcloud resource-manager tags values update コマンドを使用します。

gcloud resource-manager tags values update TAGVALUE_NAME \
    --description="NEW_DESCRIPTION"

ここで

  • TAGVALUE_NAME は、更新するタグ値の永続 ID か、名前空間名です(例: tagValues/4567890123)。

  • NEW_DESCRIPTION は、新しい説明として使用する 256 文字以下の文字列です。

次のようなレスポンスが得られます。

short_name: production
namespaced_name: 12345678901/environment/production
parent: tagKeys/123456789012
description: "new description"

API

タグキーの説明を変更するには、tagValues.patch コマンドを使用します。

PATCH https://cloudresourcemanager.googleapis.com/v3/{tagKey.name=TAGVALUE_NAME} -d

JSON 本文のリクエスト:

{
    "description": DESCRIPTION,
}

ここで

  • TAGVALUE_NAME は、タグ値の永続 ID 名です。例: tagValues/4567890123

  • DESCRIPTION はキーの説明で、256 文字以内で記述します。

タグキーの一覧表示

特定の組織に関連付けられたすべてのタグキーは、Google Cloud Console、gcloud CLI、または API の呼び出しを使用して一覧表示できます。

Console

すべてのタグを表示するには:

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. この組織で作成したすべてのタグがリストに表示されます。

gcloud

組織のリソースに付加されているすべてのタグキーのリストを取得するには、gcloud resource-manager tags keys list コマンドを使用します。

gcloud resource-manager tags keys list --parent=ORGANIZATION_ID

ここで、ORGANIZATION_ID は、付加されたタグキーを検索する組織の ID です。

  • 組織 ID は organizations/ORGANIZATION_ID の形式で指定します。例: organizations/12345678901。組織 ID を取得する方法については、組織の作成と管理をご覧ください。

次のようなレスポンスが得られます。

NAME                     SHORT_NAME      DESCRIPTION
tagKeys/123456789012     environment     description of tag key

API

特定のリソースのすべてのタグキーのリストを取得するには、クエリに親リソースを指定して、tagKeys.list メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/tagKeys

{
    "parent": "RESOURCE_ID"
}

ここで、RESOURCE_ID は付加されたタグキーを検索するリソースの ID です。例: organizations/12345678901

タグ値の一覧表示

Google Cloud Console、gcloud CLI、または API の呼び出しを使用して、特定のタグキーに関連付けられているすべてのタグ値を一覧表示できます。

Console

タグキーにアタッチされたタグ値をすべて表示するには、次のとおりにします。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. 探しているタグ値を含むタグキーの横にある [アクション] をクリックし、次に [詳細を表示] をクリックします。

  5. このタグキーの下のリストに作成したすべてのタグ値が表示されます。

gcloud

キーに関連付けられたすべてのタグ値のリストを取得するには、gcloud resource-manager tags values list コマンドを使用します。

gcloud resource-manager tags values list --parent=TAGKEY_NAME

ここで、TAGKEY_NAME は、関連付けられたタグ値を検索するタグキーの永続 ID または名前空間付名です。例: tagKeys/123456789012

次のようなレスポンスが得られます。

NAME                     SHORT_NAME
tagValues/123456789012   production

API

キーに関連付けられているすべてのタグ値のリストを取得するには、クエリに親タグキーを指定して、tagValues.list メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/tagValues

{
    "parent": "TAGKEY_NAME"
}

ここで、TAGKEY_NAME はタグキーの永続 ID 名です。例: tagKeys/123456789012

タグへのアクセスの管理

Google Cloud Console を使用して、ユーザーにタグの管理とリソースにタグ値を関連付けるための特定のアクセス権を付与できます。タグに関連するロールとそれらに含まれる権限のリストについては、必要な権限をご覧ください。

タグキー

タグ値でユーザーのアクセスを管理する手順は次のとおりです。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. アクセスを管理するタグの横にあるチェックボックスをクリックします。

  5. [アクセスを管理する] をクリックします。

  6. プリンシパルにロールを追加するには、[プリンシパルを追加] をクリックします。

    1. [新しいプリンシパル] テキスト ボックスに、新しいロールを付与するプリンシパルのメールアドレスを入力します。

    2. [ロールを選択] プルダウン メニューからロールを選択します。複数のロールを追加する場合は、 [別のロールを追加] をクリックします。

    3. 通知を送信する場合は、[通知メールを送信] の横にあるチェックボックスをクリックします。

    4. [保存] をクリックします。

  7. プリンシパルのロールを編集するには、編集するプリンシパルの横にある [編集] をクリックします。

    1. [ロール] プルダウン メニューをクリックして新しいロールを選択すると、このタグのプリンシパルに割り当てられたロールを変更できます。

    2. ロールをさらに追加するには、[別のロールを追加] をクリックします。

    3. このタグで、プリンシパルのロールを削除するには、削除するロールの横にある [ロールを削除] をクリックします。

    4. [保存] をクリックします。

  8. プリンシパルのロールを削除するには、削除するロールの横にある [ロールを削除] をクリックします。

    1. [削除] をクリックします。

タグの値

タグ値でユーザーのアクセスを管理する手順は次のとおりです。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. アクセスを管理する値のタグキーの横にある [ アクション] をクリックし、[詳細を表示] をクリックします。

  5. [アクセスを管理する] をクリックします。

  6. プリンシパルにロールを追加するには、[プリンシパルを追加] をクリックします。

    1. [新しいプリンシパル] テキスト ボックスに、新しいロールを付与するプリンシパルのメールアドレスを入力します。

    2. [ロールを選択] プルダウン メニューからロールを選択します。複数のロールを追加する場合は、 [別のロールを追加] をクリックします。

    3. 通知を送信する場合は、[通知メールを送信] の横にあるチェックボックスをクリックします。

    4. [保存] をクリックします。

  7. プリンシパルのロールを編集するには、編集するプリンシパルの横にある [編集] をクリックします。

    1. [ロール] プルダウン メニューをクリックして新しいロールを選択すると、このタグのプリンシパルに割り当てられたロールを変更できます。

    2. ロールをさらに追加するには、[別のロールを追加] をクリックします。

    3. このタグで、プリンシパルのロールを削除するには、削除するロールの横にある [ロールを削除] をクリックします。

    4. [保存] をクリックします。

  8. プリンシパルのロールを削除するには、削除するロールの横にある [ロールを削除] をクリックします。

    1. [削除] をクリックします。

リソースへのタグ付け

タグが作成され、タグとリソースの両方に対する適切なアクセス権が付与されると、タグを Google Cloud リソースに Key-Value ペアとして付加できます。特定のキーのリソースに付加できる値は、1 つだけです。たとえば、environment: development が付加されている場合、environment: productionenvironment: test は付加できません。各リソースには、最大 50 個の Key-Value ペアを付加できます。

タグは、タグと Google Cloud リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに付加されます。

Console

リソースにタグをアタッチする方法は次のとおりです。

  1. Google Cloud Console で [リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. タグをアタッチする組織、フォルダ、またはプロジェクトをクリックします。

  3. 表示された情報パネルで、[タグ] タブをクリックします。

  4. [タグを付ける] ラジオボタンをクリックします。

  5. [タグ値] ボックスに、接続するタグ値の名前空間名を入力します。たとえば、組織 ID 456789012345456789012345/Environment/Production、タグキー名 Environment、タグ値 Production です。

  6. さらにタグ値を追加する場合は、[ タグ値を追加] をクリックし、各タグ値の名前空間の名前を入力します。

  7. [保存] をクリックします。

  8. [リソースを管理] ページの [タグ] 列に新しいタグが表示されます。

gcloud

リソースにタグを付加するには、gcloud resource-manager tags bindings create コマンドを使用してタグ バインディング リソースを作成する必要があります。

gcloud resource-manager tags bindings create \
--tag-value=TAGVALUE_NAME \
--parent=RESOURCE_ID
--location=LOCATION

ここで

  • TAGVALUE_NAME は、適用するタグ値の永続 ID か、名前空間付きの名前です(例: tagValues/4567890123)。

  • RESOURCE_ID は、リソースのタイプを識別する API のドメイン名(//cloudresourcemanager.googleapis.com/)を含む、リソースの完全 ID です。たとえば、projects/7890123456 にタグを付加する場合、完全 ID は、//cloudresourcemanager.googleapis.com/projects/7890123456 となります。

  • LOCATION は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースにタグを付加する場合は、このフラグを省略する必要があります。タグを Compute Engine インスタンスなどのリージョン リソースに付加する場合は、ロケーションを指定する必要があります。例: us-central1

API

リソースにタグを追加するには、まず、タグ値の永続 ID とリソースのタグ バインディングの JSON 表現を作成する必要があります。タグ バインディングの形式の詳細については、TagBinding リファレンスをご覧ください。

組織などのグローバル リソースにタグを付加する場合は、グローバル エンドポイント ホスト名を指定して tagBindings.create メソッドを使用します。

POST https://cloudresourcemanager.googleapis.com/v3/tagBindings

Compute Engine インスタンスなどのリージョン リソースにタグを付加する場合は、リソースが存在するリージョン エンドポイントで tagBindings.create メソッドを使用します。

POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

JSON 本文のリクエスト:

{
    "parent": RESOURCE_ID,
    "tagValue": TAGVALUE_NAME,
}

ここで

  • RESOURCE_ID は、リソースのタイプを識別する API のドメイン名(//cloudresourcemanager.googleapis.com/)を含む、リソースの完全 ID です。たとえば、projects/7890123456 にタグを付加する場合、完全 ID は、//cloudresourcemanager.googleapis.com/projects/7890123456 となります。

  • TAGVALUE_NAME は、付加されているタグ値の永続 ID です。例: tagValues/4567890123

リソースに付加されたタグの一覧表示

リソースに付加されたタグは、すべてのタグのリストの形で取得できます。次の例は、リソースに直接付加されたタグ バインディングのリストを示していますが、親リソースから継承されたタグは返されません。

Console

リソースに付加されているすべてのタグを表示する手順は次のとおりです。

  1. Google Cloud Console で [リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. リソースのリストから組織、フォルダ、またはプロジェクトを見つけます。

  3. リソースに付加されているタグは、[タグ] 列に表示されます。

gcloud

リソースに付加されたタグ バインディングのリストを取得するには、gcloud resource-manager tags bindings list コマンドを使用します。

gcloud resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

ここで

  • RESOURCE_ID はリソースの完全な ID です。例: //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースに付加されているタグを一覧表示する場合は、このフラグを省略する必要があります。タグを Compute Engine インスタンスなどのリージョン リソースに付加する場合は、ロケーションを指定する必要があります。例: us-central1

次のようなレスポンスが得られます。

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
tagValue: tagValues/567890123456
resource: //cloudresourcemanager.googleapis.com/projects/7890123456

API

組織などのグローバル リソースに付加されたタグ バインディングのリストを取得するには、tagBindings.list メソッドを使用し、クエリで親リソースを指定します。

GET https://cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "RESOURCE_ID"
}

Compute Engine インスタンスなどのリージョン リソースに接続されているタグ バインディングを一覧表示するには、リソースが存在するリージョン エンドポイントで tagBindings.list メソッドを使用します。

GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "RESOURCE_ID"
}

ここで

  • RESOURCE_ID はリソースの完全な ID です。例: //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION は、リソースのリージョン エンドポイント(us-central1 など)です。

正常な場合、レスポンスの本文には、TagBinding オブジェクトのリストが含まれます。例:

name: tagBindings/cloudresourcemanager.googleapis.com/projects/7890123456/567890123456
tagValue: tagValues/567890123456
resource: //cloudresourcemanager.googleapis.com/projects/7890123456

リソースに有効なタグを一覧表示する

リソースに直接接続されたタグ バインディングと継承されたタグ バインディングを確認する場合、gcloud CLI または API を使用できます。

gcloud

リソースに接続または継承されたタグ バインディングのリストを取得するには、--effective フラグを有する gcloud alpha resource-manager tags bindings list コマンドを使用します。

gcloud alpha resource-manager tags bindings list --effective \
    --parent=RESOURCE_ID \
    --location=LOCATION

ここで

  • RESOURCE_ID はリソースの完全な ID です。例: //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースに付加されているタグを一覧表示する場合は、このフラグを省略する必要があります。タグを Compute Engine インスタンスなどのリージョン リソースに付加する場合は、ロケーションを指定する必要があります。例: us-central1

次のようなレスポンスが得られます。

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

リソースに評価されたすべてのタグが直接添付されている場合、inherited フィールドは false のため省略されます。

API

組織などのグローバル リソースにアタッチまたは継承されたタグ バインディングのリストを取得するには、クエリで親リソースを指定して effectivetags.list メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/effectivetags

{
    "parent": "RESOURCE_ID"
}

Compute Engine インスタンスなどのリージョン リソースに接続されているタグ バインディングを一覧表示する場合、リソースが存在するリージョン エンドポイントで effectivetags.list メソッドを使用します。

GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/effectivetags

{
    "parent": "RESOURCE_ID"
}

ここで

  • RESOURCE_ID はリソースの完全な ID です。例: //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION は、リソースのリージョン エンドポイント(us-central1 など)です。

正常な場合、レスポンスの本文には、TagBinding オブジェクトのリストが含まれます。例:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

リソースに評価されたすべてのタグが直接添付されている場合、inherited フィールドは false のため省略されます。

リソースのタグの取り外し

タグ バインディング リソースを削除すると、リソースからタグを取り外すことができます。

Console

リソースからタグを取り外すには、次のとおりにします。

  1. Google Cloud Console で [リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. タグを取り外す組織、フォルダ、またはプロジェクトをクリックします。

  3. 表示された情報パネルで、[タグ] タブをクリックします。

  4. [タグを削除] ラジオボタンをクリックします。

  5. 削除するタグパスの横にあるチェックボックスをオンにします。

  6. [保存] をクリックします。

  7. 追加したタグの更新されたリストは、[リソースの管理] ページの [タグ] 列で確認できます。

gcloud

タグ バインディングを削除するには、gcloud resource-manager tags bindings delete コマンドを使用します。

gcloud resource-manager tags bindings delete \
--tag-value=TAGVALUE_NAME \
--parent=RESOURCE_ID \
--location=LOCATION

ここで

  • TAGVALUE_NAME は、付加されているタグ値の永続 ID または名前空間名です。例: tagValues/567890123456

  • RESOURCE_ID は、リソースの完全 ID です。例: //cloudresourcemanager.googleapis.com/projects/7890123456

  • LOCATION は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースに付加されたタグ バインディングを削除する場合は、このフラグを省略する必要があります。リージョン リソース(Compute Engine インスタンスなど)に付加されたタグ バインディングを削除する場合は、ロケーションを指定する必要があります。例: us-central1

API

組織などのグローバル リソースに付加されたタグ バインディングを削除するには、tagBindings.delete メソッドを使用します。

DELETE https://cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

リージョン リソース(Compute Engine インスタンスなど)に付加されているタグ バインディングを削除する場合は、リソースが存在するリージョン エンドポイントで tagBindings.delete メソッドを使用します。

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

ここで

  • TAGBINDINGS_NAME は TagBinding の永続 ID です。例: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456

  • LOCATION は、リソースのリージョン エンドポイント(us-central1 など)です。

タグホールドによるタグ値の保護

タグ保留は、タグ値が削除されないようにするために作成できるリソースです。タグ値にタグホールドがある場合は、最初にタグホールドを削除しない限り、ユーザーはそれを削除できません。

タグ保留の作成

タグの保持は、gcloud CLI または API を使用して手動で作成できます。

gcloud

タグの保留を作成するには、gcloud alpha resource-manager tags holds create gcloud CLI コマンドを使用します。

  gcloud alpha resource-manager tags holds create TAGVALUE_NAME \
  --holder=HOLDER_NAME \
  --location=LOCATION

ここで

  • TAGVALUE_NAME は、このタグ保持を作成するタグ値の永続的な ID または名前空間名です(例: tagValues/567890123456)。

  • HOLDER_NAME は、タグ値が付加されているリソースの名前です。200 文字未満にする必要があります。

  • LOCATION は、リソースの場所です。Google Cloud プロジェクトなどのグローバル リソースのタグ保留を作成する場合は、このフラグを省略する必要があります。リージョン リソースまたはゾーンリソースにタグホールドを作成する場合は、ロケーションを指定する必要があります(例: us-central1)。

API

タグ値のタグ保留を作成するには、まずタグ保留の JSON 表現を作成する必要があります。この JSON リファレンスには、タグ値が付加されているリソースへの参照が含まれている必要があります。タグホールドの形式の詳細については、TagHolds リファレンスをご覧ください。

組織などのグローバル リソースに付加されるタグ値のタグ保留を作成する場合は、グローバル エンドポイントのホスト名を指定して tagHolds.create メソッドを使用します。

POST https://cloudresourcemanager.googleapis.com/v3/tagValues/TAGVALUE_NAME/tagHolds

リージョン リソース(Compute Engine インスタンスなど)に適用されるタグ値のタグ保留を作成する場合は、リソースが配置されているリージョン エンドポイントで tagHolds.create メソッドを使用します。

POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAGVALUE_NAME/tagHolds

JSON 本文のリクエスト:

{
    "holder":HOLDER_NAME,
    "origin":ORIGIN_NAME
}

ここで

  • TAGVALUE_NAME は、付加されているタグ値の永続 ID です。例: tagValues/4567890123

  • HOLDER_NAME は、タグ値が付加されているリソースの名前です。200 文字未満にする必要があります。

  • ORIGIN_NAME は、リクエストの送信元を表すオプションの文字列です。このフィールドには、オリジンを区別できるよう、人が理解できる情報を含める必要があります。200 文字未満にする必要があります。

タグの保留

gcloud CLI または API を使用して、特定のタグ値のすべてのタグ保留を一覧表示できます。

gcloud

タグ値の下にあるタグホールドを一覧表示するには、gcloud alpha resource-manager tags holds list gcloud CLI コマンドを使用します。

  gcloud alpha resource-manager tags holds list TAGVALUE_NAME \
  --location=LOCATION

ここで

  • TAGVALUE_NAME は、タグ値の永続的な ID または名前空間名です(例: tagValues/567890123456)。

  • LOCATION は、リソースの場所です。グローバルに作成されたタグホールドを探している場合は、このフラグを省略する必要があります。リージョン リソースまたはゾーンリソースの下にあるタグホールドを探す場合は、ロケーションを指定する必要があります(例: us-central1)。

API

タグ値の下にあるタグホールドのリストを取得するには、tagHolds GET メソッドを使用して、URL で親タグ値を指定します。

GET https://cloudresourcemanager.googleapis.com/v3/{TAGVALUE_NAME}/tagHolds

ここで

  • TAGVALUE_NAME は、タグ値の永続的な ID または名前空間名です(例: tagValues/567890123456)。

タグ保留の削除

gcloud CLI または API を使用して、特定のタグ値に対して作成されたタグホールドを削除できます。

リソースによっては、そのリソースに関連付けられたタグ値にタグホールドが追加されます。 このようなリソースにタグを適用すると、リソースにタグホールドが作成され、ユーザーは添付されたタグ値を削除できなくなります。

タグの保留は、gcloud CLI または API を使用して削除できます。

gcloud

タグの保留を削除するには、gcloud alpha resource-manager tags holds delete gcloud CLI コマンドを使用します。

  gcloud alpha resource-manager tags holds delete TAGHOLD_NAME \
  --location=LOCATION

ここで

  • TAGHOLD_NAME は、list コマンドを使用して確認できる、タグホールドの名前空間名です。例: tagValues/1012910994523/tagHolds/d1c8f5e2-2954-43d6-8f46-5f812ab48c37

  • LOCATION は、リソースの場所です。グローバル リソース(フォルダやプロジェクトなど)に付加されているタグ値の下にあるタグホールドを削除する場合は、このフラグを省略する必要があります。リージョン プロセスまたはゾーンプロセスから作成されたタグ保留を削除する場合は、ロケーションを指定する必要があります(例: us-central1)。

API

タグ値を削除するには、tagHolds.delete メソッドを使用します。

DELETE https://cloudresourcemanager.googleapis.com/v3/{TAGVALUE_NAME}/tagHolds/{TAGHOLD_NAME}

ここで

  • TAGVALUE_NAME は、削除するタグ保留が添付されているタグ値の永続的な ID です。例: tagValues/567890123456

  • TAGHOLD_NAME は、削除するタグホールドの名前空間名です。これは、list コマンドを使用して確認できます。例: tagValues/1012910994523/tagHolds/d1c8f5e2-2954-43d6-8f46-5f812ab48c37

タグの削除

タグを削除するには、タグを定義する各コンポーネントを削除する必要があります。まず、このタグを階層内のリソースに結びつけているタグ バインディングをすべて削除する必要があります。タグ バインディングの削除方法については、リソースからのタグの取り外しをご覧ください。

タグが別のリソースで使用されている場合、またはユーザーが手動でタグホールドを作成した場合は、タグ値を削除する前に、タグホールドとタグ バインディングの削除が必要になることがあります。タグ保留の削除については、タグ保留の削除をご覧ください。

削除するタグ値にタグ バインディングがなくなると、そのタグ値を削除できます。

Console

タグの値を削除するには、次のようにします。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. 削除するタグ値を含むタグキーの横にある [ アクション] をクリックし、[詳細を表示] をクリックします。

  5. このタグキーに関連付けられているタグ値のリストで、削除するタグ値をクリックします。

  6. 削除するタグ値の横にあるチェックボックスをクリックし、[ 値を削除] をクリックします。

  7. [Confirm] をクリックします。

gcloud

タグ値を削除するには、gcloud resource-manager tag values delete コマンドを使用します。

gcloud resource-manager tags values delete TAGVALUE_NAME

TAGVALUE_NAME は、削除するタグ値の永続 ID または名前空間名です。例: tagValues/567890123456

API

タグ値を削除するには、tagValues.delete メソッドを使用します。

DELETE https://cloudresourcemanager.googleapis.com/v3/{name=TAGVALUE_NAME}

ここで、TAGVALUE_NAME は削除するタグ値の永続 ID です。例: tagValues/567890123456

キーに関連付けられているタグ値をすべて削除すると、キーを削除できます。

Console

タグキーを削除するには、次のとおりにします。

  1. Google Cloud Console で [タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるプロジェクト選択ツールを選択します。

  3. 組織選択ツールから自分の組織を選択します。

  4. 削除するタグキーの横にあるチェックボックスをクリックします。

  5. [タグを削除] をクリックします。

  6. [Confirm] をクリックします。

gcloud

タグキーを削除するには、gcloud resource-manager tags keys delete コマンドを使用します。

gcloud resource-manager tags keys delete TAGKEYS_NAME

ここで、TAGKEYS_NAME は削除するタグキーの永続 ID または名前空間名です。例: tagKeys/123456789012

API

タグキーを削除するには、tagKeys.delete メソッドを使用します。

DELETE https://cloudresourcemanager.googleapis.com/v3/{name=TAGKEYS_NAME}

ここで、TAGKEYS_NAME は削除するタグキーの永続 ID です。例: tagKeys/123456789012

ポリシーとタグ

タグをサポートするポリシーを使用して、条件付きでこうしたポリシーを適用できます。ポリシーを適用する条件には、タグ値の有無を使用できます。

たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。

Identity and Access Management の条件とタグ

タグと Identity and Access Management Conditions を使用して、階層内のユーザーに条件付きでロールを付与できます。このプロセスにより、条件付きポリシーに関連付けられたタグが付加されるまで、ユーザーはリソースにアクセスできません。たとえば、リソースを使用する前に、デベロッパーにそのリソースへのコストセンターの割り当てを求めることができます。

  1. リソースに適切なガバナンスが適用されたかどうかを判定し、そのリソースを対象に関連付けるために使用できるタグを作成します。たとえば、キーが costCenter で値が 00010002 などのタグを作成し、会社でリソースをさまざまなコストセンターに関連付けできます。

  2. 組織レベルのカスタムロールを作成して、ユーザーがタグ付けを必要とするリソースにタグを付加できるようにします。これにより、組織内のどこでも指定したプリンシパルにこれらの権限が付与されます。

    たとえば、ユーザーがプロジェクトにタグを追加できるカスタムロールには次の権限が含まれます。

    • resourcemanager.projects.get
    • resourcemanager.hierarchyNodes.create
    • resourcemanager.hierarchyNodes.delete
    • resourcemanager.hierarchyNodes.list
  3. デベロッパー用にプロジェクトを作成する場合は、そのプロジェクトのカスタムロールをデベロッパーに割り当てます。

  4. そのプロジェクト内で必要なアクションを実行するための権限を含む、他のロールをデベロッパーに割り当てます。プロジェクトのユーザーにロールを付与する場合、costCenter タグの付加を要求するために、常にこのロールが条件付きで付与される必要があります。

    resource.hasTagKey('12345678901/costCenter')
    

これでプロジェクトが作成される際には、IAM ポリシーによって指定されたプロジェクト内でアクションを実行する前に、デベロッパーはプロジェクトに costCenter タグを付けることが必須となります。

サポート対象のサービス

タグをサポートするサービスのリストについては、タグをサポートするサービスをご覧ください。

既知の問題のトラブルシューティング

条件式の不具合

Google Cloud CLI を使用して add-iam-policy-binding コマンドを実行し、そのリソースの IAM ポリシーにそのロールの条件付きロール バインディングが含まれている場合、gcloud CLI ツールによって、ポリシー内に存在する条件式のいずれかを選択するよう求められます。カンマを含む条件式を選択すると、コマンドは失敗します。この問題を回避するには、--condition フラグを使用して、コマンドラインで条件式を指定します。