Configurer les stratégies de sécurité Google Cloud Armor

Suivez ces instructions pour créer des stratégies de sécurité Google Cloud Armor afin de filtrer le trafic entrant vers les destinations suivantes:

  • Équilibreur de charge d'application externe mondial
  • Équilibreur de charge d'application classique
  • Équilibreur de charge d'application externe régional
  • Équilibreur de charge d'application interne régional
  • Équilibreur de charge réseau proxy externe
  • Équilibreur de charge réseau proxy classique
  • Équilibreur de charge réseau passthrough externe
  • Transfert de protocole
  • VM dotées d'adresses IP publiques

Pour obtenir des informations conceptuelles sur les règles de sécurité, consultez la présentation des stratégies de sécurité Google Cloud Armor.

Avant de commencer

Avant de configurer des règles de sécurité, procédez comme suit :

  • Assurez-vous de bien connaître les concepts d'équilibreur de charge d'application externe.

  • Examinez vos services de backend existants pour déterminer ceux qui ne sont pas déjà associés à une stratégie de sécurité. Ces services de backend et leurs backends associés ne sont pas protégés par Google Cloud Armor. Pour ajouter la protection fournie par Google Cloud Armor, suivez les instructions du présent document afin d'associer une stratégie de sécurité nouvellement créée ou existante au service de backend.

Configurer les autorisations IAM pour les stratégies de sécurité Google Cloud Armor

Les opérations suivantes nécessitent le rôle IAM Administrateur de sécurité Identity and Access Management (roles/compute.securityAdmin):

  • Configurer, modifier, mettre à jour et supprimer une stratégie de sécurité Google Cloud Armor
  • À l'aide des méthodes d'API suivantes :
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Un utilisateur disposant du rôle Administrateur de réseau Compute (roles/compute.networkAdmin) peut effectuer les opérations suivantes:

  • Définir une stratégie de sécurité Google Cloud Armor pour un service de backend
  • À l'aide des méthodes d'API suivantes :
    • BackendServices setSecurityPolicy
    • BackendServices list (gcloud uniquement)

Les utilisateurs disposant du rôle Administrateur de sécurité (roles/iam.securityAdmin) et du rôle Administrateur de réseau Compute peuvent afficher les stratégies de sécurité Google Cloud Armor à l'aide des méthodes d'API SecurityPolicies get, list et getRule.

Configurer les autorisations IAM pour les rôles personnalisés

Le tableau suivant répertorie les autorisations standards des rôles IAM, ainsi que les méthodes d'API associées.

Autorisation IAM Méthodes d'API
compute.securityPolicies.create SecurityPolicies insert
compute.securityPolicies.delete SecurityPolicies delete
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
compute.securityPolicies.list SecurityPolicies list
compute.securityPolicies.use BackendServices setSecurityPolicy
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
compute.backendServices.setSecurityPolicy BackendServices setSecurityPolicy

Créer des règles de sécurité

Vous pouvez configurer des stratégies, des règles et des expressions de sécurité Google Cloud Armor en utilisant Google Cloud Console, Google Cloud CLI ou l'API REST. Lorsque vous utilisez gcloud CLI pour créer des stratégies de sécurité, utilisez l'option --type pour spécifier si la stratégie de sécurité est une stratégie de sécurité backend ou une stratégie de sécurité Edge.

Si vous ne connaissez pas la configuration des règles de sécurité, nous vous recommandons de consulter des exemples de règles de sécurité.

Exemples d'expressions

Vous trouverez ci-dessous des exemples d'expressions. Pour en savoir plus sur les expressions, consultez la documentation de référence sur le langage des règles personnalisées Google Cloud Armor.

