Ajouter des tags réseau

Un tag est simplement une chaîne de caractères ajoutée à un champ tags dans une ressource, telle qu'une instance de machine virtuelle (VM) Compute Engine ou un modèle d'instance. Un tag n'étant pas une ressource distincte, vous ne pouvez pas le créer séparément. Toutes les ressources contenant cette chaîne sont considérées comme possédant ce tag. Les tags vous permettent d'appliquer des règles de pare-feu et des routes à des instances de VM spécifiques.

Vous pouvez attribuer des tags réseau à de nouvelles VM au moment de la création ou, ultérieurement, modifier l'ensemble de tags attribués à tout moment. Il n'est pas nécessaire d'arrêter une VM pour modifier les tags réseau.

Spécifications

Les tags réseau que vous attribuez à une instance s'appliquent à toutes ses interfaces réseau. Un tag réseau ne s'applique qu'aux réseaux VPC directement associés aux interfaces réseau de l'instance. Cela est valable même pour l'appairage de réseaux VPC, car les réseaux appairés demeurent des réseaux distincts. Par conséquent, les tags réseau ne restent utiles que sur le réseau auquel l'interface réseau de l'instance est associée.

Les tags réseau doivent commencer par une lettre minuscule et peuvent contenir des lettres minuscules, des chiffres et des tirets. Ils doivent se terminer par une lettre minuscule ou un chiffre.

Autorisations

Les rôles IAM suivants sont requis pour les tâches décrites sur cette page. Pour en savoir plus, consultez la page Rôles IAM Compute Engine.

Tâche Rôle requis
Attribuer un tag réseau à une nouvelle instance lors de sa création Propriétaire ou éditeur du projet, ou administrateur de l'instance
Ajouter ou supprimer des tags réseau sur des instances existantes
Ajouter, supprimer ou modifier des règles de pare-feu Propriétaire ou éditeur du projet, ou administrateur de sécurité

Limites

Les tags réseau sont soumis aux limites suivantes :

Limite Valeur Description
Nombre maximal de tags par VM 64 Tous les tags d'une VM doivent être uniques. Vous pouvez attribuer jusqu'à 64 tags différents par VM.
Nombre maximal de caractères pour chaque tag 63
Caractères acceptables pour un tag lettres minuscules, chiffres, tirets En outre :
• Les tags doivent commencer par une lettre minuscule.
• Les tags doivent se terminer par un chiffre ou une lettre minuscule.

Règles de pare-feu et routes

Les tags réseau vous permettent d'appliquer des règles de pare-feu et des routes à une instance ou à un ensemble d'instances donné :

  • Vous pouvez définir une règle de pare-feu applicable à des instances spécifiques en utilisant des tags cibles et des tags sources.

  • Vous pouvez créer une route applicable à des instances spécifiques en utilisant un tag.

Cibles pour les règles de pare-feu

Chaque règle de pare-feu dans Google Cloud doit être associée à une cible qui définit les instances auxquelles elle s'applique. La cible par défaut est constituée de toutes les instances du réseau, mais vous pouvez spécifier certaines instances cibles à l'aide de tags cibles ou de comptes de service cibles.

Le tag cible définit les VM Google Cloud auxquelles la règle s'applique. La règle est appliquée à un réseau VPC spécifique. Elle s'applique à l'adresse IP interne principale associée à l'interface réseau de toute instance rattachée à un réseau VPC ayant un tag réseau correspondant.

Les règles de pare-feu d'entrée et de sortie comportent toutes deux des cibles :

  • Les règles d'entrée s'appliquent au trafic entrant dans votre réseau VPC. Pour les règles d'entrée, les cibles sont des machines virtuelles de destination dans Google Cloud.

  • Les règles de sortie s'appliquent au trafic quittant votre réseau VPC. Pour les règles de sortie, les cibles sont des machines virtuelles sources dans Google Cloud.

Prenons une règle de pare-feu d'entrée qui autorise le trafic sur le port TCP 80 à partir de n'importe quelle source. La règle comporte un tag cible http-server. Elle ne s'applique alors qu'aux instances ayant le tag réseau http-server, ce qui signifie que le trafic entrant sur le port 80 serait autorisé pour ces instances.

