Utiliser des tags pour créer des stratégies

Cette page explique comment associer des tags Resource Manager aux règles du proxy Web sécurisé. Les tags Resource Manager sont des libellés que vous pouvez associer à différentes ressources Google Cloud , telles que vos instances de machines virtuelles (VM). Vous pouvez utiliser des tags pour appliquer des contrôles d'accès conditionnel à l'ensemble de votre réseau avec les libellés organisationnels existants.

Ces balises vous permettent d'effectuer les actions suivantes :

  • Segmenter les charges de travail : vous pouvez identifier de manière unique différents environnements tels que production ou development, et différents types de services tels que frontend ou database.

  • Centralisez le contrôle des accès : vous pouvez baser vos stratégies de proxy Web sécurisé sur ces tags. Par exemple, vous pouvez créer une règle qui stipule que seul le trafic provenant de ressources associées au tag tag segment=production peut accéder à un ensemble spécifique d'URL.

Cette page vous explique comment :

Avant de commencer

Créer une instance Secure Web Proxy avec une règle vide

Pour créer une instance de proxy Web sécurisé, vous devez d'abord créer une stratégie de sécurité vide, puis créer un proxy Web qui utilise cette stratégie.

Créer une règle de sécurité vide

Console

  1. Dans la console Google Cloud , accédez à la page Règles SWP.

    Accéder aux règles SWP

  2. Cliquez sur Créer une règle.

  3. Dans le champ Nom, saisissez un nom pour la stratégie (par exemple, myswppolicy).

  4. Dans le champ Description, saisissez une description de la règle, par exemple My new swp policy.

  5. Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le règlement, par exemple us-central1.

  6. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier policy.yaml.

  2. Ajoutez ce qui suit au fichier policy.yaml que vous avez créé :

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Remplacez les éléments suivants :

    • PROJECT_NAME : nom de votre projet

    • REGION : région dans laquelle votre stratégie est créée, par exemple us-central1

    • POLICY_NAME : nom de votre règle

    • POLICY_DESCRIPTION : description de votre règle

  3. Importez la stratégie de sécurité à l'aide de la commande gcloud network-security gateway-security-policies import :

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Créer un proxy Web

Console

  1. Dans la console Google Cloud , accédez à la page Proxys Web.

    Accéder aux proxys Web

  2. Cliquez sur Créer un proxy Web sécurisé.

  3. Dans le champ Nom, saisissez un nom pour le proxy Web, tel que myswp.

  4. Dans le champ Description, saisissez une description du proxy Web, par exemple My new swp.

  5. Pour Mode de routage, sélectionnez l'option Explicite.

  6. Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le proxy Web, par exemple us-central1.

  7. Pour Réseau, sélectionnez le réseau sur lequel vous souhaitez créer le proxy Web.

  8. Pour Sous-réseau, sélectionnez le sous-réseau VPC que vous avez créé précédemment dans les étapes de configuration initiale.

  9. Facultatif : Dans le champ Adresse IP du proxy Web, saisissez l'adresse IP du proxy Web sécurisé.

    Vous pouvez saisir une adresse IP de la plage d'adresses IP du proxy Web sécurisé qui se trouve dans le sous-réseau que vous avez créé à l'étape précédente. Si vous ne saisissez pas l'adresse IP, votre instance Secure Web Proxy choisit automatiquement une adresse IP dans le sous-réseau sélectionné.

  10. Pour Certificat, sélectionnez le certificat que vous souhaitez utiliser pour créer le proxy Web.

  11. Pour Règle, sélectionnez la règle que vous avez créée pour associer le proxy Web.

  12. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier gateway.yaml.

  2. Ajoutez ce qui suit au fichier gateway.yaml.

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Remplacez les éléments suivants :

    • GATEWAY_NAME : nom de cette instance Secure Web Proxy

    • GATEWAY_PORT_NUMBERS : liste des numéros de port pour cette passerelle, par exemple [80,443].

    • CERTIFICATE_URLS : liste des URL des certificats SSL

    • SUBNETWORK : sous-réseau VPC que vous avez créé précédemment dans le cadre des étapes de configuration initiale.

    • GATEWAY_IP_ADDRESS : liste facultative d'adresses IP pour vos instances Secure Web Proxy dans les sous-réseaux de proxy que vous avez créés précédemment dans les étapes de configuration initiale

      Si vous choisissez de ne pas lister les adresses IP, omettez le champ pour laisser le proxy Web choisir une adresse IP pour vous.

  3. Créez l'instance Secure Web Proxy à l'aide de la commande gcloud network-services gateways import :

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

Tester la connectivité

Pour tester la connectivité, utilisez la commande curl à partir de n'importe quelle instance de machine virtuelle (VM) de votre réseau de cloud privé virtuel (VPC) :

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

Si tout fonctionne correctement, votre instance de proxy Web sécurisé renvoie un code d'état 403 Forbidden. Cette erreur confirme les points suivants :

  • L'instance de proxy Web sécurisé a été déployée et reçoit activement du trafic.

  • La stratégie de proxy Web sécurisé applique correctement la posture de sécurité par défaut qui consiste à refuser tout le trafic jusqu'à ce que vous définissiez des règles allow spécifiques dans les sections suivantes.