Si vous configurez une règle ou une expression qui utilise des codes de pays ou de région ISO 3166-1 alpha-2, Google Cloud Armor traite chaque code indépendamment. Les règles et expressions Google Cloud Armor utilisent explicitement ces codes de région pour autoriser ou refuser les requêtes.

  • L'expression suivante met en correspondance les requêtes provenant de l'adresse IP 1.2.3.4 et contient la chaîne example dans l'en-tête user-agent :

    inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    

    Vous pouvez également faire correspondre la plage d'adresses IP d'un en-tête d'adresse IP client personnalisé à l'aide de l'attribut origin.user_ip:

    inIpRange(origin.user_ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    
  • L'expression suivante met en correspondance les requêtes qui comportent un cookie ayant une valeur spécifique :

    has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
    
  • L'expression suivante met en correspondance les requêtes provenant de la région AU :

    origin.region_code == 'AU'
    
  • L'expression suivante met en correspondance les requêtes provenant de la région AU qui ne sont pas comprises dans la plage d'adresses IP spécifiée :

    origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
    
  • L'expression suivante met en correspondance les requêtes qui ont un chemin d'accès de variable numéroté vers un fichier spécifique si l'URI correspond à une expression régulière :

    request.path.matches('/path/[0-9]+/target_file.html')
    
  • L'expression suivante met en correspondance les requêtes si la valeur décodée en base64 de l'en-tête user-id contient une valeur spécifique :

    has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
    
  • L'expression suivante utilise un ensemble d'expressions préconfiguré pour mettre en correspondance les attaques SQLi :

    evaluatePreconfiguredExpr('sqli-stable')
    

Gérer les règles de sécurité

Utilisez les sections suivantes pour lister les stratégies de sécurité de votre projet, les mettre à jour, les supprimer ou les tester.

Obtenir la liste des règles de sécurité

Suivez ces instructions pour répertorier toutes les stratégies de sécurité Google Cloud Armor dans le projet actuel ou dans un projet que vous spécifiez.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Pour afficher une règle particulière, cliquez sur son nom dans la liste des règles à la page Règles de sécurité.

gcloud

gcloud compute security-policies list

Exemple :

gcloud compute security-policies list
NAME
my-policy

Pour en savoir plus, consultez les sections sur gcloud compute security-policies list

Mettre à jour les stratégies de sécurité

Utilisez ces instructions pour mettre à jour une stratégie de sécurité Google Cloud Armor. Par exemple, vous pouvez modifier la description de la stratégie, le comportement de la règle par défaut, le service de backend cible ou ajouter de nouvelles règles.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Pour mettre à jour une règle particulière dans la liste des règles à la page Règles de sécurité, cliquez sur Menu pour afficher la règle que vous souhaitez mettre à jour.

    • Pour mettre à jour la description de la stratégie de l'action de règle par défaut, sélectionnez Modifier, apportez les modifications souhaitées, puis cliquez sur Mettre à jour.
    • Pour ajouter une règle, sélectionnez Ajouter une règle, puis suivez les instructions de la section Ajouter des règles à une stratégie de sécurité.
    • Pour modifier le service de backend cible de la stratégie, sélectionnez Appliquer la règle à la cible, cliquez sur Ajouter une cible, sélectionnez une cible, puis cliquez sur Ajouter.

gcloud

Pour mettre à jour une stratégie de sécurité, suivez les instructions Google Cloud CLI suivantes :

Supprimer des règles de sécurité

Suivez ces instructions pour supprimer une stratégie de sécurité Google Cloud Armor. Vous devez supprimer tous les services de backend de la stratégie avant de pouvoir la supprimer.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cochez la case située à côté du nom de la règle de sécurité que vous souhaitez supprimer.

  3. Dans l'angle supérieur droit de la page, cliquez sur Supprimer.

gcloud

Utilisez gcloud compute security-policies delete NAME. Remplacez NAME par le nom de la règle de sécurité :

gcloud compute security-policies delete NAME

Tester les stratégies de sécurité

Nous vous recommandons de déployer toutes les nouvelles règles en mode aperçu, puis d'examiner vos journaux de requêtes pour vérifier que les stratégies et les règles se comportent comme prévu.

Gérer les règles de stratégie de sécurité

Utilisez les sections suivantes pour lister les règles de stratégie de sécurité, en ajouter, en mettre à jour ou en supprimer.

Répertorier des règles dans une stratégie de sécurité

Suivez ces instructions pour répertorier les règles d'une stratégie de sécurité Google Cloud Armor.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails de la stratégie s'affiche, et les règles de la stratégie sont répertoriées dans l'onglet Règles au milieu de la page.

gcloud

Utilisez la commande gcloud suivante pour répertorier toutes les règles d'une seule stratégie de sécurité ainsi qu'une description de cette stratégie :

gcloud compute security-policies describe NAME \

Utilisez la commande gcloud suivante pour décrire une règle avec la priorité spécifiée dans la stratégie de sécurité spécifiée :

gcloud compute security-policies rules describe PRIORITY \
    --security-policy POLICY_NAME

Par exemple, la commande suivante décrit la règle ayant la priorité 1000 dans la stratégie de sécurité my-policy :

gcloud compute security-policies rules describe 1000 \
    --security-policy my-policy

Sortie :

action: deny(403)
description: block traffic from 192.0.2.0/24 and 198.51.100.0/24
kind: compute#securityPolicyRule
match:
  srcIpRanges:
  - '192.0.2.0/24'
  - '198.51.100.0/24'
preview: false
priority: 1000

Ajouter des règles à une stratégie de sécurité

Suivez ces instructions pour ajouter des règles à une stratégie de sécurité Google Cloud Armor.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, cliquez sur l'onglet Règles.

  4. Cliquez sur Add rule (Ajouter une règle).

  5. Facultatif : saisissez une description de la règle.

  6. Sélectionner le mode :

    • Mode de base : autorisez ou refusez le trafic en fonction d'adresses IP ou de plages d'adresses IP.
    • Mode avancé : autorisez ou refusez le trafic en fonction d'expressions de règle.
  7. Dans le champ Correspondance, spécifiez les conditions dans lesquelles la règle s'applique :

    • Mode de base : saisissez une (1) à cinq (5) plages d'adresses IP à mettre en correspondance dans la règle.
    • Mode avancé : saisissez une expression ou des sous-expressions avec lesquelles évaluer les requêtes entrantes. Pour savoir comment écrire les expressions et lire les exemples suivants, consultez la documentation de référence sur le langage des règles personnalisées.

      • L'expression suivante met en correspondance les requêtes provenant de l'adresse IP 1.2.3.4 et contient la chaîne example dans l'en-tête user-agent :

        inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
        
      • L'expression suivante met en correspondance les requêtes qui comportent un cookie ayant une valeur spécifique :

        has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
        
      • L'expression suivante met en correspondance les requêtes provenant de la région AU :

        origin.region_code == 'AU'
        
      • L'expression suivante met en correspondance les requêtes provenant de la région AU qui ne sont pas comprises dans la plage d'adresses IP spécifiée :

        origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
        
      • L'expression suivante met en correspondance les requêtes si l'URI correspond à une expression régulière :

        request.path.matches('/example_path/')
        
      • L'expression suivante met en correspondance les requêtes si la valeur décodée en base64 de l'en-tête user-id contient une valeur spécifique :

        has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
        
      • L'expression suivante utilise un ensemble d'expressions préconfiguré pour mettre en correspondance les attaques SQLi :

        evaluatePreconfiguredExpr('sqli-stable')
        
  8. Dans la section Action, sélectionnez Autoriser ou Refuser.

  9. Si vous configurez une règle de refus, sélectionnez un message État de refus.

  10. Si vous souhaitez activer le mode Aperçu pour la règle, cochez la case Activer.

  11. Dans le champ Priorité, saisissez un entier positif.

  12. Cliquez sur Ajouter.

gcloud

Exécutez la commande gcloud compute security-policies rules create PRIORITY. Remplacez PRIORITY par la priorité de la règle dans la stratégie :

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME \
    --description DESCRIPTION \
    --src-ip-ranges IP_RANGES | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ] \
    --preview

