Gérer les tags pour les ressources


Ce guide explique comment créer et gérer des tags pour les ressources Compute Engine. Un tag est une paire clé-valeur pouvant être associée à une ressource Google Cloud Platform. Les tags sont utilisés à plusieurs fins, y compris les tâches suivantes :

  • Autoriser ou refuser des règles de manière conditionnelle selon qu'une ressource possède un tag spécifique ou non.
  • Définissez les sources et les cibles dans les stratégies de pare-feu de réseau mondial et les stratégies de pare-feu réseau régionales.
  • Organiser les ressources de manière logique

Après avoir créé un tag et accordé un accès approprié à la fois au tag et à la ressource, vous pouvez associer le tag en tant que paire clé/valeur. Vous pouvez associer exactement une valeur à une ressource pour une clé donnée. Par exemple, si vous associez le tag environment: development, vous ne pouvez pas associer les tags environment: production ou environment: test. Chaque ressource peut être associée à un maximum de 50 paires clé/valeur.

Pour associer des tags à des ressources, vous devez créer une ressource TagBinding qui associe la valeur de tag à la ressource Google Cloud. Pour en savoir plus sur les tags et leur fonctionnement, consultez la page Présentation des tags.

Avant de commencer

  • Consultez la présentation des tags dans la documentation Resource Manager.
  • Consultez la section Créer et gérer des tags dans la documentation Resource Manager.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Autorisations

Pour gérer les tags des ressources Compute Engine, vous devez attribuer le rôle tagUser aux utilisateurs et aux comptes de service. Pour en savoir plus sur le rôle tagUser, consultez la section Autorisations requises.

Ressources compatibles

Les ressources suivantes ne sont compatibles qu'après la création des ressources :

  • Instance de machine virtuelle (VM)
  • Disque
  • Groupe d'instances géré
  • Image
  • Instantané
  • La plupart des ressources réseau telles que les ressources Network, Subnetwork, Pare-feu et HealthCheck.

Les ressources suivantes sont également compatibles avec l'ajout de tags lors de la création de ressources :

  • VM instance
  • Disque

Ajouter des tags à une ressource

Vous pouvez associer des tags existants à certaines ressources après leur création, en suivant les instructions ci-dessous.

Console

Selon le type de ressource, les étapes exactes peuvent être légèrement différentes. Par exemple, les étapes suivantes permettent d'associer un tag à une VM :

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Dans la colonne Nom, cliquez sur le nom de la VM à laquelle vous souhaitez ajouter des tags.

  4. Sur la page des détails de l'instance de VM, procédez comme suit :

    1. Cliquez sur Modifier.
    2. Dans la section Basique, cliquez sur Gérer les tags et ajoutez les tags souhaités pour l'instance.
    3. Cliquez sur Enregistrer.

gcloud

Pour obtenir des instructions détaillées sur l'utilisation de ces indicateurs, consultez la section Associer un tag à une ressource dans la documentation de Resource Manager.

Par exemple, la commande suivante associe un tag à une VM :

gcloud resource-manager tags bindings create \
    --location LOCATION_NAME \
    --tag-value=tagValues/TAGVALUE_ID \
    --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Remplacez les éléments suivants :

  • LOCATION_NAME : région de la ressource cible, par exemple us-central1
  • TAGVALUE_ID : ID numérique de la valeur de tag
  • PROJECT_NUMBER : ID numérique de votre projet
  • ZONE : nom de la zone, tel que us-central1-a
  • VM_ID : ID numérique de l'instance de VM

API

Pour associer un tag à une ressource, vous devez d'abord créer une représentation JSON d'une liaison de tag incluant l'ID permanent ou le nom de l'espace de noms de la valeur de tag et l'ID permanent de la ressource. Pour en savoir plus sur le format d'une liaison de tag, consultez la documentation de référence sur la liaison de tag.

Pour associer le tag à une ressource zonale, telle qu'une instance de VM, utilisez la méthode tagBindings.create avec le point de terminaison régional où se trouve votre ressource. Par exemple :

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

Le corps de la requête peut être l'un des éléments suivants :

{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValue": "tagValue/TAGVALUE_ID"
}

Ou alors :

{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME
}

Remplacez les éléments suivants :

  • LOCATION : emplacement auquel la ressource cible appartient
  • PROJECT_NUMBER : ID numérique de votre projet
  • ZONE : nom de la zone, tel que us-central1-a
  • VM_ID : ID numérique de la VM
  • TAGVALUE_ID : est l'ID permanent de la valeur de tag associée (par exemple, 4567890123)
  • TAGVALUE_NAMESPACED_NAME est le nom d'espace de noms de la valeur de tag associée et respecte le format suivant : parentNamespace/tagKeyShortName/tagValueShortName

Ajouter des tags à une ressource lors de la création de la ressource

Dans certains scénarios, vous pouvez ajouter des tags aux ressources lors de leur création plutôt qu'après leur création. Par exemple, vous pouvez appliquer des tags de pare-feu pour les règles de réseau lorsque vous créez la ressource de pare-feu Cloud nouvelle génération.

Console

Selon le type de ressource, les étapes exactes peuvent être légèrement différentes. Les étapes suivantes concernent une VM :

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Cliquez sur Créer une instance.

  4. Cliquez sur Gérer les tags et les libellés.

  5. Cliquez sur Ajouter des tags.

  6. Suivez les instructions du panneau latéral pour sélectionner les tags à ajouter à l'instance.

  7. Cliquez sur Enregistrer.

  8. Suivez les autres étapes de la page Créer et démarrer une instance de VM pour terminer la création de l'instance.

