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

Suivez ces instructions pour créer des stratégies de sécurité Google Cloud Armor afin de filtrer le trafic entrant vers votre application. Pour obtenir des informations conceptuelles sur les stratégies de sécurité, consultez la présentation des stratégies de sécurité Cloud Armor.

Avant de commencer

Avant de configurer des stratégies 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 Cloud Armor. Pour ajouter la protection fournie par 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é Cloud Armor

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

  • Configurer, modifier, mettre à jour et supprimer une stratégie de sécurité Cloud Armor
  • Avec les 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éseaux Compute (roles/compute.networkAdmin) peut effectuer les opérations suivantes :

  • Définir une stratégie de sécurité Cloud Armor pour un service de backend
  • Avec les 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éseaux Compute (roles/compute.networkAdmin) peuvent afficher les stratégies de sécurité 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 liste 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 stratégies de sécurité

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

Si vous ne maîtrisez pas la configuration des stratégies de sécurité, nous vous recommandons de consulter des exemples de stratégies 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 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, Cloud Armor traite chaque code indépendamment. Les règles et expressions 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 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 :

    evaluatePreconfiguredWaf('sqli-stable')
    

Gérer les stratégies 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.

Lister les stratégies de sécurité

Utilisez ces instructions pour lister toutes les stratégies de sécurité Cloud Armor dans le projet en cours ou dans un projet que vous spécifiez.

Console

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

    Accéder à la page "Règles Cloud Armor"

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

gcloud

gcloud compute security-policies list

Exemple :

gcloud compute security-policies list

Résultat :

NAME: my-policy
REGION: us-central1

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é 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 Cloud Armor.

    Accéder à la page "Règles Cloud Armor"

  2. Pour mettre à jour une stratégie particulière dans la liste des stratégies à la page Stratégies de sécurité, cliquez sur Menu pour afficher la stratégie 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 et 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 stratégie à 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 stratégies de sécurité

Suivez ces instructions pour supprimer une stratégie de sécurité 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 Cloud Armor.

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cochez la case située à côté du nom de la stratégie de sécurité que vous souhaitez supprimer.

  3. En haut à droite de la page, cliquez sur Supprimer.

gcloud

Utilisez gcloud compute security-policies delete NAME. Remplacez NAME par le nom de la stratégie 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, ajouter, modifier ou supprimer des règles de stratégie de sécurité.

Lister les règles d'une stratégie de sécurité

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

Console

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

    Accéder à la page "Règles Cloud Armor"

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

gcloud

Utilisez la commande gcloud suivante pour lister 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 répertorier toutes les règles d'une seule stratégie de sécurité dans une région spécifiée, ainsi qu'une description de la stratégie :

gcloud compute security-policies describe NAME \
  --region REGION

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

Résultat :

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

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

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

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

Console

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

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie s'affiche.

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

  4. Cliquez sur Ajouter une règle.

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

  6. Sélectionnez le mode :

    • Mode de base : autorisez ou refusez le trafic en fonction d'adresses IP ou de plages.
    • 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) à 10 plages d'adresses IP à mettre en correspondance dans la règle. Vous pouvez ajouter jusqu'à 10 plages d'adresses IP. Pour connaître les limites, consultez Quotas et limites de Cloud Armor.

    • 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 :

        evaluatePreconfiguredWaf('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 le flag --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 provenant de la région AU et non comprises 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 "evaluatePreconfiguredWaf('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é Cloud Armor. Pour mettre à jour de façon atomique plusieurs règles, consultez 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 Cloud Armor.

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie 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 stratégie 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 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: evaluatePreconfiguredWaf('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: evaluatePreconfiguredWaf('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é 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é Cloud Armor.

Console

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

    Accéder à la page "Règles Cloud Armor"

  2. Cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie 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 stratégies de sécurité

Utilisez les sections suivantes pour associer des stratégies de sécurité à des services et clusters backend et en supprimer.

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

Suivez ces instructions pour associer une stratégie de sécurité 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 Cloud Armor.

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie 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 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é de backend à un service de backend, utilisez la commande gcloud compute backend-services et le flag --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 le flag --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é de backend ou périphérique Cloud Armor d'un service de backend.

Console

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

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie 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é de backend, utilisez la commande gcloud compute backend-services et le flag --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 le flag --edge-security-policy :

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

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

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

Console

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

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie 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 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 backend, utilisez la commande cloud compute backend-buckets et le flag --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 backend

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

Console

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

    Accéder à la page "Règles Cloud Armor"

  2. Sur la page Stratégies de sécurité, cliquez sur le nom de la stratégie de sécurité. La page Détails de la stratégie 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 backend, utilisez la commande cloud compute backend-buckets et le flag --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é sous forme de fichiers YAML ou JSON.

Exporter des stratégies de sécurité

Vous pouvez exporter une stratégie de sécurité Cloud Armor sous la forme d'un fichier YAML ou JSON en utilisant la Google Cloud CLI. Cette fonctionnalité présente les avantages suivants :

  • Enregistrer une copie pour le contrôle des versions ou la sauvegarde : l'exportation fournit une copie locale de votre stratégie. Vous pouvez enregistrer cette copie dans des systèmes de contrôle des versions comme sauvegarde ou pour suivre les modifications dans le temps. Si nécessaire, vous pourrez l'importer à nouveau ultérieurement pour restaurer une version antérieure de votre stratégie.

  • Modifier et mettre à jour des stratégies localement : vous pouvez modifier les stratégies exportées hors connexion à l'aide de l'éditeur de texte de votre choix. Après avoir apporté des modifications, réimportez la stratégie mise à jour pour appliquer vos modifications à Cloud Armor.

gcloud

  1. Dans la commande suivante, NAME est le nom de la stratégie de sécurité. Les formats de fichiers valides sont YAML et JSON. Si vous ne fournissez pas le format de fichier, 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 stratégie 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.

Importer des stratégies de sécurité

Vous pouvez importer des stratégies de sécurité Cloud Armor à partir d'un fichier YAML ou JSON en utilisant la 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 stratégies de sécurité, utilisez la commande gcloud compute security-policies import NAME. Remplacez NAME par le nom de la stratégie 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, 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.

Lister les règles préconfigurées disponibles

Listez 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 OWASP fourni par Cloud Armor. Ces règles préconfigurées contiennent plusieurs signatures intégrées que 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 plus d'informations, consultez 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 Ajuster les règles WAF 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
    

Étapes suivantes