Intégrer Cloud Armor à Google SecOps

Ce document explique comment intégrer Google Cloud Armor à Google Security Operations.

Cas d'utilisation

L'intégration de Cloud Armor est compatible avec les cas d'utilisation suivants :

  • Blocage automatisé des menaces : bloquez instantanément les adresses ou plages d'adresses IP malveillantes à la périphérie Google Cloud en mettant à jour les règles de stratégie de sécurité lors d'un incident.

  • Gestion des stratégies de sécurité : listez, récupérez et mettez à jour les stratégies et règles de sécurité dans votre environnement pour assurer une protection WAF cohérente.

  • Atténuation dynamique des attaques DDoS : répondez aux attaques volumétriques ou basées sur un protocole en ajustant de manière programmatique les paramètres des stratégies de sécurité.

  • Audit d'investigation : récupérez les détails de configuration des règles de sécurité existantes pour corréler les protections de périphérie avec les alertes de sécurité internes.

Avant de commencer

Avant de configurer l'intégration de Cloud Armor dans Google SecOps, effectuez les étapes préalables suivantes :

  1. Créez et configurez un rôle IAM (Identity and Access Management) personnalisé.

  2. Créez un compte de service.

  3. Choisissez et configurez l'une des méthodes d'authentification suivantes :

    • Option 1 : Workload Identity (recommandé) : cette méthode utilise des jetons de courte durée en empruntant l'identité d'un compte de service.

    • Option 2 : Clé JSON du compte de service : cette méthode repose sur un fichier de clé secrète statique et de longue durée.

Créer et configurer le rôle IAM

Pour fournir à l'intégration les autorisations nécessaires, créez un rôle personnalisé dans votre projet Google Cloud  :

  1. Dans la console Google Cloud , accédez à Rôles.

    Accéder à la page "Rôles"

  2. Cliquez sur addCréer un rôle personnalisé.

  3. Indiquez un titre, une description et un identifiant unique.

  4. Définissez l'étape de lancement du rôle sur Disponibilité générale.

  5. Ajoutez les autorisations suivantes au rôle :

    • compute.backendBuckets.setSecurityPolicy
    • compute.backendServices.setSecurityPolicy
    • compute.regionBackendServices.setSecurityPolicy
    • compute.regionSecurityPolicies.create
    • compute.regionSecurityPolicies.get
    • compute.regionSecurityPolicies.list
    • compute.regionSecurityPolicies.update
    • compute.securityPolicies.create
    • compute.securityPolicies.get
    • compute.securityPolicies.list
    • compute.securityPolicies.update
  6. Cliquez sur Créer.

Créer un compte de service

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Cliquez sur addCréer un compte de service.

  3. Indiquez un nom et une description, puis cliquez sur Créer et continuer.

  4. À l'étape Autoriser ce compte de service à accéder au projet, attribuez le rôle IAM personnalisé que vous avez créé.

  5. Cliquez sur OK. Notez l'adresse e-mail du compte de service.

Configurer les identifiants Workload Identity

Workload Identity est l'approche recommandée, car elle utilise des jetons éphémères en empruntant l'identité d'un compte de service.

Identifier l'identité unique de l'instance

Pour établir une connexion, vous devez autoriser votre instance Google SecOps à emprunter l'identité de votre compte de service.

  1. Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.

  2. Sélectionnez l'intégration Cloud Armor et saisissez l'adresse e-mail de votre compte de service dans Workload Identity Email.

  3. Cliquez sur Enregistrer > Tester. Le test échoue.

  4. Cliquez sur le bouton close_small à côté de Test et recherchez l'adresse e-mail d'identité commençant par gke-init-python@... ou soar-python@....

  5. Copiez cette adresse e-mail unique.

Autoriser l'identité de l'instance dans Google Cloud

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.

  3. Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux et attribuez le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator).

Configurer une clé JSON

Les fichiers de clés secrètes statiques de longue durée nécessitent une rotation manuelle. N'utilisez cette méthode que si l'authentification Workload Identity n'est pas disponible.

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre compte de service.

    Accéder à la page "Comptes de service"

  2. Accédez à l'onglet Clés, puis cliquez sur Ajouter une clé > Créer une clé.

  3. Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.

Paramètres d'intégration

L'intégration de Cloud Armor nécessite les paramètres suivants :

Paramètre Description
API Root

Obligatoire.

La racine de l'API du service Cloud Armor.

La valeur par défaut est https://compute.googleapis.com/compute/v1/.

Project ID

Facultatif.

ID du projet à cibler pour Cloud Armor.

Si aucune valeur n'est fournie, l'intégration récupère l'ID à partir des identifiants du compte de service.

Workload Identity Email

Facultatif.

Adresse e-mail du client de votre compte de service. Configurez ce paramètre pour l'authentification Workload Identity.

Si cette option est configurée, User Service Account est ignoré.

User Service Account

Facultatif.

Contenu complet du fichier JSON de la clé du compte de service. Configurez ce paramètre pour l'authentification par clé de compte de service.

Si elle est configurée, l'intégration ignore Workload Identity Email.

Verify SSL

Obligatoire.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Google Cloud .

Cette option est activée par défaut.

