Utiliser des tags pour les pare-feu

Créez des tags avant d'essayer de les lier à des ressources ou de les utiliser dans des stratégies de pare-feu réseau. Pour contrôler l'accès au réseau, les tags ne sont efficaces que lorsqu'ils sont liés à des instances de VM.

Pour obtenir une présentation, consultez la page Tags pour les pare-feu.

Accorder des autorisations aux tags

Le rôle tagAdmin vous permet de créer, de mettre à jour et de supprimer des tags existants. Un administrateur de l'organisation peut attribuer ce rôle au niveau de l'organisation, et un propriétaire de projet peut l'accorder au niveau du projet.

gcloud

  1. Accordez le rôle tagAdmin à l'utilisateur.

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagAdmin
    

    Remplacez les éléments suivants :

    • ORGANIZATION_ID : ID de votre organisation.
    • EMAIL_ADDRESS : adresse e-mail de l'utilisateur
  2. Accordez le rôle tagUser à l'utilisateur.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Remplacez les éléments suivants :

    • ORGANIZATION_ID : ID de votre organisation.
    • TAG_KEY : clé du tag.
    • EMAIL_ADDRESS : adresse e-mail de l'utilisateur

Rôles personnalisés pour gérer les tags

Le rôle tagAdmin vous permet d'effectuer les actions suivantes : créer des tags, mettre à jour et supprimer des tags existants. Si vous avez besoin de certaines de ces fonctionnalités, vous pouvez créer un rôle IAM personnalisé avec les autorisations appropriées, puis attribuer le nouveau rôle à l'utilisateur cible. Pour obtenir la liste des autorisations pertinentes, consultez la page Autorisations IAM.

Les tags utilisés dans les stratégies de pare-feu doivent être désignés par un objectif GCE_FIREWALL. Bien que l'objectif GCE_FIREWALL soit obligatoire pour que le tag soit utilisé dans les fonctionnalités de mise en réseau, vous pouvez l'utiliser pour d'autres actions.

Les tags utilisés dans les stratégies de pare-feu réseau doivent avoir un champ d'application limité à un seul VPC.

Créer les clés et les valeurs de tag

Avant d'associer des tags à des stratégies de pare-feu réseau, vous devez créer les clés et les valeurs des tags.

gcloud

  1. Après avoir obtenu les autorisations requises, créez la clé de tag.

    gcloud resource-manager tags keys create TAG_KEY \
       --parent organizations/ORGANIZATION_ID \
       --purpose GCE_FIREWALL \
       --purpose-data network=PROJECT_ID/NETWORK
    

    Remplacez les éléments suivants :

    • TAG_KEY : clé du tag.
    • ORGANIZATION_ID : ID de votre organisation.
    • PROJECT_ID : ID de votre projet
    • NETWORK : nom de votre réseau.
  2. Ajoutez les valeurs de tag pertinentes aux clés de tag. Exécutez la commande plusieurs fois pour ajouter plusieurs valeurs. Assurez-vous que chaque valeur de tag ajoutée à la clé de tag est unique.

    gcloud resource-manager tags values create TAG_VALUE \
       --parent ORGANIZATION_ID/TAG_KEY
    

    Remplacez les éléments suivants :

    • ORGANIZATION_ID : ID de votre organisation.
    • TAG_KEY : clé du tag.
    • TAG_VALUE : valeur à attribuer à la clé de tag

Créer une règle de stratégie de pare-feu avec des tags

Après avoir créé un tag, vous pouvez l'utiliser dans les stratégies de pare-feu réseau. Vous pouvez créer une règle de stratégie de pare-feu réseau avec les valeurs de tags sources et de tags cibles spécifiques pour autoriser le trafic souhaité entre les VM avec les tags sources et les tags de destination.

gcloud

  1. Créez une règle de stratégie de pare-feu réseau avec les clés et valeurs sources et cibles spécifiques.

    gcloud compute network-firewall-policies rules create 1 \
        --firewall-policy FIREWALL_POLICY_NAME \
        --src-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --target-secure-tags ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
        --direction DIRECTION \
        --action ACTION \
        --layer4-configs tcp:PORT \
        --global-firewall-policy
    

    Remplacez les éléments suivants :

    • FIREWALL_POLICY_NAME : nom de la stratégie de pare-feu de réseau mondial du nouveau réseau
    • ORGANIZATION_ID : ID de votre organisation.
    • TAG_KEY : clé du tag.
    • TAG_VALUE : valeur à attribuer à la clé de tag
    • DIRECTION : indique si la règle est une règle ingress ou egress.
    • ACTION : l'une des actions suivantes :
      • allow : autorise les connexions correspondant à la règle.
      • deny : refuse les connexions correspondant à la règle.
      • goto_next : transmet l'évaluation de la connexion au niveau supérieur de la hiérarchie, soit un dossier, soit le réseau.
    • PORT : numéro du port pour accéder à la ressource.

Lier des tags à des instances de VM

Les administrateurs de tags peuvent lier les tags à des instances de VM individuelles.

