Exporter des résultats vers BigQuery de manière groupée

Ce document explique comment lancer des exportations groupées à la demande des résultats Security Command Center vers BigQuery.

BigQuery est l'entrepôt de données d'analyse de Google Cloud, entièrement géré à l'échelle du pétaoctet et à faible coût, qui vous permet d'exécuter des analyses sur de grandes quantités de données en quasi-temps réel. Pour en savoir plus sur BigQuery, consultez la documentation BigQuery.

Présentation

Cette fonctionnalité fournit un instantané des résultats jusqu'à un certain moment. Cette fonctionnalité complète l'exportation continue vers BigQuery pour fournir des analyses et des rapports complets.

Les exportations groupées vous permettent d'effectuer les opérations suivantes :

Structure de l'ensemble de données

Les résultats sont exportés vers BigQuery sous forme de lignes dans la table findings, qui est regroupée par source_id, finding_id et event_time.

Chaque ensemble de données contient une table findings, qui contient les champs suivants :

Champ Description
source_id

Identifiant unique que Security Command Center attribue à la source d'un résultat. Par exemple, tous les résultats de la source Cloud Anomaly Detection ont la même valeur source_id.

Exemple : 1234567890

finding_id Identifiant unique qui représente le résultat. Il est unique au sein d'une source pour une organisation. Il est alphanumérique et comporte 32 caractères ou moins.
event_time

Heure à laquelle l'événement s'est produit ou heure de la mise à jour du résultat. Par exemple, si le résultat représente un pare-feu ouvert, event_time capture l'heure à laquelle le détecteur estime que le pare-feu a été ouvert. Si le résultat est résolu par la suite, cette valeur indique l'heure de résolution du résultat.

Exemple : 2019-09-26 12:48:00.985000 UTC

bulk_export_id

Pour les exportations groupées (Preview), il s'agit d'un UUID.

Pour les exportations continues, ce champ est vide.

finding

Enregistrement d'informations d'évaluation, telles que la sécurité, les risques, l'état ou la confidentialité, qui sont ingérées dans Security Command Center pour la présentation, la notification, l'analyse, les tests de règles et l'application. Par exemple, une faille de script intersites (XSS) dans une application App Engine est un résultat.

Pour en savoir plus sur les champs imbriqués, consultez la documentation de référence de l'API pour l'objet Finding.

resource

Informations concernant la ressource Google Cloud associée à ce résultat.

Pour en savoir plus sur les champs imbriqués, consultez la documentation de référence de l'API pour l'objet Resource.

Coût

Des frais BigQuery liés à cette fonctionnalité vous seront facturés pour le stockage de données dans BigQuery. Pour en savoir plus, consultez les tarifs de stockage BigQuery.

Avant de commencer

Vous devez suivre cette procédure avant d'activer cette fonctionnalité.

Configurer les autorisations

Pour suivre ce guide, vous devez disposer des rôles Identity and Access Management (IAM) suivants :

Créer un ensemble de données BigQuery

Créez un ensemble de données BigQuery en suivant les étapes décrites dans Créer des ensembles de données.

Activer l'API Security Command Center

Pour exporter les résultats, vous devez activer l'API Security Command Center en procédant comme suit :

  1. Accédez à la page Bibliothèque d'API de la console Google Cloud .

    Accéder à la bibliothèque d'API

  2. Sélectionnez le projet pour lequel vous souhaitez activer l'API Security Command Center.

  3. Dans le champ Rechercher, saisissez Security Command Center, puis cliquez sur Security Command Center dans les résultats de recherche.

  4. Dans la page de l'API qui s'affiche, cliquez sur Activer.

L'API Security Command Center est désormais activée pour votre projet.

Accorder l'accès à un périmètre dans VPC Service Controls

Si vous utilisez VPC Service Controls, consultez Accorder l'accès au périmètre dans VPC Service Controls et suivez ces étapes, si nécessaire.

Cette étape doit être répétée pour chaque utilisateur qui crée une exportation groupée pour un périmètre de service donné.

Créer une règle d'entrée pour la nouvelle exportation groupée BigQuery

Si vous utilisez VPC Service Controls, consultez Créer une règle d'entrée pour la nouvelle exportation vers BigQuery et suivez ces étapes, si nécessaire.

Limites des exportations groupées BigQuery

Tenez compte des contraintes suivantes lorsque vous créez des exportations groupées BigQuery :

  • Seules trois exportations groupées simultanées sont autorisées à tout moment pour une même organisation.
  • Si vous demandez plusieurs exportations groupées non simultanées vers le même ensemble de données BigQuery, les nouveaux résultats de l'exportation sont ajoutés à la table findings de BigQuery. Les résultats ne sont pas écrasés.

Créer une exportation groupée BigQuery

L'exportation groupée des résultats n'est possible qu'au niveau de l'organisation.