Pour savoir comment configurer une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement si nécessaire. Après avoir configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour en savoir plus sur la configuration et la prise en charge de plusieurs instances, consultez Prendre en charge plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis votre bureau et Exécuter une action manuelle dans votre demande.

Ajouter une règle à une stratégie de sécurité

Ajoutez une règle à la stratégie de sécurité dans le service Cloud Armor.

Entités

Cette action ne s'exécute pas sur les entités.

Entrées de l'action

Pour configurer l'action, utilisez les paramètres suivants :

Paramètres
Policy Name Obligatoire

Nom de la stratégie de sécurité à laquelle ajouter une règle.

Region Optional

Région de la stratégie dans laquelle ajouter la règle.

Si aucune valeur n'est fournie, la règle est ajoutée à la stratégie de sécurité au niveau global.

Rule JSON Obligatoire

Définition JSON de la règle à ajouter.

Pour en savoir plus sur l'ajout d'une règle à une stratégie, consultez Méthode : securityPolicies.addRule.

Sorties de l'action

Type de sortie de l'action
Pièce jointe du mur des cas N/A
Lien vers le mur des cas N/A
Tableau du mur des cas N/A
Table d'enrichissement N/A
Résultat JSON Disponible
Résultat du script Disponible
Résultat du script
Nom du résultat du script Valeur
is_success Vrai ou faux
Résultat JSON
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
Mur des cas

Cette action fournit les messages de sortie suivants :

Message de sortie Description du message
Successfully added a new rule to the security policy! Action effectuée.
Error executing action "Add a Rule to a Security Policy". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée, les identifiants, le nom de la région, le contenu du fichier JSON ou le nom d'une stratégie.

Créer une stratégie de sécurité

Créez une stratégie de sécurité dans le service Cloud Armor.

Entités

Cette action ne s'exécute pas sur les entités.

Entrées de l'action

Pour configurer l'action, utilisez les paramètres suivants :

Paramètres
Region Optional

Région dans laquelle créer une stratégie.

Si aucune valeur n'est fournie, la stratégie de sécurité au niveau global est créée.

Policy JSON Obligatoire

Définition JSON de la stratégie à créer.

Pour en savoir plus sur les stratégies, consultez Ressource REST : securityPolicies.

Sorties de l'action

Type de sortie de l'action
Pièce jointe du mur des cas N/A
Lien vers le mur des cas N/A
Tableau du mur des cas N/A
Table d'enrichissement N/A
Résultat JSON Disponible
Résultat du script Disponible
Résultat du script
Nom du résultat du script Valeur
is_success Vrai ou faux
Résultat JSON
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
Mur des cas

Cette action fournit les messages de sortie suivants :

Message de sortie Description du message
Successfully created a new security policy! Action effectuée.
Error executing action "Create a Security Policy". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée, les identifiants, le nom de la région ou le contenu d'un fichier JSON.

Ping

Testez la connectivité au service Cloud Armor avec les paramètres fournis sur la page de configuration de l'intégration.

Entités

Cette action ne s'exécute pas sur les entités.

Entrées de l'action

N/A

Sorties de l'action

Type de sortie de l'action
Pièce jointe du mur des cas N/A
Lien vers le mur des cas N/A
Tableau du mur des cas N/A
Table d'enrichissement N/A
Résultat JSON N/A
Résultat du script Disponible
Résultat du script
Nom du résultat du script Valeur
is_success Vrai ou faux
Mur des cas

Cette action fournit les messages de sortie suivants :

Message de sortie Description du message
Successfully connected to the Google Cloud Armor service with the provided connection parameters! Action effectuée.
Failed to connect to the Google Cloud Armor service! Error is ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Mettre à jour une stratégie de sécurité

Mettez à jour la stratégie de sécurité existante dans le service Cloud Armor.

Cette action ne peut pas mettre à jour les règles d'une stratégie. Pour ajouter une règle à la stratégie associée, utilisez l'action Ajouter une règle à une stratégie de sécurité.

Entités

Cette action ne s'exécute pas sur les entités.

Entrées de l'action

Pour configurer l'action, utilisez les paramètres suivants :

Paramètres
Policy Name Obligatoire

Nom de la stratégie de sécurité à laquelle ajouter une règle.

Region Optional

Région de la stratégie mise à jour.

Si aucune valeur n'est fournie, la stratégie de sécurité au niveau global est créée.

Rule JSON Obligatoire

Définition JSON de la stratégie à mettre à jour.

Pour en savoir plus sur les mises à jour des règles, consultez Méthode : securityPolicies.patch .

Vous ne pouvez pas mettre à jour les règles avec cette action. Pour ajouter une règle à une stratégie, utilisez l'action Ajouter une règle à une stratégie de sécurité.

Sorties de l'action

Type de sortie de l'action
Pièce jointe du mur des cas N/A
Lien vers le mur des cas N/A
Tableau du mur des cas N/A
Table d'enrichissement N/A
Résultat JSON Disponible
Résultat du script Disponible
Résultat du script
Nom du résultat du script Valeur
is_success Vrai ou faux
Résultat JSON
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
Mur des cas

Cette action fournit les messages de sortie suivants :

Message de sortie Description du message
Successfully added comment to the identity protection detection with ID DETECTION_ID in CrowdStrike Action effectuée.
Error executing action "Update a Security Policy". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.