タグの作成と管理

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

準備

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

必要な権限

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

これらの権限を取得するには、リソース階層の適切なレベルで推奨されているロールの付与を管理者に依頼してください。

タグを表示する

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

必要な権限

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.list
  • resourcemanager.tagValues.get
  • 該当するリソースタイプに対する listTagBindings。たとえば、Compute Engine インスタンスに適用されているタグを表示する場合は compute.instances.listTagBindings
  • listEffectiveTags
  • (該当するリソースタイプに対する)。たとえば、compute.instances.listEffectiveTags は、Compute Engine インスタンスに付加されたすべてのタグを表示するか、そのインスタンスに継承されたすべてのタグを表示します。

組織レベルでタグを表示するには、組織リソースに対する組織閲覧者のロール(roles/resourcemanager.organizationViewer)が必要です。

タグを管理する

タグの定義を作成、更新、削除するには、タグ管理者ロール(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.organizationViewer)が必要です。

リソースのタグを管理する

リソースに付加されたタグを追加または削除するには、タグユーザー ロール(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 は、256 文字以下にする必要があります。shortName に使用できる文字セットは UTF-8 でエンコードされた Unicode 文字です。ただし、単一引用符(')、二重引用符(")、バックスラッシュ(\)、スラッシュ(/)を除きます。

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

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグキーを作成する組織またはプロジェクトを選択します。

  3. [ 作成] をクリックします。

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

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

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

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

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

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

gcloud

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

gcloud resource-manager tags keys create SHORT_NAME \
    --parent=RESOURCE_ID

ここで

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

  • RESOURCE_ID は、このタグキーの親組織またはプロジェクト リソースの ID です(例: organizations/123456789012projects/test-project123projects/234567890123)。組織 ID を取得する方法については、組織の作成と管理をご覧ください。プロジェクト ID を取得する方法については、プロジェクトの作成と管理をご覧ください。

次のようなレスポンスが返されます。

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

API

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

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

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

JSON 本文のリクエスト:

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

ここで

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

  • RESOURCE_ID は、このタグキーの親組織またはプロジェクト リソースの ID です(例: organizations/123456789012projects/test-project123projects/234567890123)。組織 ID を取得する方法については、組織の作成と管理をご覧ください。プロジェクト ID を取得する方法については、プロジェクトの作成と管理をご覧ください。

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

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

タグキーの表示

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

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグを含む組織またはプロジェクトを選択します。

  3. 選択した組織またはプロジェクトのすべてのタグがリストに表示されます。タグキーを確認するタグをクリックします。

gcloud

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

gcloud resource-manager tags keys describe TAGKEY_NAME

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

次のようなレスポンスが返されます。

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

API

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

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

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

名前空間付きの名前を使用して特定のタグキーに関連する情報を表示するには、tagKeys.getNamespaced メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/tagKeys/namespaced?name={TAGKEY_NAMESPACED_NAME}

TAGKEY_NAMESPACED_NAME は、タグキーの名前空間付きの名前で、形式は parentNamespace/tagKeyShortName です。

タグ値の追加

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

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

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

  • shortName の先頭は英数字にする必要があります。

  • shortName には、UTF-8 でエンコードされた Unicode 文字を含めることができます。ただし、単一引用符(')、二重引用符(")、バックスラッシュ(\)、スラッシュ( /)を除きます。

  • shortName は、一旦作成すると変更できず、同じ名前空間内で一意でなければなりません。

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグ値を作成する組織またはプロジェクトを選択します。

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

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

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

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

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

gcloud

タグ値を作成するには、gcloud resource-manager tags values 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 123456789012/environment...
<blocking wait until creation completes>
name: tagValues/7890123456
short_name: production
namespaced_name: 123456789012/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 か名前空間付名を使用して検索できます。

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグを含む組織またはプロジェクトを選択します。

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

gcloud

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

gcloud resource-manager tags values describe TAGVALUE_NAME

TAGVALUE_NAME は、タグ値の永続 ID または名前空間付きの名前です(例: tagValues/4567890123123456789012/environment/production)。

次のようなレスポンスが返されます。

name: tagValues/456789012345
short_name: production
namespaced_name: 123456789012/environment/production
parent: tagKeys/123456789012

API

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

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

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

名前空間付きの名前を使用して、特定のタグ値に関連する情報を表示するには、tagValues.getNamespaced メソッドを使用します。

GET https://cloudresourcemanager.googleapis.com/v3/tagValues/namespaced?name={TAGVALUE_NAMESPACED_NAME}

TAGVALUE_NAMESPACED_NAME は、タグ値の名前空間付きの名前で、形式は parentNamespace/tagKeyShortName/tagValueShortName です。

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

既存のタグの更新

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

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグキーを含む組織またはプロジェクトを選択します。

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

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

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

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

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: 123456789012/environment
description: "new description"
parent: organizations/123456789012

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. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグ値を含む組織またはプロジェクトを選択します。

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

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

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

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

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

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: 123456789012/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 コンソールまたは gcloud CLI を使用するか、API を呼び出します。

コンソール

すべてのタグを確認するには:

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグを含む組織またはプロジェクトを選択します。

  3. この組織またはプロジェクトで作成したすべてのタグがリストに表示されます。

gcloud

組織またはプロジェクトのリソースで作成されたすべてのタグキーのリストを取得するには、gcloud resource-manager tags keys list コマンドを使用します。

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

RESOURCE_ID は、付加されたタグキーを検索する組織またはプロジェクト リソースの ID です。

  • 組織 ID またはプロジェクト ID は、organizations/ORGANIZATION_ID または projects/PROJECT_NAME の形式で指定します(例: organizations/123456789012projects/test-project123)。組織 ID を取得する方法については、組織の作成と管理をご覧ください。プロジェクト 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/123456789012projects/test-project123)。

タグ値の一覧表示

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

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグキーを含む組織またはプロジェクトを選択します。

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

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

gcloud

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

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

TAGKEY_NAME は、付加された値を検索するタグキーの永続 ID または名前空間付きの名前です(例: tagKeys/1234567890121234567/environment)。

次のようなレスポンスが返されます。

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 コンソールを使用して、ユーザーにタグを管理する特定の権限を付与し、タグ値をリソースに付加できます。タグに関連するロールとそれらに含まれる権限のリストについては、必要な権限をご覧ください。

タグキー

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、アクセス権を管理するタグキーを含む組織またはプロジェクトを選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

タグの値

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、アクセス権を管理するタグキーを含む組織またはプロジェクトを選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

リソースへのタグ付け

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

タグは、タグと Google Cloud リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに付加されます。次のワークフローでは、組織、フォルダ、プロジェクト リソースにタグを付加する方法について説明します。別のタイプのリソースにタグを付加する方法については、そのリソースのドキュメントでタグをサポートするサービスをご覧ください。

コンソール

組織、フォルダ、またはプロジェクト リソースにタグを付加するには、次の操作を行います。

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

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

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

  3. [ タグ] をクリックします。

  4. [タグ] パネルで [スコープの選択] をクリックします。

  5. タグを含む組織またはプロジェクトを選択し、[開く] をクリックします。

  6. [タグ] パネルで、[タグを追加] を選択します。

  7. [キー] フィールドで、付加するタグのキーをリストから選択します。リストは、キーワードを入力してフィルタできます。

  8. [] フィールドで、付加するタグの値をリストから選択します。リストは、キーワードを入力してフィルタできます。

  9. さらにタグを付加する場合は、[ タグを追加] をクリックして、それぞれのキーと値を選択します。

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

  11. [確認] ダイアログで、[確認] をクリックしてタグを付加します。

  12. 通知により、タグが更新されたことを確認します。新しいタグは、[リソースの管理] ページの [タグ] 列に表示されます。

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/456789012312345678/environment/production)。

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

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

API

リソースにタグを付加するには、まず、タグ値の永続 ID または名前空間付きの名前と、リソースの永続 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,
}

