Présentation des journaux d'audit dans BigQuery
Vous pouvez utiliser les journaux d'audit BigQuery pour surveiller les activités d'administration et d'accès aux données dans vos projets. Les journaux sont des fichiers texte créés automatiquement qui enregistrent qui a effectué des actions spécifiques, comme créer des tables ou exécuter des jobs, pour vous aider à maintenir la sécurité et à assurer la conformité. Ce document explique quand utiliser les journaux d'audit et fournit une présentation de leur format.
Cloud de Confiance by S3NS écrit également des journaux, y compris des journaux d'audit qui fournissent des insights sur les problèmes opérationnels liés à votre utilisation des services Cloud de Confiance . Pour en savoir plus sur la manière dont Cloud de Confiance gère la journalisation, consultez la documentation de Cloud Logging et la présentation de Cloud Audit Logs.
Journaux d'audit et vues INFORMATION_SCHEMA
Vos projets Cloud de Confiance ne contiennent des journaux d'audit que pour les ressources directement intégrées au projet Cloud de Confiance . Les autres ressources Cloud de Confiance , telles que les dossiers, les organisations et les comptes de facturation, contiennent leurs propres journaux d'audit.
Les journaux d'audit vous aident à répondre à des questions telles que "Qui a fait quoi, où et quand ?" pour vos ressources Cloud de Confiance . Les journaux d'audit sont la source d'information définitive sur l'activité du système par utilisateur et les modèles d'accès. Ils représentent votre principale source d'information pour les questions d'audit ou de sécurité.
Les vues INFORMATION_SCHEMA dans BigQuery sont une autre source d'insights que vous pouvez utiliser avec les métriques et les journaux. Ces vues contiennent des métadonnées sur les jobs, les ensembles de données, les tables et d'autres entités BigQuery. Par exemple, vous pouvez obtenir des métadonnées en temps réel sur les jobs BigQuery exécutés pendant une période donnée. Vous pouvez ensuite regrouper ou filtrer les résultats par projet, utilisateur, tables référencées et d'autres dimensions.
Les vues INFORMATION_SCHEMA vous fournissent des informations pour effectuer une analyse plus détaillée concernant vos charges de travail BigQuery, par exemple :
- Quelle est l'utilisation moyenne des emplacements pour toutes les requêtes effectuées au cours des sept derniers jours sur un projet donné ?
- Quels codes d'erreurs de flux continu ont été le plus vus au cours des 30 dernières minutes ?
Les journaux d'audit BigQuery contiennent des entrées de journal pour les appels d'API, mais ils ne décrivent pas l'impact des appels d'API. Un sous-ensemble d'appels d'API crée des jobs (tels que des requêtes et des chargements) dont les informations sont capturées par les vues INFORMATION_SCHEMA. Par exemple, vous pouvez trouver des informations sur l'heure et les emplacements utilisés par une requête spécifique dans les vues INFORMATION_SCHEMA, mais pas dans les journaux d'audit.
Pour obtenir des insights sur les performances de vos charges de travail BigQuery en particulier, consultez les sections Métadonnées de jobs, Métadonnées de streaming et Métadonnées de réservation.
Pour en savoir plus sur les types de journaux d'audit écrits par les services Cloud de Confiance , consultez Types de journaux d'audit.
Format des journaux d'audit
Les servicesCloud de Confiance écrivent des journaux d'audit au format JSON structuré. Le type de données de base pour les entrées de journal Cloud de Confiance est la structure LogEntry. Cette structure contient le nom du journal, la ressource ayant généré l'entrée de journal, le code temporel (UTC) et d'autres informations de base.
Les journaux incluent les détails de l'événement consigné dans un sous-champ appelé champ de charge utile. Pour les journaux d'audit, le champ de charge utile est nommé protoPayload. Le type de ce champ (protoPayload.@type) est défini sur type.googleapis.com/google.cloud.audit.AuditLog, ce qui indique que le champ utilise la structure de journal AuditLog.
Pour les opérations sur des ensembles de données, des tables et des jobs, BigQuery écrit des journaux d'audit dans deux formats différents, bien qu'ils partagent tous deux le type de base AuditLog.
L'e format le plus ancien inclut les champs et valeurs suivants :
- La valeur pour le champ
resource.typeestbigquery_resource. - BigQuery écrit les détails concernant une opération dans le champ
protoPayload.serviceData. La valeur de ce champ utilise la structure de journalAuditData.
Le format le plus récent inclut les champs et valeurs suivants :
- La valeur pour le champ
resource.typeestbigquery_projectoubigquery_dataset. La ressourcebigquery_projectcontient des entrées de journal concernant les jobs, tandis que la ressourcebigquery_datasetcontient des entrées de journal concernant le stockage. - BigQuery écrit les détails concernant une opération dans le champ
protoPayload.metadata. La valeur de ce champ utilise la structureBigQueryAuditMetadata.
Nous vous recommandons de consulter les journaux dans un format plus récent. Pour en savoir plus, consultez le guide de migration des journaux d'audit.
Voici un exemple d'entrée de journal abrégé illustrant une opération ayant échoué :
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 5,
"message": "Not found: Dataset myproject:mydataset was not found in location US"
},
"authenticationInfo": { ... },
"requestMetadata": { ... },
"serviceName": "bigquery.googleapis.com",
"methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
"metadata": {
},
"resource": {
"type": "bigquery_project",
"labels": { .. },
},
"severity": "ERROR",
"logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
...
}
Pour les opérations sur des réservations BigQuery, le champ protoPayload utilise la structure AuditLog, et les champs protoPayload.request et protoPayload.response contiennent plus d'informations. Vous pouvez voir les définitions des champs dans l'API BigQuery Reservation. Pour en savoir plus, consultez la page Surveiller les réservations BigQuery.
Pour en savoir plus sur le format des journaux d'audit, consultez la page Comprendre les journaux d'audit.
Limites
La taille des messages de journal est limitée à 100 000 octets. Pour en savoir plus, consultez la section Entrée de journal tronquée.
Visibilité et contrôle des accès
Les journaux d'audit BigQuery peuvent inclure des informations que les utilisateurs pourraient considérer comme sensibles, telles que du texte SQL, des définitions de schéma et des identifiants pour des ressources telles que des tables et des ensembles de données. Pour en savoir plus concernant la gestion des accès à ces informations, consultez la documentation sur le contrôle des accès de Cloud Logging.
Carte de télémétrie
Le tableau suivant met en correspondance les fonctionnalités et les ressources BigQuery avec leur télémétrie de surveillance opérationnelle, les services et ressources d'API audités, et la documentation de référence sur les journaux d'audit. Vous pouvez l'utiliser pour trouver la télémétrie dont vous avez besoin pour résoudre les problèmes, optimiser les performances, contrôler les coûts, auditer l'utilisation et assurer la conformité.
Contrairement à de nombreux services Cloud de Confiance by S3NS qui écrivent des journaux de jobs opérationnels dans Cloud Logging, BigQuery écrit la télémétrie des jobs opérationnels dans des vues de schéma d'informations telles que INFORMATION_SCHEMA.JOBS. Ces vues capturent les étapes d'exécution des requêtes, l'utilisation des emplacements, les octets facturés et tous les jobs envoyés, y compris les jobs en cours et ceux ayant échoué.
BigQuery utilise Logging principalement pour émettre des journaux d'audit Cloud, qui enregistrent les activités d'administration et d'accès aux données. Lorsque vous auditez cette activité, vous pouvez déterminer qui a accédé aux ressources ou aux données, où et quand.
Les journaux d'audit ne sont pas émis pour chaque interruption ou échec de job. Par exemple, les jobs ayant échoué ne génèrent pas d'événements TableDataRead ou TableDataChange, et jobCompletedEvent n'enregistre que les jobs terminés avec succès. Pour en savoir plus sur les scénarios qui n'émettent pas de journaux d'audit, consultez Accès aux données dans la présentation des journaux d'audit BigQuery.
Dans le tableau suivant, un astérisque (*) dans un nom de vue INFORMATION_SCHEMA indique des variantes de vue spécifiques à un champ d'application, telles que _BY_PROJECT, _BY_USER, _BY_FOLDER et _BY_ORGANIZATION.
| Fonctionnalité ou ressource | Surveillance opérationnelle | Cloud Audit Logs |
|---|---|---|
| Requêtes et jobs |
Vues de schéma d'informations :
Console :
Métriques : métriques Cloud Monitoring, telles que |
Service d'API : Ressources auditées : jobs dans Journaux d'audit : journaux d'accès aux données utilisant |
| Tables et vues |
Vues de schéma d'informations :
Métriques : métriques Monitoring, telles que |
Services d'API : Ressources auditées : tables, vues et vues matérialisées dans Journaux d'audit : journaux d'accès aux données utilisant |
| Ensembles de données |
Vues de schéma d'informations :
|
Service d'API : Ressources auditées : ensembles de données, stratégies IAM d'ensembles de données et LCA d'ensembles de données dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données utilisant |
| Emplacements et réservations |
Vues de schéma d'informations :
Console :
Métriques : métriques Monitoring, telles que |
Service d'API : Ressources auditées : réservations, engagements de capacité et attributions de réservations dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données pour la création, la modification, la suppression et l'affichage des réservations, des engagements de capacité et des attributions de projets ou de dossiers. Consultez Journaux d'audit de l'API BigQuery Reservation. |
| Sécurité au niveau des colonnes et masquage des données |
Vues de schéma d'informations :
|
Services d'API : Ressources auditées : taxonomies et tags avec stratégie dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données pour la gestion des taxonomies et des tags avec stratégie, et les modifications de stratégie IAM (Auditer les tags avec stratégie) ; gestion des stratégies de données et mises à jour des bénéficiaires (Journalisation d'audit des stratégies de données BigQuery) ; et journaux |
| Routines, y compris les fonctions définies par l'utilisateur et les procédures stockées |
Vues de schéma d'informations :
|
Service d'API : Ressources auditées : fonctions définies par l'utilisateur (UDF), fonctions de table et procédures stockées dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données à l'aide de |
| Connexions externes |
Vues de schéma d'informations :
|
Service d'API : Ressources auditées : connexions et stratégies IAM de connexion dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données pour la création de connexions, les mises à jour d'identifiants, la suppression, la liste et les modifications de stratégies IAM. Consultez Journaux d'audit de l'API BigQuery Connection. |
| BigQuery Sharing |
Vues de schéma d'informations :
Tableau de bord : tableau de bord des métriques d'utilisation du partage. |
Service d'API : Ressources auditées : échanges de données, fiches, abonnements et stratégies IAM d'échange ou de fiche dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données pour l'échange de données et la création, la mise à jour et la suppression de fiches, les modifications de règles IAM et les opérations des abonnés. Consultez Journalisation d'audit du partage. |
| Service de transfert de données BigQuery |
Métriques et journaux :
|
Service d'API : Ressources auditées : configurations de transfert, exécutions de transfert et sources de données dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données pour la création, la mise à jour, la suppression, la liste et le démarrage des configurations et des exécutions de transfert. Consultez Journaux d'audit du service de transfert de données BigQuery. |
| Catalogues et tables BigLake |
Vues de schéma d'informations : |
Services d'API : Ressources auditées : catalogues, bases de données, tables et partitions de métastore dans Journaux d'audit : journaux d'activité d'administration et d'accès aux données pour les opérations de stratégie IAM de catalogue, de base de données, d'espace de noms, de table, de partition et de catalogue. Consultez Journaux d'audit BigLake. |
| Service de migration BigQuery |
État et rapports :
|
Service d'API : Ressources auditées : workflows de migration, sous-tâches de migration et requêtes de traduction SQL dans Journaux d'audit : journaux d'accès aux données pour la création, le démarrage, l'affichage, la consultation et la suppression des workflows et des sous-tâches de migration, ainsi que pour la traduction des requêtes SQL. Consultez Journaux d'audit du service de migration BigQuery. |
Étapes suivantes
- Pour découvrir comment utiliser Cloud Logging pour auditer les activités liées aux tags avec stratégie, consultez la section Tags avec stratégie d'audit.
- Pour découvrir comment utiliser BigQuery pour analyser les activités consignées, consultez la Présentation des journaux d'audit BigQuery.