Intégrer Cloud Armor à Google SecOps

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

Cas d'utilisation

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

  • Blocage automatique 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 du règlement 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 règles de sécurité.

  • Audit forensique : 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 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ée) : cette méthode utilise des jetons éphémères 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 durable.

Créer et configurer le rôle IAM

Pour accorder à 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 Ajouter > Créer un rôle personnalisé.

  3. Indiquez un titre, une description et un ID 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 Ajouter > Cré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 à Plate-forme de contenu > Intégrations de réponse.

  2. Sélectionnez l'intégration Cloud Armor, puis 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 Tester, puis 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, puis 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 et 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.

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 User Service Account est configuré, il est ignoré.

User Service Account

Facultatif.

Contenu complet du fichier JSON de clé de 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 obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente dans Votre bureau et Effectuer une action manuelle.

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'applique pas aux entités.

Entrées d'action

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

Paramètres
Policy Name Obligatoire

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

Region Optional

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

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

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 d'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 règle de sécurité

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

Entités

Cette action ne s'applique pas aux entités.

Entrées d'action

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

Paramètres
Region Optional

Région dans laquelle créer une règle.

Si aucune valeur n'est fournie, la règle de sécurité au niveau mondial est créée.

Policy JSON Obligatoire

Définition JSON de la règle à créer.

Pour en savoir plus sur les règles, consultez Ressource REST : securityPolicies.

Sorties d'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'applique pas aux entités.

Entrées d'action

N/A

Sorties d'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 permet pas de modifier les règles d'un règlement. 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'applique pas aux entités.

Entrées d'action

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

Paramètres
Policy Name Obligatoire

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

Region Optional

Région pour la règle mise à jour.

Si aucune valeur n'est fournie, la règle de sécurité au niveau mondial est créée.

Rule JSON Obligatoire

Définition JSON de la règle à mettre à jour.

Pour en savoir plus sur les modifications apportées aux 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 d'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 auprès des membres de la communauté et des professionnels Google SecOps.