Configurer des tags réseau

Un tag est simplement une chaîne de caractères ajoutée à un champ tags dans une ressource, telle que des instances de machine virtuelle (VM) Compute Engine ou des modèles 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 la 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

Lorsque vous créez une route, vous spécifiez un réseau VPC et des tags afin que la route ne s'applique qu'au trafic envoyé depuis l'adresse IP interne principale de l'interface réseau associée au réseau VPC des instances ayant des tags réseau correspondants.

Ajouter 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 des 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. Remplacez [INSTANCE-NAME] par le nom de l'instance, [ZONE] par sa zone et [TAGS] par une liste de chaînes séparées par une virgule :

gcloud compute instances create [INSTANCE-NAME] \
    --zone [ZONE] \
    --tags [TAGS] \
    ...other parameters as needed.

Pour en savoir plus, consultez la documentation sur gcloud.

Ajouter des tags à une VM existante

Console

  1. Accédez à la page des 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. Remplacez [INSTANCE-NAME] par le nom de l'instance, [ZONE] par sa zone et [TAGS] par une liste de chaînes séparées par une virgule :

gcloud compute instances add-tags [INSTANCE-NAME] \
    --zone [ZONE] \
    --tags [TAGS]

Pour en savoir plus, consultez la documentation sur gcloud.

Supprimer des tags

Console

  1. Accédez à la page des 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. Remplacez [INSTANCE-NAME] par le nom de l'instance, [ZONE] par sa zone et [TAGS] par une liste de tags à supprimer, séparés par une virgule :

gcloud compute instances remove-tags [INSTANCE-NAME] \
    --zone [ZONE] \
    --tags [TAGS]

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 à Cloud Console 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