gcloud

Pour associer un tag à une ressource lors de la création de la ressource, ajoutez l'option --resource-manager-tags avec la commande create correspondante. Par exemple, pour associer un tag à une VM, utilisez la commande suivante :

gcloud compute instances create INSTANCE_NAME --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance
  • TAGKEY_ID : ID numérique du numéro de clé de tag
  • TAGVALUE_ID : ID numérique permanent de la valeur de tag associée (par exemple, 4567890123)

Spécifiez plusieurs tags en les séparant par une virgule, par exemple, TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2.

API

Envoyez une requête POST à l'URL suivante :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

Incluez le corps JSON de la requête suivante :

{
  "name": INSTANCE_NAME,
  "params": {
    "resourceManagerTags": {
      "tagKeys/TAGKEY_ID: "tagValues/TAGVALUE_ID",
    },
  }
  // other fields omitted
}

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance
  • TAGKEY_ID : ID numérique du numéro de clé de tag
  • TAGVALUE_ID : ID numérique permanent de la valeur de tag associée. Exemple : 4567890123

Dissocier un tag d'une ressource

Vous pouvez dissocier un tag d'une ressource en supprimant la ressource de liaison de tag.

Pour obtenir des instructions sur la dissociation de tags, consultez la section Dissocier un tag d'une ressource dans la documentation de Resource Manager.

Console

Selon le type de ressource, les étapes exactes peuvent être légèrement différentes. Par exemple, les étapes suivantes dissocient un tag d'une VM :

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Dans la colonne Nom, cliquez sur le nom de la VM à laquelle vous souhaitez ajouter des tags.

  4. Sur la page des détails de l'instance de VM, procédez comme suit :

    1. Cliquez sur Modifier.
    2. Dans la section Basique, cliquez sur Gérer les tags et supprimez les tags que vous souhaitez pour l'instance.
    3. Cliquez sur Enregistrer.

gcloud

L'exemple suivant dissocie un tag d'une VM à l'aide de gcloud CLI :

gcloud resource-manager tags bindings delete \
--location LOCATION_NAME \
--tag-value=tagValues/TAGVALUE_ID \
--parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Remplacez les éléments suivants :

  • LOCATION_NAME : région de la ressource cible, par exemple us-central1
  • TAGVALUE_ID : ID numérique de la clé de tag
  • PROJECT_NUMBER : ID numérique de votre projet
  • ZONE : nom de la zone, tel que us-central1-a
  • VM_ID : ID numérique de l'instance de VM

Pour mettre à jour ou remplacer une liaison de tag existante, dissociez l'ancienne liaison et associez la nouvelle.

API

Pour supprimer une liaison de tag associée à une ressource, telle qu'une VM, utilisez la méthode tagBindings.delete avec le point de terminaison régional où se trouve votre ressource.

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

Où :

  • TAGBINDINGS_NAME est l'ID permanent de la liaison de tag. Par exemple, tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456

  • LOCATION est le point de terminaison régional de votre ressource. Par exemple, us-central1.

Afficher les tags associés à une ressource

Pour obtenir des instructions détaillées sur la manière de répertorier les tags, consultez la section Répertorier les tags associés à une ressource dans la documentation Resource Manager.

Console

Selon le type de ressource, les étapes exactes peuvent être légèrement différentes. Par exemple, les étapes suivantes montrent comment afficher les tags d'une VM :

  1. Dans Google Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Dans la colonne Nom, cliquez sur le nom de la VM pour laquelle vous souhaitez afficher les tags.

  4. Sur la page des détails de l'instance de VM, recherchez les tags dans la section Tags.

gcloud

Pour obtenir la liste des liaisons de tags directement associées à une ressource, exécutez la commande gcloud resource-manager tags bindings list. Si vous ajoutez l'option --effective, vous renverrez également une liste de tags hérités par cette ressource. Par exemple :

gcloud resource-manager tags bindings list \
    --location=LOCATION_NAME \
    --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Remplacez les éléments suivants :

  • LOCATION_NAME : région de la ressource cible, par exemple us-central1
  • PROJECT_NUMBER : ID numérique de votre projet
  • ZONE : nom de la zone, tel que us-central1-a
  • VM_ID : ID numérique de l'instance de VM

Si vous ajoutez l'option --effective à la commande tags bindings list, vous obtiendrez également la liste de tous les tags hérités par cette ressource. Vous devriez obtenir un résultat semblable à celui-ci :

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

Si tous les tags évalués sur une ressource sont directement associés, le champ inherited est "false" et est omis.

API

Si vous souhaitez répertorier les liaisons de tags associées à une ressource régionale telle qu'une instance Compute Engine, utilisez la méthode tagBindings.list avec le point de terminaison régional où se trouve votre ressource. Par exemple :

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

{
    "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID"
}

Remplacez les éléments suivants :

  • LOCATION_NAME : région de la ressource cible, telle que us-central1
  • PROJECT_NUMBER : ID numérique de votre projet
  • ZONE : nom de la zone, tel que us-central1-a
  • VM_ID : ID numérique de l'instance de VM

Étapes suivantes