Par exemple, la commande suivante ajoute une règle pour bloquer le trafic provenant des plages d'adresses IP 192.0.2.0/24 et 198.51.100.0/24. La règle a la priorité 1000, et il s'agit d'une règle d'une stratégie appelée my-policy :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
    --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
    --action "deny-403"

Utilisez l'option --expression pour spécifier une condition dans la documentation de référence sur le langage de règles personnalisées. La commande suivante ajoute une règle pour autoriser le trafic provenant de l'adresse IP 1.2.3.4 et contient la chaîne example dans l'en-tête user-agent :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
    --action allow \
    --description "Block User-Agent 'example'"

La commande suivante ajoute une règle pour bloquer les requêtes si leur cookie contient une valeur spécifique :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('80=BLAH')" \
    --action deny-403 \
    --description "Cookie Block"

La commande suivante ajoute une règle pour bloquer les requêtes provenant de la région AU :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "origin.region_code == 'AU'" \
    --action deny-403 \
    --description "AU block"

La commande suivante ajoute une règle pour bloquer les requêtes de la région AU qui ne se trouvent pas dans la plage d'adresses IP spécifiée :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')" \
    --action deny-403 \
    --description "country and IP block"

La commande suivante ajoute une règle pour bloquer les requêtes dont l'URI correspond à une expression régulière :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "request.path.matches('/example_path/')" \
    --action deny-502 \
    --description "regex block"

La commande suivante ajoute une règle pour bloquer les requêtes si la valeur décodée en base64 de l'en-tête user-id contient une valeur spécifique :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
    --action deny-403 \
    --description "country and IP block"

