Cette page explique comment diffuser des résultats nouveaux et mis à jour vers un ensemble de données BigQuery à l'aide de la fonction d'exportation de Security Command Center pour BigQuery. Les résultats existants ne sont pas envoyés à BigQuery, sauf s'ils sont mis à jour.
Google 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. Vous pouvez utiliser BigQuery pour exécuter des requêtes sur les résultats nouveaux et mis à jour, filtrer les données pour trouver ce dont vous avez besoin et générer des rapports personnalisés. Pour en savoir plus sur BigQuery, consultez la documentation BigQuery.
Présentation
Lorsque vous activez cette fonctionnalité, les nouveaux résultats écrits dans Security Command Center sont exportés vers une table BigQuery quasiment en temps réel. Vous pouvez ensuite intégrer les données dans des workflows existants et créer des analyses personnalisées. Vous pouvez activer cette fonctionnalité au niveau de l'organisation, du dossier et du projet pour exporter les résultats en fonction de vos besoins.
Cette fonctionnalité est recommandée pour exporter les résultats de Security Command Center vers BigQuery, car elle est entièrement gérée et ne nécessite pas d'effectuer des opérations manuelles ni d'écrire du code personnalisé.
Structure de l'ensemble de données
Cette fonctionnalité ajoute chaque nouveau résultat et ses mises à jour ultérieures sous forme de nouvelles lignes dans la table findings
, qui est mise en cluster par source_id
, finding_id
et event_time
.
Lorsqu'un résultat est mis à jour, cette fonctionnalité crée plusieurs enregistrements de résultats avec les mêmes valeurs source_id
et finding_id
, mais avec des valeurs event_time
différentes. Cette structure d'ensemble de données vous permet de voir l'évolution de l'état de chaque résultat au fil du temps.
Notez que votre ensemble de données peut contenir des entrées en double. Pour les analyser, vous pouvez utiliser la clause DISTINCT
, comme indiqué dans le premier exemple de requête.
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 : |
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, Exemple : |
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
|
ressource |
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
|
Coût
Des frais BigQuery liés à cette fonctionnalité vous sont facturés. Pour en savoir plus, consultez l'article sur la tarification 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 :
Dans l'organisation, le dossier ou le projet à partir duquel vous souhaitez exporter les résultats, utilisez l'une des méthodes suivantes:
- Éditeur des exportations BigQuery du centre de sécurité (
roles/securitycenter.bigQueryExportsEditor
) - Administrateur du centre de sécurité (
roles/securitycenter.admin
)
Pour en savoir plus sur les rôles Security Command Center, consultez la page Contrôle des accès.
- Éditeur des exportations BigQuery du centre de sécurité (
Dans l'ensemble de données BigQuery, Propriétaire de données BigQuery (
roles/bigquery.dataOwner
).
Créer un ensemble de données BigQuery
Créez un ensemble de données BigQuery. Pour en savoir plus, consultez la page Créer des ensembles de données.
Planifier la résidence des données
Si la résidence des données est activée pour Security Command Center, les configurations qui définissent les exportations en streaming vers BigQuery (ressources BigQueryExport
) sont soumises au contrôle de la résidence des données et sont stockées dans un emplacement Security Command Center que vous sélectionnez.
Pour exporter les résultats d'un emplacement Security Command Center vers BigQuery, vous devez configurer l'exportation BigQuery dans le même emplacement Security Command Center que les résultats.
Étant donné que les filtres utilisés dans les exportations BigQuery peuvent contenir des données soumises à des contrôles de résidence, veillez à spécifier le bon emplacement avant de les créer. Security Command Center ne limite pas l'emplacement dans lequel vous créez des exportations.
Les exportations BigQuery ne sont stockées que dans l'emplacement où elles sont créées et ne peuvent pas être consultées ni modifiées à d'autres emplacements.
Une fois que vous avez créé une exportation BigQuery, vous ne pouvez plus modifier son emplacement. Pour modifier l'emplacement, vous devez supprimer l'exportation BigQuery et la recréer dans le nouvel emplacement.
Pour récupérer une exportation BigQuery à l'aide d'appels d'API, vous devez spécifier l'emplacement dans le nom complet de la ressource de bigQueryExport
.
Exemple :
GET https://securitycenter.googleapis.com/v2/organizations/123/locations/eu/bigQueryExports/my-export-01
De même, pour récupérer une exportation BigQuery à l'aide de gcloud CLI, vous devez spécifier l'emplacement à l'aide de l'option --location
. Exemple :
gcloud scc bqexports get myBigQueryExport --organization=123 \
--location=us
Exporter les résultats de Security Command Center vers BigQuery
Pour exporter les résultats, commencez par activer l'API Security Command Center.
Activer l'API Security Command Center
Pour activer l'API Security Command Center, procédez comme suit :
Accédez à la page "Bibliothèque d'API" de la console Google Cloud.
Sélectionnez le projet pour lequel vous souhaitez activer l'API Security Command Center.
Dans le champ de recherche, saisissez
Security Command Center
, puis cliquez sur Security Command Center dans les résultats de recherche.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. Ensuite, vous allez utiliser gcloud CLI pour créer une configuration d'exportation vers BigQuery.
Accorder l'accès à un périmètre dans VPC Service Controls
Si vous utilisez VPC Service Controls et que votre ensemble de données BigQuery fait partie d'un projet dans un périmètre de service, vous devez accorder l'accès aux projets afin d'exporter les résultats.
Pour accorder l'accès aux projets, créez des règles d'entrée et de sortie pour les principaux et les projets à partir desquels vous exportez les résultats. Les règles autorisent l'accès aux ressources protégées et permettent à BigQuery de vérifier que les utilisateurs disposent de l'autorisation setIamPolicy
sur l'ensemble de données BigQuery.
Avant de configurer une nouvelle exportation vers BigQuery
Accédez à la page "VPC Service Controls" dans Google Cloud Console.
Si nécessaire, sélectionnez votre organisation.
Cliquez sur le nom du périmètre de service que vous souhaitez modifier.
Pour trouver le périmètre de service que vous devez modifier, vous pouvez rechercher dans vos journaux les entrées indiquant des cas de non-respect de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dans ces entrées, vérifiez le champservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
.Cliquez sur Modifier le périmètre.
Dans le menu de navigation, cliquez sur Règle d'entrée.
Pour configurer des règles d'entrée pour les utilisateurs ou les comptes de service, utilisez les paramètres suivants:
- Attributs "FROM" du client API :
- Dans le menu Identités, choisissez Identités sélectionnées.
- Dans le menu Source, sélectionnez Toutes les sources.
- Cliquez sur Sélectionner, puis saisissez le principal utilisé pour appeler l'API Security Command Center.
- Attributs "TO" des services/ressources Google Cloud :
- Dans le menu Projet, choisissez Projets sélectionnés.
- Cliquez sur Sélectionner, puis saisissez le projet contenant l'ensemble de données BigQuery.
- Dans le menu Services, choisissez Services sélectionnés, puis API BigQuery.
- Dans le menu Méthodes, choisissez Toutes les actions.
- Attributs "FROM" du client API :
Cliquez sur Enregistrer.
Dans le menu de navigation, cliquez sur Règle de sortie.
Cliquez sur Add Rule (Ajouter une règle).
Pour configurer des règles de sortie pour les comptes utilisateur ou de service, saisissez les paramètres suivants:
- Attributs "FROM" du client API :
- Dans le menu Identités, choisissez Identités sélectionnées.
- Cliquez sur Sélectionner, puis saisissez le principal utilisé pour appeler l'API Security Command Center.
- Attributs "TO" des services/ressources Google Cloud :
- Dans le menu Projet, choisissez Tous les projets.
- Dans le menu Services, choisissez Sélectionner des services, puis API BigQuery.
- Dans le menu Méthodes, choisissez Toutes les actions.
- Attributs "FROM" du client API :
Cliquez sur Enregistrer.
Configurer une nouvelle exportation vers BigQuery
Au cours de cette étape, vous allez créer une configuration d'exportation pour exporter les résultats vers une instance BigQuery. Vous pouvez créer des configurations d'exportation au niveau du projet, du dossier ou de l'organisation. Par exemple, si vous souhaitez exporter les résultats d'un projet vers un ensemble de données BigQuery, vous devez créer une configuration d'exportation au niveau du projet pour n'exporter que les résultats associés à ce projet. Vous pouvez éventuellement spécifier des filtres pour n'exporter que certains résultats.
Veillez à créer vos configurations d'exportation au niveau approprié. Par exemple, si vous créez une configuration d'exportation dans le projet B pour exporter les résultats du projet A et que vous définissez des filtres tels que resource.project_display_name: project-a-id
, la configuration n'exporte aucun résultat.
Vous pouvez créer jusqu'à 500 configurations d'exportation vers BigQuery pour votre organisation. Vous pouvez utiliser le même ensemble de données pour plusieurs configurations d'exportation. Si vous utilisez le même ensemble de données, toutes les mises à jour seront appliquées à la même table de résultats.
Lorsque vous créez votre première configuration d'exportation, un compte de service est créé automatiquement. Ce compte de service est nécessaire pour créer ou mettre à jour la table de résultats dans un ensemble de données, et pour exporter des résultats dans la table.
Elle est au format service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gservicaccount.com
et dispose du rôle "Éditeur de données BigQuery" (roles/bigquery.dataEditor
) au niveau de l'ensemble de données BigQuery.
Dans la console Google Cloud, certaines ressources BigQueryExport
peuvent afficher un libellé Ancienne, ce qui indique qu'elles ont été créées avec l'API Security Command Center v1. Vous pouvez gérer ces ressources BigQueryExport
avec la console Google Cloud, la gcloud CLI, l'API Security Command Center v1 ou les bibliothèques clientes v1 pour Security Command Center.
Pour gérer ces ressources BigQueryExport
avec la CLI gcloud, vous ne devez pas spécifier d'emplacement lorsque vous exécutez la commande gcloud CLI.
gcloud
Accédez à Google Cloud Console.
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Pour créer une configuration d'exportation, exécutez la commande suivante :
gcloud scc bqexports create BIGQUERY_EXPORT \ --dataset=DATASET_NAME \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION \ [--description=DESCRIPTION] \ [--filter=FILTER]
Remplacez les éléments suivants :
BIGQUERY_EXPORT
par le nom que vous souhaitez donner à cette configuration d'exportation.DATASET_NAME
par le nom de l'ensemble de données BigQuery (par exemple,projects/PROJECT_ID/datasets/DATASET_ID
).FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
par le nom de votre dossier, organisation ou projet. Vous devez définir l'une de ces options. Pour les dossiers et les organisations, le nom est l'ID du dossier ou l'ID de l'organisation. Pour les projets, le nom est le numéro ou l'ID du projet.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel créer une configuration d'exportation. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.DESCRIPTION
avec une description lisible de la configuration d'exportation. Cette variable est facultative.FILTER
par une expression qui définit les résultats à inclure dans l'exportation. Par exemple, si vous souhaitez filtrer les résultats selon la catégorie XSS_SCRIPTING, saisissez"category=\"XSS_SCRIPTING\"
. Cette variable est facultative.
Java
Pour vous authentifier auprès de Security Command Center, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez la section Configurer l'ADC pour un environnement de développement local.
Python
Pour vous authentifier auprès de Security Command Center, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez la section Configurer l'ADC pour un environnement de développement local.
Les résultats devraient s'afficher dans votre ensemble de données BigQuery dans les 15 minutes qui suivent la création de la configuration d'exportation. Une fois la table BigQuery créée, tous les résultats nouveaux et mis à jour correspondant à votre filtre et à votre champ d'application apparaissent quasiment en temps réel dans la table.
Pour examiner vos résultats, consultez la section Examiner les résultats.
Créer une règle d'importation pour la nouvelle exportation vers BigQuery
Si vous utilisez VPC Service Controls et que votre ensemble de données BigQuery fait partie d'un projet dans un périmètre de service, vous devez créer une règle d'entrée pour une nouvelle exportation vers BigQuery.
Ouvrez à nouveau le périmètre de service depuis Configurer une nouvelle exportation vers BigQuery.
Cliquez sur Règle d'entrée.
Cliquez sur Add Rule (Ajouter une règle).
Pour configurer la règle d'entrée pour les configurations d'exportation, saisissez les paramètres suivants:
- Attributs "FROM" du client API :
- Dans le menu déroulant Source, sélectionnez Toutes les sources.
- Dans le menu déroulant Identités, choisissez Identités sélectionnées.
- Cliquez sur Sélectionner, puis saisissez le nom du compte de service de configuration d'exportation BigQuery :
service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
- Attributs "TO" des services/ressources GCP :
- Dans le menu déroulant Projet, choisissez Projets sélectionnés.
- Cliquez sur Sélectionner, puis sur le projet contenant l'ensemble de données BigQuery.
- Dans le menu déroulant Services, choisissez Services sélectionnés, puis API BigQuery.
- Dans le menu déroulant Méthodes, choisissez Toutes les actions.
- Attributs "FROM" du client API :
Dans le menu de navigation, cliquez sur Enregistrer.
Les projets, utilisateurs et comptes de service sélectionnés peuvent désormais accéder aux ressources protégées et exporter les résultats.
Si vous avez suivi toutes les étapes de ce guide et que les exportations fonctionnent correctement, vous pouvez maintenant supprimer les éléments suivants:
- Règle d'entrée pour le principal
- Règle de sortie pour le principal
Ces règles n'étaient nécessaires que pour configurer la configuration d'exportation. Toutefois, pour que les configurations d'exportation continuent de fonctionner, vous devez conserver la règle d'entrée que vous avez créée précédemment, qui permet à Security Command Center d'exporter les résultats vers votre ensemble de données BigQuery derrière le périmètre de service.
Afficher les détails d'une configuration d'exportation
gcloud
Accédez à Google Cloud Console.
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Pour vérifier les détails de la configuration d'exportation, exécutez la commande suivante:
gcloud scc bqexports get BIGQUERY_EXPORT \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION
Remplacez les éléments suivants :
BIGQUERY_EXPORT
par le nom de cette configuration d'exportation.FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
par le nom de votre dossier, organisation ou projet. Vous devez définir l'une de ces options. Pour les dossiers et les organisations, le nom est l'ID du dossier ou l'ID de l'organisation. Pour les projets, le nom est le numéro ou l'ID du projet.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel créer une configuration d'exportation. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.Par exemple, pour obtenir une configuration d'exportation nommée
my-bq-export
d'une organisation avec un ID d'organisation défini sur123
, exécutez:gcloud scc bqexports get my-bq-export \ --organization=123 \ --location=global
Mettre à jour une configuration d'exportation
Si nécessaire, vous pouvez modifier le filtre, l'ensemble de données et la description d'une configuration d'exportation existante. Vous ne pouvez pas modifier le nom de la configuration d'exportation.
gcloud
Accédez à Google Cloud Console.
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Pour mettre à jour une configuration d'exportation, exécutez la commande suivante :
gcloud scc bqexports update BIGQUERY_EXPORT \ --dataset=DATASET_NAME \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION \ [--description=DESCRIPTION] \ [--filter=FILTER]
Remplacez les éléments suivants :
BIGQUERY_EXPORT
par le nom de la configuration d'exportation que vous souhaitez mettre à jour.DATASET_NAME
par le nom de l'ensemble de données BigQuery (par exemple,projects/PROJECT_ID/datasets/DATASET_ID
).FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
par le nom de votre dossier, organisation ou projet. Vous devez définir l'une de ces options. Pour les dossiers et les organisations, le nom est l'ID du dossier ou l'ID de l'organisation. Pour les projets, le nom est le numéro ou l'ID du projet.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel mettre à jour la configuration d'exportation. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.DESCRIPTION
avec une description lisible de la configuration d'exportation. Cette variable est facultative.FILTER
par une expression qui définit les résultats à inclure dans l'exportation. Par exemple, si vous souhaitez filtrer les résultats selon la catégorie XSS_SCRIPTING, saisissez"category=\"XSS_SCRIPTING\"
. Cette variable est facultative.
Afficher toutes les configurations d'exportation
Vous pouvez afficher toutes les configurations d'exportation de votre organisation, de votre dossier ou de votre projet.
gcloud
Accédez à Google Cloud Console.
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Pour répertorier les configurations d'exportation, exécutez la commande suivante :
gcloud scc bqexports list \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION \ [--limit=LIMIT] \ [--page-size=PAGE_SIZE]
Remplacez les éléments suivants :
FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
par le nom de votre dossier, organisation ou projet. Vous devez définir l'une de ces options. Pour les dossiers et les organisations, le nom est l'ID du dossier ou l'ID de l'organisation. Pour les projets, le nom est le numéro ou l'ID du projet.Si vous spécifiez un ID d'organisation, la liste inclut toutes les configurations d'exportation définies dans cette organisation, y compris celles au niveau du dossier et du projet. Si vous spécifiez un ID de dossier, la liste comprend toutes les configurations d'exportation définies au niveau du dossier et dans les projets de ce dossier. Si vous spécifiez un numéro ou un ID de projet, la liste n'inclut que les configurations d'exportation de ce projet.
LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel lister les configurations d'exportation. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.LIMIT
par le nombre de configurations d'exportation que vous souhaitez afficher. Cette variable est facultative.PAGE_SIZE
avec une valeur de taille de page. Cette variable est facultative.
Java
Pour vous authentifier auprès de Security Command Center, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez la section Configurer l'ADC pour un environnement de développement local.
Python
Pour vous authentifier auprès de Security Command Center, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez la section Configurer l'ADC pour un environnement de développement local.
Supprimer une configuration d'exportation
Si vous n'avez plus besoin d'une configuration d'exportation, vous pouvez la supprimer.
gcloud
Accédez à Google Cloud Console.
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Pour supprimer une configuration d'exportation, exécutez la commande suivante :
gcloud scc bqexports delete BIGQUERY_EXPORT \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION
Remplacez les éléments suivants :
BIGQUERY_EXPORT
par le nom de la configuration d'exportation que vous souhaitez supprimer.FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
par le nom de votre dossier, organisation ou projet. Vous devez définir l'une de ces options. Pour les dossiers et les organisations, le nom est l'ID du dossier ou l'ID de l'organisation. Pour les projets, le nom est le numéro ou l'ID du projet.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel supprimer la configuration d'exportation. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.Par exemple, pour supprimer une configuration d'exportation nommée
my-bq-export
d'une organisation avec un ID d'organisation défini sur123
, exécutez la commande suivante:gcloud scc bqexports delete my-bq-export \ --organization=123 \ --location=global
Java
Pour vous authentifier auprès de Security Command Center, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez la section Configurer l'ADC pour un environnement de développement local.
Python
Pour vous authentifier auprès de Security Command Center, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez la section Configurer l'ADC pour un environnement de développement local.
Une fois la configuration de l'exportation supprimée, vous pouvez supprimer les données de Looker Studio. Pour plus d'informations, consultez la page Retirer, supprimer et restaurer une source de données.
Examiner les résultats dans BigQuery
Après avoir créé une configuration d'exportation, les nouveaux résultats sont exportés vers l'ensemble de données BigQuery dans le projet que vous avez spécifié.
Pour examiner les résultats dans BigQuery, procédez comme suit :
Accédez au projet dans BigQuery.
Sélectionnez un projet.
Dans le volet Explorateur, développez le nœud de votre projet.
Développez votre ensemble de données.
Cliquez sur la table des résultats.
Dans l'onglet qui s'affiche, cliquez sur Aperçu. Un échantillon de données s'affiche.
Requêtes utiles
Cette section fournit des exemples de requêtes d'analyse des données de résultats. Dans les exemples suivants, remplacez DATASET
par le nom attribué à votre ensemble de données et PROJECT_ID
par le nom de projet de votre ensemble de données.
Pour résoudre les erreurs que vous rencontrez, consultez la section Messages d'erreur.
Le nombre de résultats créés et mis à jour quotidiennement
SELECT
FORMAT_DATETIME("%Y-%m-%d", event_time) AS date,
count(DISTINCT finding_id)
FROM `PROJECT_ID.DATASET.findings`
GROUP BY date
ORDER BY date DESC
Dernier enregistrement de résultat pour chaque résultat
SELECT
* EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
)
WHERE row = 1
Résultats actuels actifs, triés par ordre chronologique
WITH latestFindings AS (
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
WHERE finding.state = "ACTIVE"
ORDER BY event_time DESC
Résultats actuels dans un projet
WITH latestFindings AS (
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding, resource
FROM latestFindings
WHERE resource.project_display_name = 'PROJECT'
Remplacez PROJECT
par le nom du projet.
Résultats actuels situés dans un dossier
WITH latestFindings AS(
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding, resource
FROM latestFindings
CROSS JOIN UNNEST(resource.folders) AS folder
WHERE folder.resource_folder_display_name = 'FOLDER'
Remplacez FOLDER
par le nom du dossier.
Résultats actuels de l'outil d'analyse Logging Scanner
WITH latestFindings AS (
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
CROSS JOIN UNNEST(finding.source_properties) AS source_property
WHERE source_property.key = "ScannerName"
AND source_property.value = "LOGGING_SCANNER"
Résultats actifs de type Persistence: IAM Anomalous Grant
WITH latestFindings AS(
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
WHERE finding.state = "ACTIVE"
AND finding.category = "Persistence: IAM Anomalous Grant"
Corréler les résultats actifs d'un type donné avec Cloud Audit Logs
Cet exemple de requête permet d'examiner les résultats d'octroi IAM anormaux du service Event Threat Detection à l'aide de Cloud Audit Logs en affichant la séquence d'actions d'administration de l'approbateur au cours de la période précédente et en effectuant l'action d'octroi IAM anormale. Cette requête correspond aux journaux d'activité d'administration entre une heure avant et une heure après l'horodatage du résultat.
WITH latestFindings AS(
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT
finding_id,
ANY_VALUE(event_time) as event_time,
ANY_VALUE(finding.access.principal_email) as grantor,
JSON_VALUE_ARRAY(ANY_VALUE(finding.source_properties_json), '$.properties.sensitiveRoleGrant.members') as grantees,
ARRAY_AGG(
STRUCT(
timestamp,
IF(timestamp < event_time, 'before', 'after') as timeline,
protopayload_auditlog.methodName,
protopayload_auditlog.resourceName,
protopayload_auditlog.serviceName
)
ORDER BY timestamp ASC
) AS recent_activity
FROM (
SELECT
f.*,
a.*,
FROM latestFindings AS f
LEFT JOIN `PROJECT_ID.DATASET.cloudaudit_googleapis_com_activity` AS a
ON a.protopayload_auditlog.authenticationInfo.principalEmail = f.finding.access.principal_email
WHERE f.finding.state = "ACTIVE"
AND f.finding.category = "Persistence: IAM Anomalous Grant"
AND a.timestamp >= TIMESTAMP_SUB(f.event_time, INTERVAL 1 HOUR)
AND a.timestamp <= TIMESTAMP_ADD(f.event_time, INTERVAL 1 HOUR)
)
GROUP BY
finding_id
ORDER BY
event_time DESC
Le résultat ressemble à ce qui suit :
Créer des graphiques dans Looker Studio
Looker Studio vous permet de créer des rapports et des tableaux de bord interactifs.
En général, l'accès à BigQuery via Looker Studio entraîne des frais d'utilisation BigQuery. Pour en savoir plus, consultez la page Visualiser des données BigQuery à l'aide de Looker Studio.
Pour créer un graphique qui représente les données de résultats par gravité et par catégorie, procédez comme suit:
- Ouvrez Looker Studio et connectez-vous.
- Si vous y êtes invité, indiquez des informations supplémentaires et configurez d'autres préférences. Lisez les conditions d'utilisation et, si vous êtes satisfait, continuez.
- Cliquez sur Rapport vide.
- Dans l'onglet Se connecter aux données, cliquez sur la fiche BigQuery.
- Si vous y êtes invité, autorisez Looker Studio à accéder aux projets BigQuery.
Connectez-le à vos données de résultats:
- Pour Projet, sélectionnez ce projet pour votre ensemble de données. Vous pouvez également saisir votre ID de projet dans l'onglet Mes projets pour le rechercher.
- Dans le champ Ensemble de données, cliquez sur le nom de l'ensemble de données.
- Dans le champ Table, cliquez sur résultats.
- Cliquez sur Ajouter.
- Dans la boîte de dialogue, cliquez sur Ajouter au rapport.
Une fois le rapport ajouté, cliquez sur Ajouter un graphique.
Cliquez sur Histogramme empilé, puis sur la zone dans laquelle vous souhaitez le placer.
Dans le volet Graphique > Barre, accédez à l'onglet Données, puis définissez les champs suivants :
- Dans le champ Dimension, sélectionnez finding.severity.
- Dans le champ Dimension de répartition, sélectionnez finding.category.
Le rapport est mis à jour pour afficher plusieurs colonnes avec des résultats répartis par niveau de gravité et par catégorie.
Étape suivante
Découvrez comment exécuter une requête dans BigQuery.