このガイドでは、タグを作成して管理する方法について説明します。タグとは、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 つの環境が存在することを示すために、それぞれの値(production
、development
、test
)を作成できます。
特定の組織またはプロジェクトの下で作成できるキーは最大で 1,000 個で、各キーに対して合計 1,000 個の値を作成できます。
最後に、こうした値を階層内のリソースに付加し、Key-Value ペアの関連付けを持たせることができます。たとえば、組織全体の複数のテスト環境フォルダに test
を付加すると、それぞれが environment: test
の Key-Value ペアを持つことができます。
タグの作成
最初は、タグキーを作成する必要があります。
タグキーの shortName
は、256 文字以下にする必要があります。shortName
に使用できる文字セットは UTF-8 でエンコードされた Unicode 文字です。ただし、単一引用符('
)、二重引用符("
)、バックスラッシュ(\
)、スラッシュ(/
)を除きます。
shortName
は、作成した後は変更できません。また、同じ名前空間内で一意である必要があります。
コンソール
タグキーを作成するには次の操作を行います。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグキーを作成する組織またはプロジェクトを選択します。
[
作成] をクリックします。[タグキー] ボックスに、タグキーの表示名を入力します。これは、タグの名前空間名の一部になります。
[タグキーの説明] ボックスに、タグキーの説明を入力します。
このキーにタグ値を追加する場合は、作成する各タグ値の
[値を追加] をクリックします。[タグ値] ボックスに、タグ値の表示名を入力します。これは、タグの名前空間名の一部になります。
[タグの値の説明] ボックスに、タグ値の説明を入力します。
タグ値の追加が完了したら、[タグキーを作成] をクリックします。
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/123456789012
、projects/test-project123
、projects/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/123456789012
、projects/test-project123
、projects/234567890123
)。組織 ID を取得する方法については、組織の作成と管理をご覧ください。プロジェクト ID を取得する方法については、プロジェクトの作成と管理をご覧ください。DESCRIPTION
はキーの説明で、256 文字以内で記述します。
キーを作成すると、親リソース内で名前空間が設定された namespacedName
という一意の表示名と、name
という名前のグローバルに一意な永続 ID を確認できます。
タグキーの表示
特定のタグキーに関する情報は、作成時に表示されるこの永続 ID か名前空間付名を使用して検索できます。
コンソール
作成したタグを表示する方法は次のとおりです。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグを含む組織またはプロジェクトを選択します。
選択した組織またはプロジェクトのすべてのタグがリストに表示されます。タグキーを確認するタグをクリックします。
gcloud
特定のタグキーに関連する情報を表示するには、gcloud resource-manager tags keys describe
コマンドを使用します。
gcloud resource-manager tags keys describe TAGKEY_NAME
TAGKEY_NAME
は、情報を表示するタグキーの永続 ID または名前空間付きの名前です(例: tagKeys/123456789012
、project-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
は、一旦作成すると変更できず、同じ名前空間内で一意でなければなりません。
コンソール
タグの値を作成するには次の操作を行います。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグ値を作成する組織またはプロジェクトを選択します。
タグのリストで、新しい値を追加するタグをクリックします。
[
値を追加] をクリックします。[タグ値] ボックスに、タグ値の表示名を入力します。これは、タグの名前空間名の一部になります。
[タグの値の説明] ボックスに、タグ値の説明を入力します。
[保存] をクリックします。
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 か名前空間付名を使用して検索できます。
コンソール
作成したタグを表示する方法は次のとおりです。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグを含む組織またはプロジェクトを選択します。
この組織またはプロジェクトで作成したすべてのタグがリストに表示されます。タグの値を確認するタグをクリックします。
gcloud
特定のタグ値に関連する情報を表示するには、gcloud resource-manager tags values describe
コマンドを使用します。
gcloud resource-manager tags values describe TAGVALUE_NAME
TAGVALUE_NAME
は、タグ値の永続 ID または名前空間付きの名前です(例: tagValues/4567890123
、123456789012/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 を更新することで変更できます。 タグの説明は更新できますが、略称は更新できません。
コンソール
タグキーの説明を更新するには、次の手順を行います。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグキーを含む組織またはプロジェクトを選択します。
更新するタグキーの横にある [
アクション] をクリックし、[詳細を表示] をクリックします。画面の上部付近の [説明] の横にある [
編集] をクリックします。タグキーの説明を更新します。
[保存] をクリックします。
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 文字以内で記述します。
タグ値の説明を変更することもできます。
コンソール
タグ値の説明を更新するには、次の手順を行います。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグ値を含む組織またはプロジェクトを選択します。
更新する値のタグキーの横にある [
アクション] をクリックし、[詳細を表示] をクリックします。更新するタグ値の横にある [
アクション] をクリックし、[詳細を表示] をクリックします。画面の上部付近の [説明] の横にある [
編集] をクリックします。タグ値の説明を更新します。
[保存] をクリックします。
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 を呼び出します。
コンソール
すべてのタグを確認するには:
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグを含む組織またはプロジェクトを選択します。
この組織またはプロジェクトで作成したすべてのタグがリストに表示されます。
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/123456789012
、projects/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/123456789012
、projects/test-project123
)。
タグ値の一覧表示
特定のタグキーに関連付けられているすべてのタグ値は、Google Cloud コンソールや gcloud CLI を使用するか、API を呼び出して一覧表示できます。
コンソール
タグキーにアタッチされたタグ値をすべて表示するには、次のとおりにします。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグキーを含む組織またはプロジェクトを選択します。
探しているタグ値を含むタグキーの横にある [
アクション] をクリックし、次に [詳細を表示] をクリックします。このタグキーの下のリストに作成したすべてのタグ値が表示されます。
gcloud
キーに関連付けられたすべてのタグ値のリストを取得するには、gcloud resource-manager tags values list
コマンドを使用します。
gcloud resource-manager tags values list --parent=TAGKEY_NAME
TAGKEY_NAME
は、付加された値を検索するタグキーの永続 ID または名前空間付きの名前です(例: tagKeys/123456789012
、1234567/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 コンソールを使用して、ユーザーにタグを管理する特定の権限を付与し、タグ値をリソースに付加できます。タグに関連するロールとそれらに含まれる権限のリストについては、必要な権限をご覧ください。
タグキー
タグ値でユーザーのアクセスを管理する手順は次のとおりです。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、アクセス権を管理するタグキーを含む組織またはプロジェクトを選択します。
アクセスを管理するタグの横にあるチェックボックスをクリックします。
[
アクセスを管理する] をクリックします。プリンシパルにロールを追加するには、[
プリンシパルを追加] をクリックします。[新しいプリンシパル] テキスト ボックスに、新しいロールを付与するプリンシパルのメールアドレスを入力します。
[ロールを選択] プルダウン メニューからロールを選択します。複数のロールを追加する場合は、
[別のロールを追加] をクリックします。[保存] をクリックします。
プリンシパルのロールを編集するには、編集するプリンシパルの横にある [
編集] をクリックします。[ロール] プルダウン メニューをクリックして新しいロールを選択すると、このタグのプリンシパルに割り当てられたロールを変更できます。
ロールをさらに追加するには、[
別のロールを追加] をクリックします。このタグで、プリンシパルのロールを削除するには、削除するロールの横にある [
ロールを削除] をクリックします。[保存] をクリックします。
プリンシパルのロールを削除するには、削除するロールの横にある [
ロールを削除] をクリックします。- [削除] をクリックします。
タグの値
タグ値でユーザーのアクセスを管理する手順は次のとおりです。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、アクセス権を管理するタグキーを含む組織またはプロジェクトを選択します。
アクセスを管理する値のタグキーの横にある [
アクション] をクリックし、[詳細を表示] をクリックします。[
アクセスを管理する] をクリックします。プリンシパルにロールを追加するには、[
プリンシパルを追加] をクリックします。[新しいプリンシパル] テキスト ボックスに、新しいロールを付与するプリンシパルのメールアドレスを入力します。
[ロールを選択] プルダウン メニューからロールを選択します。複数のロールを追加する場合は、
[別のロールを追加] をクリックします。[保存] をクリックします。
プリンシパルのロールを編集するには、編集するプリンシパルの横にある [
編集] をクリックします。[ロール] プルダウン メニューをクリックして新しいロールを選択すると、このタグのプリンシパルに割り当てられたロールを変更できます。
ロールをさらに追加するには、[
別のロールを追加] をクリックします。このタグで、プリンシパルのロールを削除するには、削除するロールの横にある [
ロールを削除] をクリックします。[保存] をクリックします。
プリンシパルのロールを削除するには、削除するロールの横にある [
ロールを削除] をクリックします。- [削除] をクリックします。
リソースへのタグ付け
タグが作成され、タグとリソースの両方に対する適切なアクセス権が付与されると、タグを Google Cloud リソースに Key-Value ペアとして付加できます。特定のキーのリソースに付加できる値は、1 つだけです。たとえば、environment: development
が付加されている場合、environment: production
や environment: test
は付加できません。各リソースには、最大 50 個の Key-Value ペアを付加できます。
タグは、タグと Google Cloud リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに付加されます。次のワークフローでは、組織、フォルダ、プロジェクト リソースにタグを付加する方法について説明します。別のタイプのリソースにタグを付加する方法については、そのリソースのドキュメントでタグをサポートするサービスをご覧ください。
コンソール
組織、フォルダ、またはプロジェクト リソースにタグを付加するには、次の操作を行います。
Google Cloud コンソールで [リソースの管理] ページを開きます。
タグをアタッチする組織、フォルダ、またはプロジェクトをクリックします。
[
タグ] をクリックします。[タグ] パネルで [スコープの選択] をクリックします。
タグを含む組織またはプロジェクトを選択し、[開く] をクリックします。
[タグ] パネルで、[タグを追加] を選択します。
[キー] フィールドで、付加するタグのキーをリストから選択します。リストは、キーワードを入力してフィルタできます。
[値] フィールドで、付加するタグの値をリストから選択します。リストは、キーワードを入力してフィルタできます。
さらにタグを付加する場合は、[
タグを追加] をクリックして、それぞれのキーと値を選択します。[保存] をクリックします。
[確認] ダイアログで、[確認] をクリックしてタグを付加します。
通知により、タグが更新されたことを確認します。新しいタグは、[リソースの管理] ページの [タグ] 列に表示されます。
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
、12345678/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
です。
リソースに付加されたタグの一覧表示
リソースに付加されたタグの一覧は、継承されたタグか、直接付加されたタグの一覧を取得できます。
コンソール
リソースに付加または継承されたすべてのタグを表示するには、次の操作を行います。
Google Cloud コンソールで [リソースの管理] ページを開きます。
リソースのリストから組織、フォルダ、またはプロジェクトを見つけます。
リソースに付加されているタグは、[タグ] 列に表示されます。継承されたタグは、
[継承] とマーク付けされます。
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
リソースのタグの取り外し
タグ バインディング リソースを削除すると、リソースからタグを取り外すことができます。
コンソール
組織、フォルダ、またはプロジェクト リソースからタグを切断するには、次の操作を行います。
Google Cloud コンソールで [リソースの管理] ページを開きます。
タグを取り外す組織、フォルダ、またはプロジェクトをクリックします。
[
タグ] をクリックします。[タグ] パネルで、切断するタグの横にある
[項目を削除] をクリックします。[保存] をクリックします。
[確認] ダイアログで、[確認] をクリックしてタグを切断します。
通知により、タグが更新されたことを確認します。更新されたタグのリストが [リソースの管理] ページの [タグ] 列に表示されます。
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
タグの削除
タグを削除するには、タグを定義する各コンポーネントを削除する必要があります。まず、このタグを階層内のリソースに結びつけているタグ バインディングをすべて削除する必要があります。タグ バインディングの削除方法については、リソースからのタグの取り外しをご覧ください。
タグが別のリソースで使用されている場合や、ユーザーが手動でタグ保留を作成した場合は、タグ値を削除する前に、タグ保留とタグ バインディングを削除する必要があります。タグの保留の解除については、タグの保留の解除をご覧ください。
削除するタグ値にタグ バインディングがなくなると、そのタグ値を削除できます。
コンソール
タグの値を削除するには、次のようにします。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグ値を含む組織またはプロジェクトを選択します。
削除するタグ値を含むタグキーの横にある [
アクション] をクリックし、[詳細を表示] をクリックします。このタグキーに関連付けられているタグ値のリストで、削除するタグ値をクリックします。
削除するタグ値の横にあるチェックボックスをクリックし、[
値を削除] をクリックします。[確認] をクリックします。
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
)。
キーに関連付けられているタグ値をすべて削除すると、キーを削除できます。
コンソール
タグキーを削除するには、次のとおりにします。
Google Cloud コンソールで、[タグ] ページを開きます。
ページの上部にあるスコープ選択ツールから、タグキーを含む組織またはプロジェクトを選択します。
削除するタグキーの横にあるチェックボックスをクリックします。
[タグを削除] をクリックします。
[確認] をクリックします。
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 の条件を使用すると、階層内のユーザーに条件付きでロールを付与できます。この処理では、条件付きポリシーに関連づけられたタグが付加されるまで、ユーザーはリソースにアクセスできなくなります。たとえば、デベロッパーがリソースを使用する前に、コストセンターをリソースに割り当てることを必須にできます。
リソースに適切なガバナンスが適用されたかどうかを判定し、そのリソースを対象に関連付けるために使用できるタグを作成します。たとえば、キーが
costCenter
で値が0001
、0002
などのタグを作成し、会社でリソースをさまざまなコストセンターに関連付けできます。組織レベルのカスタムロールを作成して、ユーザーがタグ付けを必要とするリソースにタグを付加できるようにします。これにより、組織内のどこでも指定したプリンシパルにこれらの権限が付与されます。
たとえば、ユーザーがプロジェクトにタグを追加できるカスタムロールには次の権限が含まれます。
resourcemanager.projects.get
resourcemanager.hierarchyNodes.create
resourcemanager.hierarchyNodes.delete
resourcemanager.hierarchyNodes.list
デベロッパー用にプロジェクトを作成する場合は、そのプロジェクトのカスタムロールをデベロッパーに割り当てます。
そのプロジェクト内で必要なアクションを実行するための権限を含む、他のロールをデベロッパーに割り当てます。プロジェクトのユーザーにロールを付与する場合、
costCenter
タグの付加を要求するために、常にこのロールが条件付きで付与される必要があります。resource.hasTagKey('123456789012/costCenter')
これでプロジェクトが作成される際には、IAM ポリシーによって指定されたプロジェクト内でアクションを実行する前に、デベロッパーはプロジェクトに costCenter
タグを付けることが必須となります。
組織のポリシーとタグ
タグと組織のポリシーの条件付き適用を使用すると、階層内のリソースを集中管理できます。詳細については、タグ付きの組織のポリシーの設定をご覧ください。
サポート対象のサービス
タグをサポートするすべてのサービスのリストについては、タグをサポートするサービスをご覧ください。
既知の問題のトラブルシューティング
条件式の不具合
Google Cloud CLI を使用して add-iam-policy-binding
コマンドのいずれかを実行し、そのリソースの IAM ポリシーにそのロールの条件付きロール バインディングが含まれている場合は、gcloud CLI ツールにより、ポリシーに存在する条件式のいずれかを選択するように求められます。カンマを含む条件式を選択すると、そのコマンドは失敗します。この問題を回避するには、--condition
フラグを使用して、コマンドラインで条件式を指定します。