または

{
    "parent": RESOURCE_ID,
    "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME,
}

ここで

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

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

  • TAGVALUE_NAMESPACED_NAME は、付加されているタグ値の名前空間付きの名前で、形式は parentNamespace/tagKeyShortName/tagValueShortName です。

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

リソースに付加されたタグの一覧は、継承されたタグか、直接付加されたタグの一覧を取得できます。

コンソール

リソースに付加または継承されたすべてのタグを表示するには、次の操作を行います。

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

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

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

  3. リソースに付加されているタグは、[タグ] 列に表示されます。継承されたタグは、 [継承] とマーク付けされます。

gcloud

リソースに直接適用されたタグ バインディングのリストを取得するには、gcloud resource-manager tags bindings list コマンドを使用します。--effective フラグを追加すると、このリソースが継承するタグのリストも返されます。

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

--effective フラグを tags bindings list コマンドに追加すると、このリソースが継承したすべてのタグのリストも返されます。次のようなレスポンスが返されます。

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

リソースで評価されるすべてのタグが直接付加されている場合は、inherited フィールドが false となり省略されます。

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

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

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

コンソール

組織、フォルダ、またはプロジェクト リソースからタグを切断するには、次の操作を行います。

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

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

  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 resource-manager tags holds create gcloud CLI コマンドを使用します。

  gcloud 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 resource-manager tags holds list gcloud CLI コマンドを使用します。

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

ここで

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

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

API

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

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

ここで

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

タグの保留を解除する

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

一部のリソースでは、そのリソースに付加されたタグ値にタグ保留を追加します。このようなリソースにタグを付加すると、リソースに付加されたタグ値の削除を防ぐタグ保留が作成されます。

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

gcloud

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

  gcloud 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

タグの削除

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

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

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

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグ値を含む組織またはプロジェクトを選択します。

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

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

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

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

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)。

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

コンソール

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

  1. Google Cloud コンソールで、[タグ] ページを開きます。

    [タグ] ページを開く

  2. ページの上部にあるスコープ選択ツールから、タグキーを含む組織またはプロジェクトを選択します。

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

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

  5. [確認] をクリックします。

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 の条件を使用すると、階層内のユーザーに条件付きでロールを付与できます。この処理では、条件付きポリシーに関連づけられたタグが付加されるまで、ユーザーはリソースにアクセスできなくなります。たとえば、デベロッパーがリソースを使用する前に、コストセンターをリソースに割り当てることを必須にできます。

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

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

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

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

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

    resource.hasTagKey('123456789012/costCenter')
    

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

組織のポリシーとタグ

タグと組織のポリシーの条件付き適用を使用すると、階層内のリソースを集中管理できます。詳細については、タグ付きの組織のポリシーの設定をご覧ください。

サポート対象のサービス

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

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

条件式の不具合

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