Piste d'audit : rapport de preuves de conformité
Générez des preuves prêtes pour l'audit à partir de la Piste d'audit Datadog pour les exigences de contrôle SOC 2 et PCI DSS.
Prérequis
pup auth login # OAuth2 (recommandé)
# ou définir DD_API_KEY + DD_APP_KEY avec le scope audit_logs_read
À lire en premier
Consultez references/control-mapping.md pour la table complète de mappage contrôle → requête et les exigences de rétention par framework.
Vérification de la rétention (à exécuter d'abord)
PCI exige 12 mois. La rétention par défaut de Datadog est de 90 jours. Vérifiez si l'archivage est configuré :
pup audit-logs search --query "@evt.name:\"Audit Trail\" @action:modified" --from 90d -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource: .attributes.attributes.asset.type
}]'
Si la fenêtre de temps demandée dépasse 90 jours et qu'aucun archivage n'est confirmé, signalez cette lacune dans l'en-tête du rapport.
Flux de travail
- Confirmez : framework (SOC 2 / PCI DSS), fenêtre de temps, portée org
- Exécutez la vérification de rétention
- Exécutez chaque requête de contrôle pertinente
- Formatez la sortie en utilisant le modèle de rapport de preuves
Requêtes SOC 2
CC6.2 — Provisionnement / déprovisionnement des utilisateurs
pup audit-logs search \
--query "@evt.name:\"Access Management\" @asset.type:user @action:(created OR deleted OR modified)" \
--from PERIOD_START --to PERIOD_END --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
actor: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
affected_user: .attributes.attributes.asset.id
}]'
CC6.3 — Changements de rôles et de permissions
pup audit-logs search \
--query "@evt.name:\"Access Management\" @asset.type:role" \
--from PERIOD_START --to PERIOD_END --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
actor: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
role_id: .attributes.attributes.asset.id
}]'
CC6.6 — Connexions échouées et accès suspects
pup audit-logs search \
--query "@evt.name:Authentication @action:login @status:error" \
--from PERIOD_START --to PERIOD_END --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
ip: .attributes.attributes.network.client.ip,
country: .attributes.attributes.network.client.geoip.country.name
}]'
CC7.2 — Actions des utilisateurs de support / privilégiés
pup audit-logs search \
--query "@evt.actor.type:SUPPORT_USER" \
--from PERIOD_START --to PERIOD_END --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
support_actor: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id
}]'
Requêtes PCI DSS
PCI 10.2.2 — Actions par les utilisateurs privilégiés
Identique à CC7.2 ci-dessus. Incluez également les actions d'administrateur au niveau de l'organisation :
pup audit-logs search \
--query "@evt.name:\"Organization Management\"" \
--from PERIOD_START --to PERIOD_END --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
actor: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type
}]'
PCI 10.2.3 — Accès à la piste d'audit elle-même
pup audit-logs search \
--query "@evt.name:\"Audit Trail\"" \
--from PERIOD_START --to PERIOD_END --limit 200 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
actor: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type
}]'
PCI 10.2.4 — Tentatives d'accès non autorisé
Identique aux connexions échouées de CC6.6 ci-dessus.
PCI 10.2.5 — Tous les événements d'authentification
pup audit-logs search \
--query "@evt.name:Authentication @action:login" \
--from PERIOD_START --to PERIOD_END --limit 1000 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
auth_method: .attributes.attributes.auth_method,
result: .attributes.attributes.status,
ip: .attributes.attributes.network.client.ip,
country: .attributes.attributes.network.client.geoip.country.name
}]'
PCI 10.2.7 — Création et suppression d'objets
pup audit-logs search \
--query "@action:(created OR deleted)" \
--from PERIOD_START --to PERIOD_END --limit 1000 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id,
ip: .attributes.attributes.network.client.ip
}]'
Modèle de rapport de preuves
# Piste d'audit Datadog — Rapport de preuves de conformité
Framework : [SOC 2 / PCI DSS]
Organisation : [nom org]
Période : [début] à [fin]
Généré : [date]
## Limite de portée
Ce rapport couvre les actions administratives au sein de la plateforme Datadog.
Il ne couvre pas les actions effectuées au sein des systèmes que Datadog surveille.
## Statut de rétention
[✓ Période complète couverte par la rétention de la piste d'audit]
[⚠ La période demandée dépasse la rétention par défaut de 90 jours. La configuration d'archivage est requise pour une couverture complète.]
---
## [ID du contrôle] — [Nom du contrôle]
Événements trouvés : [N]
| Timestamp | Acteur | Action | Type de ressource | ID de ressource | IP | Pays |
|-----------|--------|--------|-------------------|-----------------|-----|------|
| ... | ... | ... | ... | ... | ... | ... |
[Répéter par contrôle]
---
## Lacunes
[Listez tous les contrôles pour lesquels les données n'étaient pas disponibles ou incomplètes, et pourquoi]
Remarque sur la portée
La Piste d'audit Datadog couvre la plateforme Datadog en tant que système audité. À des fins de PCI, ceci constitue une preuve que les contrôles d'accès de la plateforme de surveillance fonctionnent correctement — pas une preuve directe concernant l'environnement des données de cartes bancaires (CDE) lui-même. Les auditeurs doivent comprendre cette limite de portée.