Retour au blog
Conformité·25 mai 2026·7 min de lecture

Conformité RGPD pour LLM en France — pseudonymisation, DPA et souveraineté

Check-list complète pour déployer Claude / Gemini / GPT en conformité RGPD : code de pseudonymisation des PII, avec qui signer un DPA Article 28, Zero Data Retention directement auprès d'Anthropic et Google, la question Mistral et la souveraineté AI, hébergement des logs et information des personnes.

Déployer un LLM (Claude, Gemini, GPT) en conformité RGPD pour une entreprise française — la check-list complète : pseudonymisation des données, accord de traitement (DPA), Zero Data Retention, hébergement des logs, et la question Mistral / souveraineté.

Le minimum réglementaire

  1. Pseudonymisation des PII avant tout appel LLM externe
  2. DPA Article 28 RGPD signé avec chaque sous-traitant qui traite les données. Kunavo n'en propose pas : si ton traitement l'exige, contracte directement avec le fournisseur du modèle
  3. Registre des traitements à jour, y compris la finalité de chaque appel LLM
  4. Information des personnes : ta politique de confidentialité doit mentionner l'usage de l'AI

1) Pseudonymisation — code prêt à l'emploi

Avant que le prompt quitte ton backend, on remplace les identifiants directs par des tokens. La table de correspondance reste locale :

pseudonymiser.py
# Pseudonymiser les données personnelles avant l'appel LLM
import re
from openai import OpenAI

PATTERNS = [
    (re.compile(r"[\w.+-]+@[\w-]+\.[\w.-]+"), "<EMAIL>"),
    (re.compile(r"\b(?:\+33|0)\s*[1-9](?:\s*\d{2}){4}\b"), "<PHONE_FR>"),
    # Numéro de sécurité sociale français (15 chiffres)
    (re.compile(r"\b[12]\d{2}(?:0[1-9]|1[012])(?:\d{2})(?:\d{3})(?:\d{3})(?:\d{2})\b"), "<NIR>"),
    # IBAN FR
    (re.compile(r"\bFR\d{2}\s?(?:\d{4}\s?){5}\d{3}\b"), "<IBAN_FR>"),
]

def pseudonymiser(texte: str) -> tuple[str, dict]:
    masque = texte
    mapping = {}
    for i, (pat, tag) in enumerate(PATTERNS):
        for m in pat.finditer(texte):
            cle = f"{tag}_{i}_{m.start()}"
            mapping[cle] = m.group(0)
            masque = masque.replace(m.group(0), f"[{cle}]")
    return masque, mapping

Le LLM voit "[EMAIL_0_42] a commandé [IBAN_FR_3_158]" au lieu des vrais identifiants. Si la réponse doit ré-injecter les valeurs (par exemple pour un email de confirmation), on fait la substitution inverse après coup, jamais dans l'API call.

2) DPA — qui doit signer quoi

  • Toi ↔ Kunavo : Kunavo ne propose pas de DPA Article 28 RGPD. Tes requêtes sont traitées aux États-Unis et transmises à des fournisseurs en amont, dont les propres politiques de confidentialité et de conservation des données s'appliquent au contenu
  • Toi ↔ fournisseur du modèle : si ton traitement exige un DPA, signe-le directement avec Anthropic, OpenAI ou Google, dans le cadre de leurs conditions entreprise
  • Clauses contractuelles types (CCT) : pour les transferts vers les USA (Anthropic, OpenAI), vérifie que les CCT validées par la Commission européenne figurent dans le DPA que tu signes avec le fournisseur

3) Zero Data Retention (ZDR) : en direct avec le fournisseur

Par défaut, Anthropic et Google conservent les logs des prompts pendant 30 jours (Anthropic) / 60 jours (Google) pour surveillance des abus. Pour les workloads RGPD-sensibles :

  • Kunavo : pas de ZDR. Les requêtes passent par notre gateway aux États-Unis puis par des fournisseurs en amont, dont les propres politiques de conservation s'appliquent
  • Anthropic ZDR : proposé par Anthropic à ses clients entreprise, sous contrat direct avec Anthropic
  • Google Vertex AI EU : en contrat direct avec Google Cloud, routing vers europe-west1 (Belgique) ou europe-west4 (Pays-Bas) possible — données ne quittent pas l'UE. Kunavo n'offre aucune région UE
  • OpenAI : ZDR sur tier Enterprise, en contrat direct avec OpenAI

La question Mistral et la souveraineté

Beaucoup d'équipes françaises veulent réduire la dépendance aux acteurs américains. Trois angles à considérer :

  • Mistral via Kunavo : non. Aucun modèle Mistral ni aucun autre fournisseur européen n'est au catalogue, et il n'existe pas de routing restreint aux fournisseurs européens
  • Mistral en direct : pour les cas vraiment sensibles (secteur public, santé), Mistral propose un déploiement on-prem. Kunavo ne remplace pas ce besoin
  • Combiner les deux : Mistral en direct pour les cas sensibles, Claude via Kunavo pour le reasoning fort. Ce sont deux fournisseurs et deux clés, et c'est ton code qui choisit où part chaque appel

Hébergement des logs et data residency

  • Routing Kunavo : dans le gateway, dans une seule région (US-East, Ashburn). Seul l'edge anycast placé devant termine le TLS près de toi
  • Persistance de compte et facturation : une seule base de données primaire en US-East, avec des snapshots quotidiens chiffrés du volume. Ni routing EU-only ni stockage en région UE, y compris sur demande
  • Tes logs applicatifs : à toi de les héberger en UE (OVH, Scaleway, Hetzner). Ne sois pas le maillon faible

Information des personnes — ce qu'il faut dire

Si tu fais traiter des données personnelles par un LLM, la politique de confidentialité doit le mentionner. Template minimal :

Nous utilisons des modèles d'intelligence artificielle (Anthropic Claude, Google Gemini, OpenAI GPT) en sous-traitance via Kunavo (https://kunavo.com), pour les finalités suivantes : [classification, résumé, génération de réponse, etc.]. Les données personnelles sont pseudonymisées avant transmission. Kunavo n'utilise pas ces données pour entraîner des modèles ; chaque fournisseur de modèle les traite selon ses propres politiques de confidentialité et de conservation. Vous disposez d'un droit d'accès, de rectification, d'opposition et d'effacement selon les articles 15 à 21 du RGPD.

Que vérifier avant la mise en production

  • DPA signé avec chaque sous-traitant (en direct avec le fournisseur du modèle : Kunavo n'en propose pas)
  • Registre des traitements à jour
  • Pseudonymisation testée sur un échantillon réel (taux de fuite < 0,1 %)
  • Logs en région UE
  • Procédure pour répondre aux demandes Article 17 (droit à l'effacement)
  • Politique de confidentialité mise à jour et accessible
  • DPO consulté si traitement à grande échelle ou sensible

Prêt à commencer ? Inscription gratuite, puis recharge à partir de 10 $.