Créer et associer des tags Resource Manager

  1. Créer des clés et des valeurs de tags sécurisés

    Exemple : Pour créer un tag pour les environnements restreints, procédez comme suit :

    1. Créez la clé de tag (access-level) à l'aide de la commande gcloud resource-manager tags keys create en définissant l'objectif sur GCE_FIREWALL.

    2. Récupérez l'ID de la clé de tag à partir du résultat de la commande de création ou à l'aide de la commande gcloud resource-manager tags keys list. Vous en aurez besoin pour associer les valeurs de tag à cette clé de tag spécifique.

    3. Créez la valeur du tag (restricted) à l'aide de la commande gcloud resource-manager tags values create, en spécifiant l'ID de la clé du tag comme parent.

    # Create the tag key
    # The output provides a unique ID, such as "tagKeys/1234567890"
    
    gcloud resource-manager tags keys create "access-level" \
        --parent="organizations/1234567890" \
        --purpose="GCE_FIREWALL" \
        --purpose-values="execution_env=ANS"
    
    # Create the tag value and connect it to the key
    # The "--parent" flag identifies to which key this value belongs
    
    gcloud resource-manager tags values create "restricted" \
        --parent="tagKeys/1234567890"
    
  2. Associer des tags à des instances de VM

    L'association de ces tags permet d'associer le trafic sortant de vos instances de VM à une identité de tag spécifique, ce qui permet au proxy de reconnaître la charge de travail et d'appliquer vos règles de sécurité.

    Exemple : Supposons que vous disposiez d'une instance de VM nommée internal-tool. Vous pouvez associer la valeur du tag restricted à internal-tool à l'aide de la commande gcloud resource-manager tags bindings create. Cette attribution de tag permet à votre proxy d'identifier le trafic provenant de l'instance de VM internal-tool.

    # Attach the "restricted" tag to a specific VM instance
    
    
    gcloud resource-manager tags bindings create \
        --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \
        --tag-value="tagValues/987654321"
    

Créer une règle Secure Web Proxy

Console

  1. Dans la console Google Cloud , accédez à la page Règles SWP.

    Accéder aux règles SWP

  2. Cliquez sur le nom de votre règle, par exemple myswppolicy.

  3. Cliquez sur Ajouter une règle.

  4. Pour chaque règle, procédez comme suit :

    1. Dans Priorité, saisissez l'ordre d'évaluation numérique de la règle. Les règles sont évaluées de la priorité la plus élevée à la plus faible, où 0 correspond à la priorité la plus élevée.

    2. Dans le champ Nom, saisissez un nom pour la règle.

    3. Dans le champ Description, saisissez une description de la règle.

    4. Pour Action, sélectionnez l'une des options suivantes :

      • Autoriser : pour autoriser les demandes de connexion correspondant à la règle.
      • Refuser : pour refuser les demandes de connexion correspondant à la règle.
    5. Pour le champ État, sélectionnez l'une des options suivantes pour l'application des règles :

      • Activé : pour appliquer la règle à votre instance Secure Web Proxy.
      • Désactivé : pour ne pas appliquer la règle à votre instance Secure Web Proxy.
    6. Dans la section Correspondance de session, spécifiez l'ID unique de la balise que vous avez créée dans la section précédente. Exemple :

      sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
      

      Pour en savoir plus sur la syntaxe de SessionMatcher, consultez la documentation de référence sur le langage de correspondance CEL.

    7. Dans la section Correspondance de l'application, spécifiez les critères de correspondance de la requête.

    8. Cliquez sur Ajouter une règle.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer le fichier rule.yaml.

  2. Pour autoriser l'accès à une URL à partir de la balise requise, ajoutez ce qui suit au fichier rule.yaml :

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    Remplacez les éléments suivants :

    • RULE_NAME : nom de cette règle
    • RULE_DESCRIPTION : description de la règle
    • RULE_PRIORITY : priorité de cette règle. Plus le nombre est faible, plus la priorité est élevée.
    • CEL_EXPRESSION : expression CEL (Common Expression Language). Pour en savoir plus, consultez la documentation de référence sur le langage de correspondance CEL.

    Par exemple, pour autoriser l'accès à example.com à partir de la balise requise, ajoutez la ligne sessionMatcher suivante au fichier YAML :

    sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
    

    Remplacez TAG_VALUE par le tag que vous souhaitez autoriser. Assurez-vous que le tag respecte le format d'identifiant numérique de ressource, par exemple tagValues/567890123456.

  3. Importez les règles que vous avez créées à l'aide de la commande gcloud network-security gateway-security-policies rules import :

    gcloud network-security gateway-security-policies rules import RULE_NAME \
        --source=RULE_FILE.yaml \
        --location=REGION \
        --gateway-security-policy=POLICY_NAME
    

Tester la configuration des règles

Vous pouvez tester à nouveau la connectivité pour vérifier que votre règle de proxy Web sécurisé, qui repose sur les tags Resource Manager pour l'identité, fonctionne comme prévu.

Pour tester la connectivité, utilisez la commande curl à partir de n'importe quelle VM associée au tag TAG_VALUE approprié.

curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure

Remplacez IPv4_ADDRESS par l'adresse IPv4 de votre instance Secure Web Proxy.

Si tout fonctionne correctement, vous recevez un code d'état 200 OK ou 403 Forbidden. Ces réponses confirment les principaux résultats suivants :

  • Succès basé sur les tags : un code d'état 200 OK valide que le trafic provenant d'une VM à laquelle le tag Resource Manager approprié est associé correspond à la règle de stratégie et est autorisé à passer par le proxy. Cette correspondance validée permet d'établir une connexion.

  • Refus basé sur les tags : un code d'état 403 Forbidden permet de vérifier que l'accès au trafic provenant d'une VM sans le tag spécifié ou avec un tag incorrect est correctement refusé par la règle. Cette application prouve que votre segmentation et votre application basées sur des tags fonctionnent comme prévu.

Étape suivante