Filtres sources pour les règles de pare-feu d'entrée

Lorsque vous créez des règles de pare-feu d'entrée, vous devez spécifier une source. Vous pouvez la définir en utilisant des plages d'adresses IP internes ou externes, ou en vous référant à des instances spécifiques. Pour spécifier des instances, vous pouvez utiliser des tags sources ou des comptes de service sources.

Le tag source d'une règle de pare-feu d'entrée appliquée sur un réseau VPC définit une source de trafic provenant de l'adresse IP interne principale associée à l'interface réseau rattachée au réseau VPC de toute instance ayant un tag réseau correspondant.

Vous pouvez utiliser une combinaison de plages d'adresses IP et de tags sources, ou une combinaison de plages d'adresses IP et de comptes de service sources. Vous ne pouvez pas utiliser les tags réseau et les comptes de service dans la même règle. Pour en savoir plus sur les tags et comptes de service sources, consultez la section Filtrer par compte de service ou par tag réseau.

Remarques

Lorsque vous utilisez une règle de pare-feu d'entrée avec des tags sources, vous pouvez observer un délai de propagation. Ce délai est généralement de quelques secondes, mais dans de rares cas, il peut être de quelques minutes. Lorsque vous apportez les modifications suivantes, la prise en compte ou la suppression de la règle de pare-feu d'entrée dans une instance associée peut prendre du temps :

  • Démarrage ou arrêt d'une instance dont le tag est associé au tag source d'une règle
  • Démarrage d'une instance dont le tag est associé au tag cible d'une règle
  • Ajout ou suppression de tags dans une instance si les tags sont utilisés dans les champs sources ou cibles d'une règle
  • Ajout ou suppression de tags sources ou cibles dans une règle

Ce délai de propagation s'applique uniquement aux règles d'entrée qui utilisent des tags sources. Toutes les autres règles de pare-feu prennent effet immédiatement sur une instance. Par exemple, une règle d'entrée qui utilise une plage d'adresses IP source et des tags cibles ne présente pas de délai de propagation.

Interaction avec les routes statiques

Lorsque vous créez une route statique, vous spécifiez un réseau VPC. Vous pouvez ensuite spécifier des tags pour que la route ne s'applique qu'au trafic envoyé par les VM comportant des tags réseau correspondants dans le réseau VPC spécifié.

Ajouter, afficher et supprimer des tags

Vous pouvez spécifier des tags réseau lors de la création d'une instance de VM. Vous pouvez également ajouter et supprimer des tags à une VM existante.

Ajouter des tags lors de la création d'une VM

Console

  1. Accédez à la page "Instances de VM".
    Accéder à la page Instances de VM
  2. Cliquez sur Créer une instance.
  3. Cliquez sur Gestion, sécurité, disques, mise en réseau et location unique pour ouvrir cette section.
  4. Cliquez sur l'onglet Réseau.
  5. Dans le champ Tags réseau, spécifiez un ou plusieurs tags, séparés par une virgule.
  6. Spécifiez les autres champs de la VM.
  7. Cliquez sur Créer.

gcloud

Pour attribuer de nouveaux tags à une instance, utilisez la commande gcloud suivante.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS \
    ...other parameters as needed.

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.
  • ZONE : zone de l'instance.
  • TAGS : liste de tags séparés par des virgules.

Pour en savoir plus, consultez la documentation sur gcloud.

Terraform

Vous pouvez utiliser la ressource Terraform pour créer une instance de VM dotée de tags réseau.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  tags = ["health-check", "ssh"]
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Ajouter des tags à une VM existante

Console

  1. Accédez à la page "Instances de VM".
    Accéder à la page Instances de VM
  2. Cliquez sur le nom d'une instance.
  3. Sur la page Informations sur l'instance de VM, cliquez sur Modifier.
  4. Dans la section Tags réseau, spécifiez un ou plusieurs tags, séparés par une virgule.
  5. Cliquez sur Enregistrer.

gcloud