Pour lancer une exportation groupée des résultats vers une instance BigQuery, utilisez la gcloud CLI et procédez comme suit :

  1. Accédez à la console Google Cloud .

    Accéder à la console Google Cloud

  2. Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.

  3. Cliquez sur Activer Cloud Shell.

  4. Pour créer une configuration d'exportation, exécutez la commande suivante :

    gcloud scc findings export-to-bigquery PARENT \
        --dataset=DATASET_NAME \
        [--location=LOCATION; default="global"] \
    

    Remplacez les éléments suivants :

    • PARENT : nom relatif du champ d'application de l'exportation. Exemple de format : organizations/ORGANIZATION_ID
    • DATASET_NAME : nom de l'ensemble de données BigQuery. Exemple de format : projects/PROJECT_ID/datasets/DATASET_ID
    • LOCATION : emplacement Security Command Center dans lequel créer une configuration d'exportation. Si la résidence des données est activée, utilisez eu, sa ou us. Sinon, utilisez la valeur global. Cette variable est facultative.

      Par exemple, pour créer une exportation groupée de tous les résultats, exécutez la commande suivante :

      gcloud scc findings export-to-bigquery organizations/123
        --dataset=projects/123/datasets/DATASET
      

      En termes de résidence des données, l'exemple précédent appelle le point de terminaison global.

      Pour créer la même exportation groupée pour le point de terminaison eu, exécutez la commande suivante :

      gcloud scc findings export-to-bigquery organizations/123
        --dataset=projects/123/datasets/DATASET
        --location=locations/eu
      

Cette commande renvoie un objet d'opération de longue durée contenant une chaîne name requise pour suivre l'état de l'exportation. Pour suivre l'état de cette exportation groupée BigQuery, consultez Afficher l'état d'une exportation groupée.

Pour examiner vos résultats, consultez la section Examiner les résultats.

Requêtes

Pour découvrir différentes requêtes que vous pouvez utiliser pour analyser les données des résultats, consultez Requêtes utiles.

Afficher l'état d'une exportation groupée

Pour afficher l'état d'une exportation groupée, vous avez besoin de la chaîne long running operation name qui vous a été renvoyée lorsque vous avez créé l'exportation groupée.

  1. Accédez à la console Google Cloud .

    Accéder à la console Google Cloud

  2. Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.

  3. Cliquez sur Activer Cloud Shell.

  4. Pour vérifier les détails de la configuration d'exportation groupée, exécutez la commande suivante :

    gcloud scc operations describe LONG_RUNNING_OPERATION_NAME \
        --organization=ORGANIZATION_ID
    

    Remplacez les éléments suivants :

    • LONG_RUNNING_OPERATION_NAME : chaîne name renvoyée lorsque vous avez créé l'exportation groupée.
    • ORGANIZATION_ID

      Par exemple, pour afficher l'état d'une requête d'exportation groupée renvoyée par name: "long-running-operation-name" d'une organisation avec un ID d'organisation défini sur 123, exécutez la commande suivante :

      gcloud scc operations describe long-running-operation-name \
        --organization=123
      
  • Si une exportation a réussi, la réponse contient done: true.
  • Si une exportation a échoué, la réponse contient un code d'erreur.
  • Si une exportation est toujours en cours, la réponse ne contient ni done: true ni code d'erreur.

Exportations groupées et continues BigQuery

Si vous souhaitez utiliser les exportations BigQuery groupées et continues ensemble sur le même ensemble de données BigQuery, deux approches sont possibles :

  • Créez d'abord une exportation continue, puis complétez-la avec une exportation groupée.

    1. Configurez une exportation continue vers un ensemble de données BigQuery. Une fois l'exportation créée, vous commencez à recevoir les résultats Security Command Center en temps réel.

    2. Créez une exportation groupée en utilisant le même ensemble de données BigQuery de destination. Un instantané de tous les résultats Security Command Center au moment de l'exportation est exporté vers l'ensemble de données sélectionné.

    L'exécution d'une exportation groupée prend du temps. Ainsi, si l'exportation continue est créée à T1, l'exportation groupée est déclenchée à T2 et l'instantané des résultats de l'exportation groupée est terminé à T3, des enregistrements en double peuvent être observés entre T1 et T3. Toutefois, il n'y a pas de lacunes dans les résultats.

  • Créez d'abord une exportation groupée, puis une exportation continue.

    1. Créez une exportation groupée. Un instantané de tous les résultats Security Command Center au moment de l'exécution de l'exportation est exporté vers l'ensemble de données BigQuery sélectionné.

    2. Configurez une exportation continue vers le même ensemble de données BigQuery de destination. Une fois l'exportation créée, vous commencez à recevoir les résultats Security Command Center en temps réel.

    Si l'exportation groupée est créée à T1, l'instantané des résultats pour l'exportation groupée se termine à T2 et l'exportation continue est déclenchée à T3. Il est possible que des résultats entre T2 et T3 manquent dans l'ensemble de données BigQuery.

Étapes suivantes