dd-audit

Par datadog-labs · agent-skills

Investigations de piste d'audit — qui a modifié quoi, compromission de clé, analyse des causes d'une hausse de coûts, preuves de conformité (SOC 2/PCI) et audit des activités de l'IA.

npx skills add https://github.com/datadog-labs/agent-skills --skill dd-audit

Piste d'audit Datadog

Enquêtez sur l'activité des utilisateurs, les modifications de configuration, les patterns d'accès et les preuves de conformité en utilisant pup audit-logs.

Sous-compétences

Sous-compétence À utiliser quand
security-investigation « Qui a modifié X ? », « Que fait cet utilisateur ? », « Montrez-moi les suppressions des dernières 24h »
key-compromise « Cette clé API a-t-elle été compromise ? », « Que fait la clé XYZ ? », « Enquêter sur une activité suspecte de clé »
cost-spike-investigation « Pourquoi ma facture a-t-elle augmenté ? », « Qu'a causé ce pic d'utilisation ? », « Enquêter sur l'augmentation des coûts LLM »
compliance-report « Générer une preuve SOC 2 », « Journal d'audit PCI », « Rapport de provisionnement utilisateur pour l'auditeur »
ai-activity-audit « Que fait l'assistant IA ? », « Auditer les appels d'outils MCP », « Rapport de gouvernance IA »

Prérequis

pup auth login   # OAuth2 (recommandé)
# ou définir DD_API_KEY + DD_APP_KEY avec scope audit_logs_read

Commandes

# Lister les événements récents
pup audit-logs list --from 1h --limit 100

# Rechercher avec une requête
pup audit-logs search --query "@action:deleted" --from 24h

# Sortie JSON pour pipage vers jq
pup audit-logs search --query "@usr.email:alice@example.com" --from 7d -o json | jq '.data[].attributes'

Référence rapide du schéma d'événement

Champ Description Valeurs d'exemple
@usr.email E-mail de l'acteur alice@example.com
@evt.actor.type Mode d'exécution de l'action USER, API_KEY, SUPPORT_USER
@action Verbe created, modified, deleted, accessed, login
@evt.name Catégorie d'événement Dashboard, Monitor, Authentication, Access Management
@asset.type Type de ressource dashboard, monitor, api_key, role, user
@asset.id Identifiant de ressource abc-123
@metadata.api_key.id Clé API utilisée (si applicable) key_abc123
@metadata.app_key.id Clé d'application utilisée (si applicable) app_abc123
@network.client.ip Adresse IP du client 1.2.3.4
@network.client.geoip.country.name Pays United States
@network.client.geoip.as.name Nom ASN Amazon.com
@http.url_details.path Chemin du endpoint API /api/v1/dashboard/xyz

Syntaxe de recherche

Même syntaxe de style Lucene que dans Log Explorer :

Requête Signification
@evt.name:Dashboard Correspondance de champ exact
@action:deleted Filtre d'action
@usr.email:alice@example.com Utilisateur spécifique
@evt.name:Monitor AND @action:modified Requête composée
-@action:deleted Négation
@usr.email:* Le champ existe
@network.client.ip:1.2.3.4 Filtre IP

Rétention

La rétention par défaut est de 90 jours. Pour les requêtes au-delà de 90 jours, l'archivage vers S3/GCS/Azure Blob doit être configuré. Toujours vérifier si la fenêtre de temps demandée se situe dans la période de rétention avant d'exécuter une requête.

Dépannage

Problème Cause Solution
403 Forbidden Scope audit_logs_read manquant Ajouter le scope à la clé d'application dans l'interface Datadog
Résultats vides Fenêtre de temps hors rétention Vérifier la configuration d'archivage ; maximum par défaut : 90 jours
Timeout Requête trop large Réduire la fenêtre de temps ou ajouter plus de filtres
Aucune donnée IP Action interne ou événement antérieur à l'enrichissement Tous les événements n'ont pas de données géographiques

Références

Skills similaires