En associant un tag à une ressource, vous associez une valeur de tag à une ressource. Bien qu'un tag puisse avoir plusieurs valeurs pour une clé donnée, vous ne pouvez lier qu'une seule valeur par clé de tag à une ressource. Par exemple, vous ne pouvez pas lier les valeurs de tags web-backend et mysql à la même instance de VM, car elles appartiennent à la même valeur vm-function de la clé de tag.

Par exemple, Sasha, développeur, souhaite configurer une application composée d'un backend d'API et d'un magasin de bases de données de sauvegarde. Pour autoriser le trafic entre le backend et le serveur de base de données, Sasha doit lier les valeurs de tag web-backend et mysql à différentes VM.

gcloud

  1. Attribuez le rôle tagUser.

    gcloud resource-manager tags keys add-iam-policy-binding ORGANIZATION_ID/TAG_KEY \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Remplacez les éléments suivants :

    • ORGANIZATION_ID : ID de votre organisation.
    • TAG_KEY : clé du tag.
    • EMAIL_ADDRESS : adresse e-mail de l'utilisateur

    Avec cette commande, l'utilisateur peut utiliser toutes les valeurs actuelles et futures de la clé. Vous pouvez également n'accorder l'accès qu'à certaines valeurs d'un tag, en procédant comme suit :

    gcloud resource-manager tags values add-iam-policy-binding ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Remplacez les éléments suivants :

    • ORGANIZATION_ID : ID de votre organisation.
    • TAG_KEY : clé du tag.
    • TAG_VALUE : valeur à attribuer à la clé de tag
    • EMAIL_ADDRESS : adresse e-mail de l'utilisateur
  2. Attribuez le rôle tagUser aux ressources que vous souhaitez lier aux tags :

    gcloud projects add-iam-policy-binding PROJECT_NAME \
       --member=user:EMAIL_ADDRESS \
       --role=roles/resourcemanager.tagUser
    

    Remplacez les éléments suivants :

    • PROJECT_NAME : nom de votre projet
    • EMAIL_ADDRESS : adresse e-mail de l'utilisateur
  3. Récupérez la valeur de PARENT pour la paire clé-valeur de tag:

    1. Obtenez le préfixe du nom complet de votre projet et de votre zone:

      FULL_NAME_PREFIX=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/
      
    2. Obtenez l'ID de la VM:

      VM_ID=$(gcloud compute instances describe VM_NAME --format='value(id)')
      
    3. Concaténez les valeurs de FULL_NAME_PREFIX et VM_ID:

      PARENT="$FULL_NAME_PREFIX$VM_ID"
      

    Remplacez les éléments suivants :

    • PROJECT_NUMBER : numéro de votre projet.
    • ZONE : zone dans laquelle se trouve le disque.
    • VM_NAME: nom de la VM sur laquelle vous travaillez.
  4. Répertoriez les liaisons.

    gcloud resource-manager tags bindings list \
       --location LOCATION_NAME \
       --parent PARENT
    

    Remplacez les éléments suivants :

    • LOCATION_NAME : emplacement auquel le tag appartient.
    • PARENT: nom complet de la ressource associée à la liaison
  5. Supprimez et créez les liaisons.

    gcloud resource-manager tags bindings delete \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    
    gcloud resource-manager tags bindings create \
       --location LOCATION_NAME \
       --tag-value ORGANIZATION_ID/TAG_KEY/TAG_VALUE \
       --parent PARENT
    

    Remplacez les éléments suivants :

    • LOCATION_NAME : emplacement auquel le tag appartient.
    • ORGANIZATION_ID : ID de votre organisation.
    • TAG_KEY : clé du tag.
    • TAG_VALUE : valeur de la clé de tag.
    • PARENT: nom complet de la ressource à associer à la valeur du tag

Utiliser des tags sur les réseaux appairés

Vous pouvez utiliser des tags dans l'appairage de réseaux. Pour utiliser des tags sur deux réseaux appairés, effectuez les tâches suivantes dans l'ordre spécifié.

  1. Attribuez le rôle tagAdmin à deux utilisateurs : un utilisateur dans chaque réseau appairé. Un administrateur d'organisation attribue les rôles tagAdmin aux utilisateurs au niveau de l'organisation, et un propriétaire de projet peut les attribuer au niveau du projet.
  2. Laissez le premier utilisateur réseau créer des clés et des valeurs de tags dans le premier réseau.
  3. Laissez le deuxième utilisateur réseau créer des clés et des valeurs de tags dans le deuxième réseau.
  4. Accordez les autorisations requises aux deux utilisateurs pour lier des tags dans les deux réseaux.
  5. Associez des tags aux utilisateurs et aux ressources du premier réseau.
  6. Associez des tags aux utilisateurs et aux ressources du deuxième réseau.
  7. Pour l'utilisateur du deuxième réseau, accordez des autorisations tagUser dans le premier réseau.
  8. Pour l'utilisateur du premier réseau, accordez des autorisations tagUser dans le deuxième réseau.
  9. Créez une règle de stratégie de pare-feu dans le premier réseau.
  10. Créez une règle de stratégie de pare-feu dans le deuxième réseau.

Étapes suivantes