La commande suivante ajoute une règle qui utilise un ensemble d'expressions préconfiguré pour atténuer les attaques SQLi :

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "evaluatePreconfiguredExpr('sqli-stable')" \
    --action deny-403

Mettre à jour une seule règle dans une stratégie de sécurité

Suivez ces instructions pour mettre à jour une seule règle dans une stratégie de sécurité Google Cloud Armor. Pour mettre à jour de façon atomique plusieurs règles, consultez la section Mettre à jour de façon atomique plusieurs règles dans une stratégie de sécurité.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, cliquez sur l'onglet Règles.

  4. À côté de la règle que vous souhaitez mettre à jour, cliquez sur Modifier. La page Modifier la règle s'affiche.

  5. Apportez les modifications souhaitées, puis cliquez sur Mettre à jour.

gcloud

Utilisez cette commande pour mettre à jour une règle avec la priorité spécifiée dans une stratégie de sécurité désignée. Vous ne pouvez mettre à jour qu'une seule règle de sécurité à la fois à l'aide de cette commande :

gcloud compute security-policies rules update PRIORITY [ \
    --security-policy POLICY_NAME  \
    --description DESCRIPTION  \
    --src-ip-ranges IP_RANGES  | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ]  \
    --preview
  ]
  

Par exemple, la commande suivante met à jour une règle ayant la priorité 1111 pour autoriser le trafic provenant de la plage d'adresses IP 192.0.2.0/24 :

gcloud compute security-policies rules update 1111 \
    --security-policy my-policy \
    --description "allow traffic from 192.0.2.0/24" \
    --src-ip-ranges "192.0.2.0/24" \
    --action "allow"

Pour en savoir plus sur cette commande, consultez la page sur gcloud compute security-policies rules update.

Pour mettre à jour la priorité d'une règle, vous devez utiliser l'API REST. Pour en savoir plus, consultez les pages suivantes : securityPolicies.patchRule.

Mettre à jour de façon atomique plusieurs règles dans une stratégie de sécurité

Une mise à jour atomique applique des modifications à plusieurs règles en une seule opération. Si vous mettez à jour les règles une par une, il se peut que vous constatiez un comportement inattendu, car les anciennes et les nouvelles règles peuvent fonctionner ensemble pendant une courte période.

Pour mettre à jour de façon atomique plusieurs règles, exportez la stratégie de sécurité actuelle vers un fichier JSON ou YAML, puis modifiez-la. Utilisez le fichier modifié pour créer une stratégie de sécurité, puis remplacez la stratégie de sécurité dans les services de backend correspondants.

