Configurer des tags réseau

Les tags réseau sont des attributs de texte que vous pouvez ajouter aux instances de machine virtuelle (VM) Compute Engine. Ils vous permettent de définir des règles de pare-feu et des routes applicables à des instances de VM spécifiques.

Vous ne pouvez ajouter de tags réseau qu'aux instances de VM ou aux modèles d'instances. Vous ne pouvez pas ajouter de tags à d'autres ressources GCP. Vous pouvez attribuer des tags réseau à de nouvelles instances au moment de la création ou modifier plus tard l'ensemble des tags attribués. Vous pouvez modifier des tags réseau sans arrêter l'instance.

Spécifications

Les tags réseau que vous attribuez à une instance ne s'appliquent qu'au réseau VPC où se trouve l'interface réseau principale 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 qui contient l'interface réseau principale de l'instance.

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 De plus :
• 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 de GCP doit disposer d'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 machines virtuelles de GCP auxquelles la règle s'applique. Celle-ci sera applicable à l'adresse IP interne principale de toute instance 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 ces règles, les cibles sont des machines virtuelles de destination dans GCP.

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

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. Cette règle ne s'appliquerait 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, utilisez des tags sources ou des comptes de service sources.

Le tag source d'une règle de pare-feu d'entrée définit une source de trafic provenant de l'adresse IP interne principale 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.

Interaction avec les routes

Lorsque vous créez une route, vous pouvez spécifier des tags afin qu'elle ne soit applicable qu'au trafic envoyé depuis l'adresse IP interne principale des instances ayant des tags réseau correspondants.

Ajouter et supprimer des tags

Ajouter des tags

Console

  1. Accédez à la page "Instances de VM".
    Accéder à la page "Instances de VM"
  2. Sélectionnez 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 plus d'informations, consultez la documentation relative à gcloud.

Supprimer des tags

Console

  1. Accédez à la page "Instances de VM".
    Accéder à la page "Instances de VM"
  2. Sélectionnez 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 plus d'informations, consultez la documentation relative à 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 à l'utilisation de la console GCP ou des commandes gcloud, la mise à jour des tags à l'aide d'une requête API directe ne conserve aucun tag existant. 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://www.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 la valeur 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 avec la valeur fingerprint.

    Exemple de requête :

    POST https://www.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

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…