Pour attribuer de nouveaux tags à une instance, utilisez la commande gcloud suivante.

gcloud compute instances add-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.
  • ZONE : zone de l'instance.
  • TAGS : liste de tags séparés par des virgules.

Pour en savoir plus, consultez la documentation sur gcloud.

Afficher les tags

Console

  1. Accédez à la page "Instances de VM".
    Accéder à la page Instances de VM
  2. Affichez les tags dans la colonne Tags réseau.

    Si nécessaire, cliquez sur Options d'affichage des colonnes pour ajouter la colonne Tags réseau.

  3. Pour afficher les instances associées à un tag spécifique, sélectionnez la propriété Tags réseau dans le filtre et saisissez les tags à filtrer.

gcloud

Pour répertorier les instances avec leurs tags, exécutez cette commande :

gcloud compute instances list --format='table(name,status,tags.list())'

Pour répertorier les instances marquées d'un tag spécifique, exécutez la commande suivante :

gcloud compute instances list --filter='tags:TAG_EXPRESSION'

Remplacez les éléments suivants :

  • TAG_EXPRESSION : expression que vous souhaitez filtrer. tag1, tag1 OR tag2 ou tag1 AND tag2 par exemple. Pour en savoir plus sur le filtrage des résultats, consultez la page gcloud topic filters.

Supprimer les tags

Console

  1. Accédez à la page "Instances de VM".
    Accéder à la page Instances de VM
  2. Cliquez sur le nom d'une instance.
  3. Sur la page Informations sur l'instance de VM, cliquez sur Modifier.
  4. Dans la section Tags réseau, supprimez les tags en cliquant sur l'icône de suppression (X).
  5. Cliquez sur Enregistrer.

gcloud

Pour supprimer des tags d'une instance, utilisez la commande gcloud suivante.

gcloud compute instances remove-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.
  • ZONE : zone de l'instance.
  • TAGS : liste de tags séparés par des virgules.

Pour en savoir plus, consultez la documentation sur gcloud.

Requêtes API directes

Vous pouvez définir les tags réseau associés à une instance en effectuant une requête API directe. Contrairement à la console Google Cloud ou aux commandes gcloud, la mise à jour des tags par une requête API directe ne conserve pas les tags existants. Veillez à bien spécifier l'ensemble complet de tags à associer à une instance chaque fois que vous mettez à jour des tags de cette manière.

Pour mettre à jour les tags à l'aide d'une requête API directe, procédez comme suit :

  1. Déterminez la dernière empreinte numérique associée aux tags. L'empreinte numérique permet d'éviter les conflits entre les requêtes API simultanées. Le processus de mise à jour des tags réseau pour une instance est semblable à la mise à jour des métadonnées d'instance.

    Effectuez une requête GET sur l'instance, par exemple :

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
    

    Recherchez la propriété tags.fingerprint dans la réponse :

    200 OK
    {
    ...
    "tags": {
     "items": [
     "http-server",
     "db-client"
     ],
     "fingerprint": "MW8EqhxILtc="
    },
    ...
    }
    

    Vous pouvez également utiliser une commande gcloud pour obtenir le code fingerprint, comme illustré dans l'exemple suivant :

    gcloud compute instances describe INSTANCE_NAME \
       --zone ZONE \
       --format="get(tags.fingerprint)"
  2. Envoyez une requête POST à la méthode instance().setTags. Le corps de la requête doit contenir tous les tags à associer à l'instance, ainsi que la valeur fingerprint.

    Exemple de requête :

    POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setTags
    {
     "items": [
      "http-server",
      "db-client",
      "allow-internet-access"
      ],
     "fingerprint": "MW8EqhxILtc="
    }
    

    Exemple de réponse :

    200 OK
    {
          "kind": "compute#operation",
          "id": "9251830049681941507",
          "name": "operation-1442414898862-51fde63aa57b1-422323e0-c439fb04",
          "zone": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
          "operationType": "setTags",
          "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance",
          "targetId": "4392196237934605253",
          "status": "PENDING",
          "user": "user@example.com",
          "progress": 0,
    ...
    }
    

Étapes suivantes