gcloud

  1. Exportez la stratégie à mettre à jour, comme illustré dans l'exemple suivant :

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
    

    La stratégie exportée doit ressembler à l'exemple suivant :

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredExpr('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  2. Utilisez n'importe quel éditeur de texte pour modifier la stratégie. Par exemple, vous pouvez modifier les priorités des règles existantes et ajouter une règle :

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredExpr('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-new-rule
      match:
        config:
          srcIpRanges:
          - '1.2.3.1'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 10
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 11
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  3. Créez une stratégie de sécurité Google Cloud Armor, puis spécifiez le nom et le format du fichier modifié, comme indiqué dans l'exemple suivant:

    gcloud compute security-policies create new-policy \
        --file-name modified-policy \
        --file-format yaml
    
  4. Supprimez l'ancienne stratégie de sécurité du service de backend pertinent, comme indiqué dans l'exemple suivant :

    gcloud compute backend-services update my-backend \
        --security-policy ""
    
  5. Ajoutez la nouvelle stratégie de sécurité au service de backend, comme indiqué dans l'exemple suivant :

    gcloud compute backend-services update my-backend \
        --security-policy new-policy
    
  6. Si l'ancienne stratégie n'est pas utilisée, supprimez-la :

    gcloud compute security-policies delete my-policy
    

Supprimer des règles d'une stratégie de sécurité

Suivez ces instructions pour supprimer des règles d'une stratégie de sécurité Google Cloud Armor.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, dans l'onglet Règles, cochez la case à côté de la règle que vous souhaitez supprimer.

  4. Cliquez sur Supprimer.

gcloud

Utilisez cette commande pour supprimer une règle avec la priorité spécifiée d'une stratégie de sécurité désignée. Vous ne pouvez modifier qu'une seule stratégie de sécurité à la fois, mais vous pouvez en supprimer plusieurs en même temps :

gcloud compute security-policies rules delete PRIORITY [...] [
    --security-policy POLICY_NAME \
  ]

Exemple :

gcloud compute security-policies rules delete 1000 \
    --security-policy my-policy

Associer et supprimer des règles de sécurité

Utilisez les sections suivantes pour associer et supprimer des stratégies de sécurité aux services et buckets de backend.

Associer une stratégie de sécurité à un service de backend

Suivez ces instructions pour associer une stratégie de sécurité Google Cloud Armor à un service de backend. Une stratégie de sécurité peut être associée à plusieurs services de backend, mais un service de backend ne peut être associé qu'à un seul type de stratégie de sécurité.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, cliquez sur l'onglet Cibles.

  4. Cliquez sur Appliquer la règle à la nouvelle cible.

  5. Cliquez sur Add Target (Ajouter une cible).

  6. Dans la liste Cible, sélectionnez une cible, puis cliquez sur Ajouter.

gcloud

Lorsque vous associez une stratégie de sécurité backend à un service de backend, utilisez la commande gcloud compute backend-services et l'option --security-policy :

gcloud compute backend-services update my-backend \
    --security-policy my-policy

Lorsque vous associez une stratégie de sécurité périphérique à un service de backend, utilisez la commande gcloud compute backend-services et l'option --edge-security-policy :

gcloud compute backend-services update my-backend \
    --edge-security-policy my-policy

Supprimer une stratégie de sécurité d'un service de backend

Suivez ces instructions pour supprimer une stratégie de sécurité backend ou une stratégie de sécurité périphérique Google Cloud Armor d'un service de backend.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, cliquez sur l'onglet Cibles.

  4. Sélectionnez le service de backend cible dont vous supprimez la stratégie.

  5. Cliquez sur Supprimer.

  6. Dans le message Supprimer la cible, cliquez sur Supprimer.

gcloud

Lorsque vous supprimez une stratégie de sécurité backend, utilisez la commande gcloud compute backend-services et l'option --security-policy :

gcloud compute backend-services update my-backend \
    --security-policy ""

Lorsque vous supprimez une stratégie de sécurité périphérique, utilisez la commande gcloud compute backend-services et l'option --edge-security-policy :

gcloud compute backend-services update my-backend \
    --edge-security-policy ""

Associer une stratégie de sécurité à un bucket de backend

Suivez ces instructions pour associer une stratégie de sécurité périphérique Google Cloud Armor à un bucket de backend. Une stratégie de sécurité périphérique peut être associée à plusieurs buckets de backend.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, cliquez sur l'onglet Cibles.

  4. Cliquez sur Appliquer la règle à la nouvelle cible.

  5. Cliquez sur Add Target (Ajouter une cible).

  6. Dans la liste Cible, sélectionnez une cible, puis cliquez sur Ajouter.

gcloud

Lorsque vous associez une stratégie de sécurité périphérique à un bucket de backend, utilisez la commande cloud compute backend-buckets et l'option --edge-security-policy :

gcloud compute backend-services update my-bucket \
    --edge-security-policy my-edge-policy

Supprimer une stratégie de sécurité d'un bucket de backend

Suivez ces instructions pour supprimer une stratégie de sécurité périphérique Google Cloud Armor d'un bucket de backend.

Console

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

    Accéder aux règles Google Cloud Armor

  2. Sur la page Règles de sécurité, cliquez sur le nom de la règle de sécurité. La page Détails des règles s'affiche.

  3. Au milieu de la page, cliquez sur l'onglet Cibles.

  4. Sélectionnez le service de backend cible dont vous supprimez la stratégie.

  5. Cliquez sur Supprimer.

  6. Dans le message Supprimer la cible, cliquez sur Supprimer.

gcloud

Lorsque vous supprimez une stratégie de sécurité périphérique d'un bucket de backend, utilisez la commande cloud compute backend-buckets et l'option --edge-security-policy :

gcloud compute backend-services update my-bucket \
    --edge-security-policy ""

Importer et exporter des stratégies de sécurité

Utilisez les sections suivantes pour importer et exporter des stratégies de sécurité en tant que fichiers YAML ou JSON.

Importer des stratégies de sécurité

Vous pouvez importer des stratégies de sécurité Google Cloud Armor à partir d'un fichier YAML ou JSON en utilisant Google Cloud CLI. Vous ne pouvez pas utiliser la commande import pour mettre à jour les règles d'une stratégie existante. Au lieu de cela, vous devez mettre à jour les règles une par une en suivant la procédure Mettre à jour une seule règle dans une stratégie de sécurité ou en une seule fois en suivant la procédure Mettre à jour de façon atomique plusieurs règles dans une stratégie de sécurité.

gcloud

Pour importer des règles de sécurité, utilisez la commande gcloud compute security-policies import NAME. Remplacez NAME par le nom de la règle de sécurité que vous importez. Si vous ne fournissez pas le format de fichier, le format correct est supposé en fonction de la structure du fichier. Si la structure n'est pas valide, une erreur s'affiche.

gcloud compute security-policies import NAME \
    --file-name FILE_NAME  \
   [--file-format FILE_FORMAT]

Par exemple, la commande suivante met à jour la stratégie my-policy en important le fichier my-file.

gcloud compute security-policies import my-policy \
    --file-name my-file \
    --file-format json

Si l'empreinte de la stratégie est obsolète lorsque vous l'importez, Google Cloud Armor affiche une erreur. Cela signifie que la stratégie a été modifiée depuis votre dernière exportation. Pour résoudre ce problème, utilisez la commande describe sur la stratégie pour obtenir la dernière empreinte. Fusionnez toutes les différences entre la stratégie décrite et votre stratégie, puis remplacez l'empreinte obsolète par la plus récente.

Exporter des stratégies de sécurité

Vous pouvez exporter une stratégie de sécurité Google Cloud Armor sous la forme d'un fichier YAML ou JSON en utilisant Google Cloud CLI. L'exportation d'une stratégie vous permet d'en récupérer une copie que vous pouvez modifier ou enregistrer dans le contrôle de code source.

gcloud

  1. Dans la commande suivante, NAME est le nom de la règle de sécurité. Les formats de fichiers valides sont YAML et JSON. Si vous ne fournissez pas le format de fichier, Google Cloud Armor utilise le format YAML par défaut.

    gcloud compute security-policies export NAME \
        --file-name FILE_NAME  \
        --file-format FILE_FORMAT
    

    L'exemple suivant exporte la règle de sécurité my-policy vers le fichier my-file au format YAML :

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
     

    L'exemple suivant présente une stratégie de sécurité exportée :

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: allow
      description: default rule
      match:
          config:
            srcIpRanges:
            - '*'
          versionedExpr: SRC_IPS_V1
        preview: false
        priority: 2147483647
      selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
      
  2. Vous pouvez modifier le fichier exporté avec n'importe quel éditeur de texte, puis le réimporter dans Google Cloud à l'aide de la commande import.

Répertorier les règles préconfigurées disponibles

Répertoriez les règles préconfigurées pour afficher les signatures et les règles de protection des applications prédéfinies, par exemple l'ensemble de règles de base ModSecurity fourni par Google Cloud Armor. Ces règles préconfigurées contiennent plusieurs signatures intégrées que Google Cloud Armor utilise pour évaluer les requêtes entrantes. Pour ajouter ces règles préconfigurées à des règles nouvelles ou existantes, utilisez la documentation de référence sur le langage des règles personnalisées.

Pour en savoir plus, consultez la section Règles préconfigurées.

gcloud

  1. Exécutez la commande gcloud compute security-policies list-preconfigured-expression-sets :

    gcloud compute security-policies list-preconfigured-expression-sets
    

    L'exemple suivant montre comment se présente le résultat de la commande :

    EXPRESSION_SET
    expression-set-1
       RULE_ID                SENSITIVITY
       expression-set-1-id-1  sensitivity-value-1
       expression-set-1-id-2  sensitivity-value-2
    expression-set-2
       alias-1
       RULE_ID                SENSITIVITY
       expression-set-2-id-1  sensitivity-value-1
       expression-set-2-id-2  sensitivity-value-2
    

    L'exemple suivant inclut un extrait du résultat réel de la commande. Notez que le résultat réel inclut toutes les règles répertoriées dans la section Ajuster les règles WAF Google Cloud Armor.

    gcloud compute security-policies list-preconfigured-expression-sets
    
    EXPRESSION_SET
    sqli-canary
        RULE_ID                          SENSITIVITY
        owasp-crs-v030001-id942110-sqli  2
        owasp-crs-v030001-id942120-sqli  2
        …
    xss-canary
        RULE_ID                         SENSITIVITY
        owasp-crs-v030001-id941110-xss  1
        owasp-crs-v030001-id941120-xss  1
    …
    sourceiplist-fastly
    sourceiplist-cloudflare
    sourceiplist-imperva
    

Étape suivante