VPC リソースのタグの作成と管理

VPC ネットワークは、Resource Manager タグをサポートする次のリソースを使用します。

Resource Manager タグネットワーク タグとは異なります。このドキュメントでは、タグという用語は Resource Manager タグを指します。

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

ファイアウォール ポリシー ルールでタグを使用する方法については、ファイアウォールのタグをご覧ください。

タグについて

タグは、Cloud de Confiance by S3NS内のリソースに適用できる Key-Value ペアです。タグを使用すると、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーの許可や拒否を行うことができます。たとえば、リソースに特定のタグがあるかどうかに基づいて、Identity and Access Management(IAM)のロールを条件付きで付与できます。タグの詳細については、タグの概要をご覧ください。

タグは、タグと Cloud de Confiance by S3NS リソースを結びつけるタグ バインディング リソースを作成することによって、リソースに適用されます。

自動化と課金の目的で Virtual Private Cloud 内の VPC リソースをグループ化するには、ラベルを使用します。タグとラベルは互いに独立しているので、リソースにタグとラベルの両方を使用できます。

必要な権限

タグの管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • タグが適用されているリソースに対する タグ閲覧者 roles/resourcemanager.tagViewer
  • 組織レベルでタグを表示および管理する: 組織に対する組織閲覧者 roles/resourcemanager.organizationViewer
  • タグの定義を作成、更新、削除する: タグの作成、更新、削除を行うリソースに対するタグ管理者 roles/resourcemanager.tagAdmin
  • リソースにタグを適用またはリソースからタグを削除する: タグユーザー roles/resourcemanager.tagUser) タグ値と、タグ値を適用または削除するリソースに対して

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

タグを VPC リソースに適用するには、Compute ネットワーク管理者ロール(roles/compute.networkAdmin)が必要です。

タグキーとタグ値を作成する

タグを適用する前に、タグを作成してその値を構成する必要があります。タグキーとタグ値を作成する方法については、タグの作成タグ値の追加をご覧ください。

リソースの作成時にタグを追加する

タグは、ネットワーク、サブネットワーク、ルート、VPC ファイアウォール ルールの作成時に追加できます。リソースの作成時にタグを追加すると、リソースの重要なメタデータをすぐに提供できるだけでなく、整理、費用追跡、ポリシーの自動適用にも役立ちます。

gcloud

リソースの作成時にタグをリソースに付加するには、それぞれの create コマンドで --resource-manager-tags フラグを追加します。たとえば、ネットワークにタグを付加するには、次のコマンドを使用します。

gcloud compute networks create NETWORK_NAME \
    --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

次のように置き換えます。

  • NETWORK_NAME: ネットワークの名前
  • TAGKEY_ID: タグキー番号の数値 ID
  • TAGVALUE_ID: 付加されているタグ値の永続的な数値 ID(例: 4567890123

複数のタグを指定する場合は、タグをカンマで区切ります(例: TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2)。

API

次の URL に POST リクエストを送信します。

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT/global/networks

リクエスト本文で次の JSON を指定します。

      
    {
      "name": "NETWORK_NAME",
      "params": {
        "resourceManagerTags": {
          "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID",
        },
      }
      // Other fields omitted
    }

次のように置き換えます。

  • NETWORK_NAME: ネットワークの名前
  • TAGKEY_ID: タグキー番号の数値 ID
  • TAGVALUE_ID: 付加されているタグ値の永続的な数値 ID(例: 4567890123

既存のリソースにタグを追加する

既存の VPC リソースにタグを追加する手順は次のとおりです。

gcloud

VPC リソースにタグを付加するには、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/567890123456)。
  • RESOURCE_ID はリソースの完全な ID で、リソースのタイプ(//compute.googleapis.com/)を識別するために API ドメイン名が含まれています。リソースには名前ではなく数値 ID を使用する必要があります。たとえば、サブネット ID の形式は //compute.googleapis.com/projects/123/regions/us-central1/subnetworks/456 のようになります。ネットワーク ID は次のような形式になります。 //compute.googleapis.com/projects/123/global/networks/789
  • LOCATION: リソースのロケーション。フォルダやプロジェクトなどのグローバル リソースにタグを適用する場合は、このフラグを省略します。リージョン リソースまたはゾーンリソースにタグを適用する場合は、us-central1(リージョン)や us-central1-a(ゾーン)などのロケーションを指定する必要があります。

リソースに適用されたタグを一覧表示する

VPC リソースに直接適用されているか、VPC リソースによって継承されているタグ バインディングのリストを表示できます。

gcloud

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

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

次のように置き換えます。

  • RESOURCE_ID はリソースの完全な ID で、リソースのタイプ(//compute.googleapis.com/)を識別するために API ドメイン名が含まれています。リソースには名前ではなく数値 ID を使用する必要があります。たとえば、サブネット ID の形式は //compute.googleapis.com/projects/123/regions/us-central1/subnetworks/456 のようになります。ネットワーク ID は次のような形式になります。 //compute.googleapis.com/projects/123/global/networks/789
  • LOCATION: リソースのロケーション。フォルダやプロジェクトなどのグローバル リソースに適用されているタグを表示する場合は、このフラグを省略します。リージョン リソースまたはゾーンリソースに適用されているタグを表示する場合は、us-central1(リージョン)や us-central1-a(ゾーン) などのロケーションを指定する必要があります。

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

name: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
          tagValue: tagValues/567890123456
          resource: //compute.googleapis.com/projects/7890123456/subnetworks/subnetwork-ID
      

リソースからタグを削除する

VPC リソースに直接適用されたタグを解除できます。継承されたタグは、同じキーと別の値を持つタグを適用することでオーバーライドできますが、削除することはできません。

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 で、リソースのタイプ(//compute.googleapis.com/)を識別するために API ドメイン名が含まれています。リソースには名前ではなく数値 ID を使用する必要があります。たとえば、サブネット ID の形式は //compute.googleapis.com/projects/123/regions/us-central1/subnetworks/456 のようになります。ネットワーク ID は次のような形式になります。 //compute.googleapis.com/projects/123/global/networks/789
  • LOCATION: リソースのロケーション。フォルダやプロジェクトなどのグローバル リソースにタグを適用する場合は、このフラグを省略します。リージョン リソースまたはゾーンリソースにタグを適用する場合は、us-central1(リージョン)や us-central1-a(ゾーン)などのロケーションを指定する必要があります。

タグキーとタグ値を削除する

タグキーまたは値の定義を削除する場合は、VPC リソースからタグの適用が解除されていることを確認してください。タグ定義自体を削除する前に、既存のタグの適用(タグ バインディング)を削除する必要があります。タグキーとタグ値を削除するには、タグの削除をご覧ください。

Identity and Access Management の条件とタグ

タグと IAM Conditions を使用すると、階層内のユーザーに条件付きでロール バインディングを付与できます。条件付きロール バインディングを含む IAM ポリシーが適用されている場合、リソースに適用されたタグを変更または削除すると、そのリソースへのユーザー アクセスを削除できます。詳細については、Identity and Access Management の条件とタグをご覧ください。

次のステップ