Exporter les journaux d'audit Google Workspace : guide
Exporter les journaux d'audit Google Workspace pour une enquête : CSV de la console, API Reports (activities.list), rapports GAM, paramètres Gmail et limites.
En bref. Trois voies, mêmes données. La console d'administration (Reporting → Audit and investigation → export CSV ou Sheets, libellés de la console en anglais) est rapide pour un compte mais plafonnée à 100 000 lignes. L'API Reports (activities.list) donne tous les paramètres et les informations réseau, et passe à l'échelle. Les requêtes Gmail doivent tenir dans des fenêtres de 30 jours au plus. GAM encapsule l'API en commandes d'une ligne. Les filtres, transferts, délégués et adresses « envoyer en tant que » de Gmail ne sont pas des journaux d'audit : exportez-les à part avec l'API Gmail. Tous ces fichiers se déposent tels quels dans l'analyseur dans le navigateur.
Quelle que soit la voie, exportez tôt. Google conserve la plupart des événements six mois, et certaines sources arrivent avec des heures de retard. Il vous faut un super-administrateur, ou un administrateur disposant du privilège Audit & Investigation pour la console et du scope Reports pour l'API.
Quels journaux, sur quelle période
| Journal (nom dans la console) | applicationName de l'API Reports | Pourquoi il vous le faut |
|---|---|---|
| User log events (connexions) | login | Connexions à risque, changements 2SV et récupération |
| User accounts | user_accounts | Transfert externe activé, changements 2SV / récupération |
| OAuth log events | token | Autorisations d'applications tierces, activité API par application |
| Gmail log events | gmail | Distribution, transfert automatique, archivage/corbeille, envois |
| Drive log events | drive | Téléchargements, partages externes, changements de visibilité |
| Admin log events | admin | Rôles admin, SSO, délégation, routage |
| SAML log events | saml | Connexions via un fournisseur d'identité tiers |
| Takeout log events | takeout | Exports de compte complets |
| Groups log events | groups | Membres externes ajoutés |
Période : au moins 30 jours avant l'e-mail suspect ou la première alerte, jusqu'à aujourd'hui. Pour un seul utilisateur, filtrez sur lui. Pour les questions d'administration, exportez toute l'organisation.
Voie 1 : la console, « Audit and investigation » (CSV)
- Connectez-vous sur admin.google.com, ouvrez Reporting → Audit and investigation, puis le journal voulu (par exemple User log events).
- Réglez la plage de dates. Par défaut ce sont les 7 derniers jours, ce qui ne suffit presque jamais. Ajoutez éventuellement un filtre sur l'acteur.
- Dans Manage columns, ajoutez au journal des connexions les colonnes réseau (adresse IP et, si votre console la propose, la colonne d'ASN de l'IP). Ce sont elles qui révèlent un ASN d'hébergeur.
- Cliquez sur Export all, choisissez CSV ou Google Sheets, et téléchargez le résultat. Google documente l'export et ses limites sur la page de chaque journal, par exemple Admin log events : 100 000 lignes dans les éditions standard, 30 millions avec l'outil d'enquête de sécurité.
- Recommencez pour chaque journal. Gardez les noms de fichiers d'origine et les en-têtes de colonnes en anglais.
Attention : le jeu de colonnes dépend de ce que vous avez sélectionné, le format de date dépend de la langue de la console et du navigateur, et les événements portent des libellés d'affichage (« Successful login », « Download ») plutôt que des noms d'API. L'analyseur retraduit les libellés anglais en noms d'API. Les exports d'une console dans une autre langue ne sont pas encore pris en charge : passez la console en anglais avant d'exporter.
Voie 2 : l'API Reports (activities.list)
L'API Reports du SDK Admin renvoie une activité JSON par enregistrement : heure, acteur, IP, networkInfo (ASN, code de région) et l'événement avec tous ses paramètres. Voir la référence de activities.list.
GET https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/login
?startTime=2026-08-15T00:00:00Z&maxResults=1000
Authorization: Bearer <token with admin.reports.audit.readonly>
Ce qui compte en enquête :
- Pagination. Suivez
nextPageTokenjusqu'à ce qu'il disparaisse. Enregistrez chaque page dans son propre fichier.json. Les pages concaténées et le JSON Lines fonctionnent aussi dans l'analyseur. - Fenêtre Gmail. D'après la référence, les requêtes
gmailexigentstartTimeetendTime, espacés de 30 jours au plus. Bouclez mois par mois. - Un utilisateur ou tous.
userKey=allpour l'organisation, ou une adresse e-mail pour un compte. - Gardez le brut. N'aplatissez pas et ne « nettoyez » pas le JSON. Les paramètres imbriqués (
message_infode Gmail,scope_dataOAuth) portent les détails.
C'est l'entrée la plus complète : les informations réseau sont présentes sur chaque enregistrement, donc les contrôles fondés sur le pays, comme le voyage impossible, peuvent tourner.
Voie 3 : GAM
GAM est l'outil en ligne de commande open source que la plupart des administrateurs Workspace ont déjà. Sa commande report encapsule activities.list et produit du CSV :
gam report login user all range -30d today > login.csv
gam report token user all range -30d today > token.csv
gam report useraccounts user all range -30d today > user_accounts.csv
gam report gmail user claire@example.com range -30d today > gmail.csv
gam report drive user all range -30d today > drive.csv
gam report admin range -30d today > admin.csv
Nommez les fichiers d'après le journal (l'analyseur utilise aussi le nom de fichier comme indice). Les CSV de GAM gardent les noms de colonnes de l'API (id.time, actor.email, name), avec les paramètres en colonnes supplémentaires. L'analyseur les lit directement.
Paramètres Gmail : ce que le journal d'audit n'a pas
Filtres, adresses de transfert, réglage de transfert automatique, délégués et alias « envoyer en tant que » vivent dans les paramètres de la boîte. Le journal des comptes utilisateur enregistre bien email_forwarding_out_of_domain quand le transfert est activé. En revanche, un filtre qui transfère ou masque du courrier n'apparaît comme événement de paramétrage nulle part dans les journaux d'audit. Utilisez l'API Gmail :
| Paramètre | Méthode de l'API Gmail | Enregistrer sous |
|---|---|---|
| Filtres | users.settings.filters.list | gmail-settings/<boîte>/filters.json |
| Adresses de transfert | users.settings.forwardingAddresses.list | …/forwardingAddresses.json |
| Transfert automatique | users.settings.getAutoForwarding | …/autoForwarding.json |
| Délégués | users.settings.delegates.list | …/delegates.json |
| Envoyer en tant que | users.settings.sendAs.list | …/sendAs.json |
Lire les paramètres d'un autre utilisateur suppose d'agir en son nom : en pratique, un compte de service avec délégation au niveau du domaine, ce que fait GAM. Le nom du dossier indique à l'analyseur à qui appartient la boîte. GAM peut afficher les mêmes informations pour une relecture (gam user <email> show filters, show forwards, show sendas, print delegates). L'analyseur attend les réponses JSON de l'API Gmail. Pas d'accès API ? Asseyez-vous avec l'utilisateur, ouvrez Paramètres → Filtres et adresses bloquées, Transfert et POP/IMAP et Comptes, et faites des captures d'écran datées.
Préserver la preuve
- Gardez les originaux intacts et calculez une empreinte (
shasum -a 256 *) juste après l'export. - Notez qui a exporté quoi, quand, avec quels filtres et depuis quel outil.
- Stockez les exports hors du tenant compromis. Un attaquant avec des droits admin peut lire Drive.
- Exportez à nouveau le lendemain. Selon le tableau des délais de Google, les événements OAuth peuvent arriver avec « quelques heures » de retard, et la fin d'un Takeout « jusqu'à plusieurs jours » après.
Pour un panorama plus large des méthodes d'extraction, y compris le transfert vers Cloud Logging, le SANS a publié une utile synthèse, Google Workspace Log Extraction.
Et ensuite
- Analyser les exports : analyse pas à pas avec l'outil dans le navigateur.
- Comprendre ce qui manque : limites des journaux d'audit.
- Version courte, sur la page de l'outil : comment exporter ces journaux.
FAQ
Peut-on exporter les journaux d'audit Google Workspace en CSV ?
Oui. Dans la console d'administration, ouvrez Reporting → Audit and investigation, choisissez un journal, lancez la recherche puis Export all vers Google Sheets ou CSV. Google plafonne les exports à 100 000 lignes (30 millions avec l'outil d'enquête de sécurité).
Quelle est la meilleure façon d'exporter beaucoup de données d'audit Workspace ?
L'API Reports du SDK Admin (activities.list), directement ou via GAM. Elle renvoie tous les paramètres et les informations réseau (ASN, région), pagine les gros volumes et se scripte facilement. Les requêtes Gmail exigent une date de début et de fin espacées de 30 jours au plus.