タグの作成と管理

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

始める前に

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

必要な権限

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

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

タグの表示

タグの定義を表示するには、タグ閲覧者ロール(roles/resourcemanager.tagViewer)か、次の権限を持つ別のロールが必要です。

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • resourcemanager.resourceTagBindings.list

タグの管理

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

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

リソースのタグの管理

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

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

    • resourcemanager.resourceTagBindings.create
    • resourcemanager.resourceTagBindings.delete
    • resourcemanager.resourceTagBindings.list
  • タグ値に関して必要な権限:

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

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

新しいタグの作成と定義

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

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

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

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

タグの作成

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

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

コンソール

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

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

    [タグ] ページを開く

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

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

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

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

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

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

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

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

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

gcloud

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

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

ここで

  • SHORT_NAME は、タグキーの表示名です。例: env

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

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

Creating tag key env in organization 1234567890...
<blocking wait until creation completes>
name: tagKeys/123456789012
short_name: env
namespaced_name: 12345678901/env
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 は、タグキーの表示名です。例: env

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

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

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

タグキーの表示

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

コンソール

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

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

    [タグ] ページを開く

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

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

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

gcloud

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

gcloud alpha resource-manager tags keys describe TAGKEY_NAME

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

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

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

API

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

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

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

タグ値の追加

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

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

コンソール

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

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

    [タグ] ページを開く

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

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

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

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

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

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

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

gcloud

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

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

ここで

  • TAGVALUE_SHORTNAME は、新しいタグ値の略称です。例: prod

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

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

Creating tag value prod in tag key 12345678901/env...
<blocking wait until creation completes>
name: tagValues/7890123456
short_name: prod
namespaced_name: 12345678901/env/prod
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 は、タグ値の表示名です。例: env

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

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

タグ値の取得

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

コンソール

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

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

    [タグ] ページを開く

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

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

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

gcloud

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

gcloud alpha resource-manager tags values describe TAGVALUE_NAME

ここで、TAGVALUE_NAME は、タグ値の名前空間付名です。例: 1234567890/env/prod

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

short_name: prod
namespaced_name: 1234567890/env/prod
parent: tagKeys/123456789012

API

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

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

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

gcloud コマンドライン ツールを使用してタグを参照する場合、タグキーとタグ値には、名前空間付名か永続 ID を使用できます。API の呼び出しでは、永続 ID のみを使用する必要があります。タグが使用する識別子の種類についての詳細は、タグの定義と識別子をご覧ください。

既存のタグの更新

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

コンソール

タグキーの説明を更新する方法は次のとおりです。

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

    [タグ] ページを開く

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

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

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

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

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

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

gcloud

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

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

ここで

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

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

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

name: tagKeys/123456789012
short_name: env
namespaced_name: 12345678901/env
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 文字以内で記述します。

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

コンソール

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

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

    [タグ] ページを開く

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

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

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

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

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

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

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

gcloud

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

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

ここで

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

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

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

short_name: prod
namespaced_name: 12345678901/env/prod
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 文字以内で記述します。

タグキーの一覧表示

特定の組織に関連付けられているすべてのタグキーのリストを表示するには、Cloud Console または gcloud ツールを使用するか、API を呼び出します。

コンソール

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

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

    [タグ] ページを開く

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

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

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

gcloud

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

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

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

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

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

NAME                     SHORT_NAME      DESCRIPTION
tagKeys/123456789012          env         description of tag key

API

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

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

{
    "parent": "RESOURCE_ID"
}

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

タグ値の一覧表示

特定のタグキーに関連付けられているすべてのタグ値のリストを表示するには、Cloud Console または gcloud ツールを使用するか、API を呼び出します。

コンソール

タグキーに添付されたタグ値をすべて表示する手順は次のとおりです。

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

    [タグ] ページを開く

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

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

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

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

gcloud

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

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

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

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

short_name: prod
namespaced_name: 12345678901/env/prod
parent: tagKeys/123456789012
description: "new description"

API

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

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

{
    "parent": "TAGKEY_NAME"
}

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

タグへのアクセスの管理

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

タグキー

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

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

    [タグ] ページを開く

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

タグの値

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

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

    [タグ] ページを開く

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

リソースへのタグ付け

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

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

コンソール

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

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

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

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

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

  4. [タグ バインディングを追加] ラジオボタンをクリックします。

  5. [タグ値] ボックスに、付加するタグ値の名前空間の名前を入力します。例: 4567890123/Environment/Test

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

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

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

gcloud

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

gcloud alpha 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 は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースにタグを付加する場合は、このフラグを省略する必要があります。リージョン リソースにタグを付加する場合は、場所を指定する必要があります。例: us-central1。現在、リージョン リソースではタグはサポートされていません。

API

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

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

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

リージョン リソースにタグを付加する場合は、リソースが配置されているリージョン エンドポイントを指定して tagBindings.create メソッドを使用します。現在、リージョン リソースではタグはサポートされていません。

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

JSON 本文のリクエスト

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

ここで

  • TAGBINDING_NAME は、タグ バインディングの名前です。例: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/4567890123

  • RESOURCE_ID は、このタグ値を付加するリソースの ID です。例: projects/7890123456

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

  • LOCATION は、リソースのリージョン エンドポイントです。例: us-central1

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

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

コンソール

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

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

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

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

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

gcloud

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

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

ここで

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

  • LOCATION は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースに付加されているタグを一覧表示する場合は、このフラグを省略する必要があります。リージョン リソースにタグを付加する場合は、その場所を指定する必要があります。例: 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"
}

リージョン リソースに付加されたタグ バインディングを一覧表示するには、リソースが配置されているリージョン エンドポイントで 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

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

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

コンソール

リソースからタグを切り離す手順は次のとおりです。

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

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

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

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

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

  5. [タグ値] ボックスに、削除するタグ値の名前空間の名前を入力します。例: 4567890123/Environment/Test

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

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

gcloud

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

gcloud alpha 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 は、リソースの場所です。フォルダやプロジェクトなどのグローバル リソースに付加されたタグ バインディングを削除する場合は、このフラグを省略する必要があります。リージョン リソースに付加されているタグ バインディングを削除する場合は、場所を指定する必要があります。例: us-central1。現在、リージョン リソースではタグはサポートされていません。

API

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

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

リージョン リソースに付加されているタグ バインディングを削除するには、リソースが配置されているリージョン エンドポイントで 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

タグの削除

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

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

コンソール

タグ値を削除する手順は次のとおりです。

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

    [タグ] ページを開く

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

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

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

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

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

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

gcloud

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

gcloud alpha 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

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

コンソール

タグキーを削除する方法は次のとおりです。

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

    [タグ] ページを開く

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

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

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

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

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

gcloud

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

gcloud alpha 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)のロールを条件付きで付与できます。

IAM でタグを使用して Google Cloud リソースへのアクセス権を制御する方法についての詳細は、タグとアクセス制御をご覧ください。

また、タグが設定された組織のポリシーを使用して、組織のポリシーの制約を適用する方法を制御することもできます。詳細については、タグ付きの組織のポリシーの設定をご覧ください。

リソースへのタグ付けの必須化

タグと Identity and Access Management の条件を使用して、階層内のリソースに対するタグ付けを必須にできます。このプロセスでは、特定のタグを付加するまでリソースが使用できなくなります。たとえば、デベロッパーがリソースを使用する前に、コストセンターをリソースに割り当てることを必須にできます。

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

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

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

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

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

    resource.hasTagKey('12345678901/costCenter')
    

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

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

条件式の不具合

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