Gains :
- Capacité à concevoir un système de piste d'audit minimum suffisant pour reconstituer l'événement
- Possibilité d'empêcher le journal d'être une source de fuite en masquant l'invite/réponse
- Possibilité d'établir des journaux vérifiables avec identité de corrélation, immuabilité et période de conservation
Dans un système d’IA, un jour la question sera sûrement posée : « Pourquoi cette décision a-t-elle été prise de cette façon, que s’est-il passé exactement ce jour-là ? Cette question peut être posée par un client, un auditeur, un régulateur ou un tribunal. Votre réponse sera soit une piste d'audit vérifiable, soit « nous ne savons pas ». Cette dernière est inacceptable dans un environnement d’entreprise. Dans cette unité, nous apprendrons ce qui doit et ne doit pas être enregistré spécifiquement pour l'IA, comment établir une piste d'audit et comment maintenir les journaux en équilibre avec la sécurité et la confidentialité.
Pourquoi la journalisation est-elle différente dans l’IA ?
Dans les logiciels classiques, « qui a fait quoi » est enregistré. Dans l’IA, trois nouvelles dimensions s’ajoutent à cela : quel modèle/version a été utilisé, quelle invite a été envoyée et quelle réponse a été produite. Lorsqu’une erreur ou une plainte survient, vous ne pouvez pas reconstituer l’incident sans ces trois éléments. Mais cette invite/réponse peut contenir des informations personnelles, comme nous l'avons vu dans l'unité 2, ce qui signifie que le journal lui-même peut devenir une source de fuites. C'est l'art de l'équilibre.
Attention : La journalisation ne consiste pas à "tout enregistrer". Trop de journalisation crée un risque pour la vie privée, et trop peu de journalisation crée un manque de preuves. Le but est de conserver suffisamment de PII pour reconstruire l’événement en le masquant.
Que faut-il enregistrer ? Schéma de piste d'audit
Une solide piste d’audit de l’IA comprend, au minimum :
- Qui : ID utilisateur et rôle (ou ID de service).
- Quand : horodatage (à ajouter uniquement si possible).
- Quoi : Action souhaitée et outils invoqués.
- Quel modèle : Nom et version du modèle (par exemple claude-opus-4-8), paramètres critiques tels que la température.
- Résumé d'entrée/sortie : une version masquée ou un résumé/hachage de la demande et de la réponse.
- Décision : a-t-elle été traitée automatiquement, transmise à un humain, a-t-elle été approuvée ou rejetée ?
- Résultat : L'opération est-elle réussie ou erreur, quelle ressource est affectée ?
Étape par étape : établir une piste d'audit
- Fixez-vous un objectif. Qui lira ces journaux et pourquoi ? (Réponse aux incidents, audit de conformité, débogage.) L’objectif détermine ce que vous conservez.
- Appliquer la politique PII. Masquez l’invite/réponse avant de vous connecter (unité 2).
- Fournir l’immuabilité. Laissez les journaux critiques être uniquement ajoutés ; Personne ne devrait pouvoir effacer le passé en silence.
- Définir la période de conservation. Déterminer la durée en fonction de l'équilibre entre les exigences légales et la confidentialité ; Supprimer automatiquement à l'expiration du délai.
- Limiter l’accès. L'accès aux journaux doit également être protégé avec RBAC ; La lecture du journal doit également être enregistrée.
- Ajoutez un ID de corrélation (ID de trace). Connectez toutes les étapes d’une requête (saisie, appel d’outil, vérification, sortie) avec une seule identité.
Quatre modèles copiables
Schéma du journal d'audit (JSON) :
{ "trace_id": "...", "time": "AAAA-MM-JJThh:mm:ssZ", "user": "...", "role": "...", "model": "claude-opus-4-8", "parameters": { "temperature": 0 }, "request_summary": "<masked>", "response_summary": "<masked>", "tools": ["tool_a", "tool_b"], "decision": "auto|human_approval", "approval": "approuvé|rejeté|aucun", "result": "succès|erreur", "affected_resource": "..."}
Invite de contrôle du journal PII :
Consultez les exemples de journaux ci-dessous. Les champs obligatoires pour la piste d’audit (qui, quand, modèle, décision, résultat) sont-ils complets ? Des informations personnelles brutes ont-elles également été divulguées ? Pour chaque ligne, signalez comme : "pas assez / espace manquant : ... /Fuite de PII : ..." <logs>{{ examples }}</logs>
Invite de reconstruction d'événement :
Les enregistrements d'audit suivants appartiennent à un seul trace_id. Transformez l'événement en récit dans l'ordre chronologique : que voulait l'utilisateur, qu'a fait le modèle, quelles validations ont été effectuées, comment la décision a-t-elle été prise, quel a été le résultat ? Signaler les étapes manquantes ou incohérentes.<records>{{ trace_registers }}</records>
Règle de décision en matière de politique de rétention :
Pour chaque type de journal, déterminez :- Existe-t-il une obligation légale de conservation ? (durée minimale le cas échéant) - Contient-il des informations personnelles ? (si inclus, raccourcissez la durée, restreignez l'accès) - Preuve d'un incident de sécurité ? (le magasin ne peut pas être modifié) Résultat : "stocker N jours + ajouter uniquement mi + niveau d'accès".
Invite faible/Invite forte
mauvaise approche
Approche forte
Ne pas enregistrer du tout ("pas besoin")
Enregistrement de l'ensemble minimum pour reconstruire l'événement
Enregistrer l'invite/réponse brute telle quelle
Résumé masqué + journalisation des ID de trace
Stockez les journaux de manière illimitée
Période de conservation avec équilibre entre légal et confidentialité
Tout le monde peut supprimer les journaux
Les journaux critiques sont en ajout uniquement, avec accès contrôlé
Trois mini-étuis
Cas 1 — Trace ID a réduit la journée d'enquête à 15 minutes. "Ma demande a été injustement rejetée", a déclaré un client à l'assistant de pré-évaluation du crédit d'une banque. Grâce à l'ID de corrélation, l'équipe a reconstruit les entrées de cette application, les vérifications des employés et la décision en 15 minutes ; a montré que l'erreur était causée par un seuil incorrect dans une validation de règle et l'a corrigée.
Cas 2 — Une journalisation excessive a été découverte lors de l'audit. Une société de commerce électronique écrivait toutes les invites/réponses dans les journaux bruts pour le débogage. Lors de l'audit annuel, il a été constaté que ces journaux contenaient les adresses et numéros de téléphone des clients et étaient conservés pendant 2 ans. Le résultat a été clôturé en passant à une politique de masquage + rétention de 90 jours ; La fonction de piste d'audit a été conservée.
Cas 3 — Le journal en annexe uniquement a révélé un abus interne. Un employé d'un fournisseur a tenté de supprimer les journaux pour masquer un lot erroné qu'il avait créé. Étant donné que les journaux sont uniquement ajoutés et que les tentatives de lecture/suppression des journaux sont enregistrées, la tentative était immédiatement visible ; L’incident a donné lieu à des mesures disciplinaires et à des corrections de processus.
Astuce : Attribuez un ID de corrélation (ID de trace) à chaque requête et exécutez-le à travers toutes les étapes. Lorsqu'un problème survient, le fait de pouvoir collecter « tout ce qui concerne cette demande » avec une seule requête constitue le plus grand accélérateur de réponse aux incidents.
Erreurs courantes
- Ne pas enregistrer du tout, ou enregistrer si peu que vous ne pouvez pas reconstruire l'événement.
- Enregistrer la demande/réponse brute sans masque et transformer le journal en une source de fuite.
- Ne pas enregistrer le nom/la version du modèle et la décision (automatique/humaine).
- Le stockage des journaux pour une période illimitée augmente les risques liés à la confidentialité.
- Laisser les journaux critiques sujets à changement ; Ne pas enregistrer l'accès aux journaux.
- Ne pas pouvoir connecter les étapes entre elles car il n'utilise pas d'ID de corrélation (ID de trace).
En résumé
- La journalisation IA ajoute trois dimensions à « qui a fait quoi » : quel modèle/version, quelle invite, quelle réponse.
- L'objectif est de garder les informations personnelles suffisamment minimes pour reconstruire l'événement en le masquant, ni plus, ni moins.
- La piste d’audit doit inclure les champs qui/quand/quoi/quel modèle/décision/résultat.
- Les journaux critiques doivent être uniquement ajoutés, l'accès doit être limité et l'accès aux journaux doit également être enregistré.
- L'ID de corrélation (ID de trace) relie toutes les étapes d'une demande et accélère l'enquête sur les incidents.
Tâche de candidature
Sélectionnez une demande dans votre propre flux d'IA et rédigez la piste d'audit idéale avec le schéma JSON ci-dessus. Faites ensuite deux tests : (1) Pouvez-vous raconter l'histoire du début à la fin avec cet enregistrement uniquement ? (2) Y a-t-il des informations personnelles brutes dans l'enregistrement ? S'il manque un champ, ajoutez-le, s'il y a des informations personnelles, masquez-le. Enfin, définissez une période de conservation et un niveau d’accès.
liste de contrôle
- [ ] La piste d'audit comprend les champs qui/quand/quoi/modèle/décision/résultat.
- [ ] L'invite/réponse est masquée avant les journaux (pas de PII).
- [ ] Un ID de corrélation (ID de trace) est attribué à chaque requête.
- [ ] Les journaux critiques sont en ajout uniquement et leur accès est contrôlé.
- [ ] La durée de conservation est définie par la balance juridique + confidentialité, et est supprimée à la fin de la période.
- [ ] Avec les logs, je peux reconstituer un événement en moins de 30 minutes.