Routage d'API IA prenant en compte la rétention des données : appliquer les politiques ZDR, de résidence et de journalisation au niveau de la passerelle
Une architecture de passerelle pratique pour acheminer le trafic des API d'IA selon une politique de conservation des données : classifiez la sensibilité des requêtes, cartographiez le comportement de rétention des fournisseurs, bloquez les fonctionnalités incompatibles, préservez des analyses sécurisées et auditez chaque décision.
Les équipes de sécurité n'ont pas seulement besoin de savoir quel modèle est le moins cher, le plus rapide ou le plus performant. Ils doivent savoir si une demande spécifique peut légalement et opérationnellement être envoyée à un fournisseur, un point de terminaison, une région, une fonctionnalité et un mode de journalisation spécifiques.
C'est plus difficile qu'il n'y paraît. Un modèle peut être acceptable pour une conversation interne ordinaire, mais pas pour les informations personnelles d'un client. Un fournisseur peut offrir une rétention de données nulle pour un chemin d'API, tandis qu'une fonctionnalité de recherche stocke les invites et les sorties pendant une période fixe. Une région peut prendre en charge la résidence de stockage, mais pas le mode de traitement attendu. Les journaux appartenant aux développeurs peuvent être configurables, tandis que les journaux de surveillance des abus des fournisseurs suivent une politique différente.
La réponse pratique consiste à déplacer les décisions de rétention des applications individuelles vers la passerelle API AI. La passerelle doit classer la demande, l'évaluer par rapport à une matrice de capacités du fournisseur, bloquer les fonctionnalités incompatibles, l'acheminer uniquement vers des profils de modèle approuvés et enregistrer une décision politique sans stocker les invites brutes par défaut.
Le problème du lecteur : les conditions de confidentialité du fournisseur ne sont pas des contrôles d'exécution
La plupart des équipes commencent par une feuille de calcul ou un examen de sécurité indiquant quels fournisseurs d'IA sont approuvés. C'est utile, mais ce n'est pas suffisant pour le routage de la production.
Les applications font des choix d'exécution :
- Quel ID de modèle doit traiter cette demande ?
- La requête doit-elle utiliser la mise en cache de la recherche, le téléchargement de fichiers, l'exécution de code, le traitement par lots, la mise en cache des invites ou les conversations stockées ?
- Quelle région ou quel point de terminaison doit traiter la demande ?
- Le système peut-il enregistrer l'invite brute pour le débogage ?
- Le routage de secours peut-il envoyer la même requête à un autre fournisseur ?
Chacun de ces choix peut modifier le profil de rétention. Une demande qui était conforme en mode chat simple peut devenir non conforme lorsque le développeur active la mise à la terre ou le stockage persistant des conversations. Une règle de secours conçue pour la fiabilité peut accidentellement acheminer des données réglementées vers un chemin de fournisseur qui n'a pas été approuvé pour la conservation zéro des données, la résidence des données ou les contrôles de surveillance des abus.
Recommandation : traitez le comportement de rétention comme une contrainte de routage de premier ordre, et non comme une documentation jointe à un compte fournisseur.
Faits à coder avant de concevoir une politique
Les conditions exactes varient selon le fournisseur, le produit, le contrat, la région, le point de terminaison et la fonctionnalité. Ne comptez pas sur la mémoire ou sur un examen ponctuel. Créez une matrice appartenant à la source et mettez-la à jour lorsque les termes changent.
Plusieurs documents actuels des fournisseurs publics illustrent pourquoi cela est nécessaire :
- OpenAI : la résidence des données de l'API est documentée comme étant configurée par le projet, les demandes régionales nécessitant des préfixes de domaine spécifiques à la région. OpenAI distingue également la prise en charge du stockage de la prise en charge du traitement par région et note des exigences supplémentaires pour les régions non américaines. OpenAI déclare que la résidence des données API non américaines nécessite l'approbation des contrôles de surveillance des abus et un amendement de conservation modifiée.
- Anthropic : Anthropic documente l'absence de conservation des données pour les cas d'utilisation commerciale liés aux API, tout en notant que certains produits associés ou flux de conformité ont des modèles de conservation distincts, notamment une conservation plus longue pour le flux d'activité et les transcriptions de sessions à distance.
- Google Gemini : les termes de l'API Gemini distinguent les services non payants et payants. Pour les services non payants, Google peut utiliser le contenu soumis et les réponses générées pour améliorer les produits ; pour les services payants, Google indique que les invites et les réponses ne sont pas utilisées pour améliorer les produits. La documentation ZDR de l'API Gemini Developer indique que les journaux de surveillance des abus des services payants conservent normalement les invites et les réponses pendant une période limitée, tandis que les projets ZDR approuvés effacent le contenu utilisateur et les métadonnées identifiables avant la journalisation.
- Stockage spécifique aux fonctionnalités : la documentation Gemini indique que Grounding with Google Search et Grounding with Google Maps stockent les invites, les informations contextuelles et les résultats générés pendant 30 jours, sans aucun moyen de désactiver ce stockage lorsque ces fonctionnalités sont utilisées.
- Journaux appartenant aux développeurs : la documentation de journalisation de l'API Gemini indique que les journaux d'API appartenant aux développeurs peuvent être conservés jusqu'à 55 jours par défaut pour les projets activés pour la facturation et que les développeurs peuvent choisir des fenêtres plus courtes, telles que 7, 14 ou 28 jours.
- Gestion des risques : le profil d'IA générative du NIST recommande de surveiller le contenu généré par l'IA pour détecter les risques liés à la confidentialité et de connecter les politiques d'IA générative aux données, logiciels, processus juridiques, de conformité et de gestion des risques existants.
Il s'agit de faits à vérifier par rapport à la documentation actuelle du fournisseur avant le déploiement. La leçon d'architecture est stable : la rétention n'est pas une valeur booléenne au niveau du fournisseur.
Architecture : un moteur de politique de passerelle dans le chemin de la requête
Une passerelle prenant en compte la rétention comporte cinq composants principaux :
- Classificateur de sensibilité des requêtes : étiquette la charge de travail avant le routage.
- Matrice des capacités du fournisseur : décrit le comportement du fournisseur, du modèle, du point de terminaison, de la région, de la rétention, de la journalisation et des fonctionnalités.
- Règles de stratégie en tant que code : convertissez les exigences de sécurité en décisions d'exécution d'autorisation, de refus ou de révision.
- Couche de portes de fonctionnalités : bloque les fonctionnalités modifiant la rétention, sauf autorisation explicite.
- Couche d'audit et d'analyse : enregistre les métadonnées utiles sans stocker les invites brutes par défaut.
La passerelle n'a pas besoin de comprendre toutes les nuances juridiques. Il doit appliquer les décisions approuvées par vos équipes juridiques, de sécurité, de conformité et de plate-forme.
Étape 1 : classer la sensibilité des requêtes avant de sélectionner un modèle
Commencez par une petite taxonomie de classification. Il doit être suffisamment simple à utiliser pour les développeurs, mais suffisamment expressif pour orienter la politique.
Exemples d'étiquettes de confidentialité :
public: documentation publique, copie marketing, contenu de site Web public.interne: informations non publiques sur l'entreprise et peu sensibles.confidentiel: stratégie, contrats, contexte client, détails inédits du produit.customer_pii: noms, adresses e-mail, adresses, identifiants de compte, transcriptions d'assistance.réglementées: données protégées en matière de santé, financières, juridiques, éducatives ou spécifiques à une juridiction.source_code: code propriétaire, configuration, fichiers d'architecture.identifiants: secrets, jetons, mots de passe, clés privées. Dans la plupart des systèmes, cela devrait être bloqué et non acheminé.
La classification peut provenir de plusieurs sources :
- Un en-tête fourni par l'application, tel que
X-Data-Class : customer_pii. - Règle de locataire, selon laquelle tout le trafic provenant d'un client réglementé est traité comme réglementé à moins qu'il ne soit déclassé par une règle approuvée.
- Règle de point de terminaison, où le résumé du ticket d'assistance est par défaut
customer_pii. - Analyse légère du contenu à la recherche d'identifiants, d'informations personnelles évidentes ou de violations des règles.
Recommandation : ne dépendez pas entièrement de la détection automatique. Exigez que les applications déclarent la classe de données souhaitée, puis utilisez l'analyse pour détecter les incohérences évidentes ou forcer une classe plus sûre.
Étape 2 : créer une matrice de capacités du fournisseur
La matrice de capacités est la source de vérité évaluée par le routeur. Il doit être versionné, révisé et testé comme la configuration de production.
Exemples de champs :
{
"profile_id": "provider_x.chat.eu.zdr",
"fournisseur": "provider_x",
"model": "modèle-grand",
"api_family": "chat_complétions",
"endpoint": "https://eu.example-provider.com/v1",
"region": "ue",
"processing_residency": ["eu"],
"storage_residency": ["eu"],
"zdr_eligible" : vrai,
"zdr_contract_required": vrai,
"training_use": "not_used_for_training_on_paid_api",
"abuse_monitoring": "approved_modified_retention_required",
"developer_log_retention_days": 0,
"raw_prompt_logging_allowed" : faux,
"supported_features": {
"plain_chat": vrai,
"streaming" : vrai,
"tool_calls": vrai,
"search_grounding": faux,
"maps_grounding": faux,
"file_upload": faux,
"batch": faux,
"stored_conversations" : faux
},
"last_reviewed": "01/08/2026",
"source_refs": ["security-review-123", "vendor-doc-version-abc"]
Utilisez des profils de modèle plutôt que des ID de modèle bruts. Un profil combine modèle, fournisseur, point de terminaison, région, ensemble de fonctionnalités et posture de rétention. Les développeurs demandent model_profile : conforme_summarization, et pas seulement model : fast-large-model.
Recommandation : inclure les conditions contractuelles préalables dans la matrice. Un itinéraire n'est pas approuvé par le ZDR simplement parce qu'un fournisseur propose du ZDR quelque part. Il n'est approuvé que lorsque votre compte, votre projet, votre région et votre point de terminaison remplissent les conditions requises.
Étape 3 : écrire des règles de stratégie en tant que code
Les règles doivent être explicites, testables et lisibles par les équipes de sécurité et de plate-forme.
Exemples de règles en pseudocode :
refuser si data_class == "credentials"
raison "credentials_must_not_be_sent_to_model"
autoriser uniquement si data_class dans ["regulated", "customer_pii"]
et profile.zdr_eligible == true
et profile.zdr_contract_required_satisfied == true
Reason_on_failure "model_profile_not_zdr_eligible"
refuser si résidence_required == "eu"
et "eu" pas dans profile.processing_residency
raison "region_processing_not_supported"
refuser si data_class dans ["confidential", "customer_pii", "regulated"]et request.raw_prompt_logging == true
raison "raw_prompt_logging_not_allowed"
refuser si request.features.search_grounding == true
et Policy.requires_zdr == true
et profile.feature_storage.search_grounding_days > 0
raison "grounding_requires_retained_content"
refuser si fallback_profile.retention_level
Ces règles doivent être exécutées avant la sélection du fournisseur et à nouveau avant le repli. Le routage de secours est une source courante de dérive accidentelle des politiques : la route principale peut être conforme, tandis que la route de secours est simplement disponible.
Étape 4 : traiter les outils et les fonctionnalités comme des capacités de modification de la rétention
Ne modélisez pas la rétention comme une propriété du modèle de base uniquement. Les fonctionnalités modifient souvent le comportement de stockage, de journalisation ou de révision.
Attribuez à chaque fonctionnalité ses propres indicateurs de stratégie :
- Base de recherche : peut stocker des invites, le contexte récupéré et le résultat généré en fonction des termes du fournisseur.
- Cartes ou géolocalisation : peuvent introduire des journaux ou des règles de conservation spécifiques à un emplacement.
- Téléchargement de fichiers : peut stocker des fichiers séparément des invites et des réponses.
- Exécution de code : peut créer des fichiers temporaires, des journaux d'exécution ou des artefacts sandbox.
- Tâches par lots : peuvent avoir un comportement de rétention, de mise en file d'attente et de stockage des résultats différent de celui des appels d'API synchrones.
- Conversations stockées : le contenu est intentionnellement conservé et ne doit jamais être masqué derrière une option de chat générique.
- Tableaux de bord d'évaluation ou d'examen : peuvent créer des flux de travail d'examen humain ou des ensembles de données à plus longue durée de vie.
Recommandation : activez les fonctionnalités de modification de la rétention au niveau du locataire et de l'itinéraire. Si un développeur active grounding_search=true, la passerelle doit réévaluer la demande par rapport aux règles de stockage des fonctionnalités avant de l'envoyer en amont.
Étape 5 : préserver les analyses sans stocker les invites brutes
Le routage prenant en compte la rétention ne doit pas aveugler l'équipe de la plateforme. Vous pouvez conserver des analyses d'utilisation de l'IA utiles tout en minimisant le stockage de contenu.
Champs de télémétrie par défaut sécurisé :
- ID de locataire et ID de projet
- ID de clé API haché ou interne
- ID de profil de modèle et ID de fournisseur
- demander l'horodatage et la région
- Nombre de jetons d'entrée, de sortie, mis en cache et de raisonnement lorsqu'ils sont disponibles
- latence, code d'état, nombre de tentatives et décision de secours
- coût estimé et réglé
- étiquette de classification des données
- version de la stratégie et motif de la décision stratégique
- indicateurs de fonctionnalité demandés et indicateurs de fonctionnalité autorisés
Évitez de stocker par défaut les invites brutes et les sorties du modèle pour le trafic confidentiel. Si le débogage nécessite du contenu, utilisez un workflow contrôlé :
- approbation du client ou du locataire
- fenêtre temporelle étroite
- limite d'échantillonnage
- Rédaction réussie
- contrôle d'accès séparé
- expiration courte
- journal d'audit indiquant qui l'a activé et pourquoi
Il s'agit d'un compromis. Le blocage des journaux d'invite bruts rend le débogage, l'assistance, l'examen de la qualité et les enquêtes sur les abus plus difficiles. Mais le fait de tout stocker par défaut crée une plus grande surface de confidentialité, de violation et de conformité.
Étape 6 : renvoyer les motifs de refus exploitables
Un 403 interdit générique frustre les développeurs et encourage les solutions de contournement. Renvoie une raison stable lisible par machine et une explication lisible par l'homme.
Exemple de réponse :
{
"erreur": {
"type": "policy_denied",
"code": "grounding_requires_30_day_storage",
"message": "La mise à la terre de la recherche n'est pas autorisée pour les charges de travail marquées require_zdr car cette fonctionnalité du fournisseur stocke l'invite, le contexte et le contenu de sortie.",
"request_id": "req_123",
"policy_version": "politique-de-rétention-2026-08-01",
"actions_autorisées": [
"disable_search_grounding",
"choisir_profile:zdr_plain_chat",
"requête_exception"
]
}
Les codes de refus utiles incluent :
model_profile_not_zdr_eligibleregion_processing_not_supportedstorage_residency_not_supportedraw_prompt_logging_not_allowedfeature_requires_content_storagefallback_weakens_retention_policycontract_prerequisite_missingcredentials_detected
Étape 7 : ajoutez un workflow d'exception, pas un contournement caché
Certaines exceptions sont légitimes : réponse aux incidents, débogage approuvé par le client, tests de migration ou limitation temporaire du fournisseur. La passerelle doit prendre en charge les exceptions sans les transformer en politique fantôme permanente.
Chaque exception doit inclure :
- identité de l'approbateur
- équipe ou locataire demandeur
- lien vers un ticket ou un examen des risques
- justification commerciale
- Profils et fonctionnalités de modèle autorisés
- Classes de données couvertes
- date d'expiration
- Exigences supplémentaires en matière de journalisation
Recommandation : rendre les exceptions plus restreintes que les politiques ordinaires. Évitez les commutateurs globaux tels que disable_retention_policy=true. Préférez les remplacements limités tels que "autoriser la journalisation des invites de débogage pour le locataire A, point de terminaison B, pendant 24 heures, avec rédaction et approbation de sécurité".
Liste de contrôle opérationnel
- Créez une matrice de fonctionnalités de fournisseur versionnée.
- Attribuez un propriétaire aux conditions du fournisseur, aux conditions préalables du contrat et aux examens de fidélisation.
- Exiger que les applications déclarent la classe de données, les exigences de résidence et les fonctionnalités demandées.
- Par défaut, le trafic confidentiel et réglementé ne nécessite aucune journalisation brute des invites.
- Représentez les outils, la mise à la terre, le téléchargement de fichiers, les lots et les conversations stockées sous forme d'indicateurs de fonctionnalités distincts.
- Exécutez des vérifications de stratégie avant le routage principal et avant le routage de secours.
- Version de la stratégie de journalisation, profil de modèle, classe de données, indicateurs de fonctionnalité et motif du refus.
- Gardez les métadonnées d'analyse séparées du contenu des invites et des résultats.
- Le représentant des tests autorise et refuse les cas dans CI.
- Examinez les dérives des règles chaque fois qu'un fournisseur modifie des conditions, des régions, des points de terminaison ou des fonctionnalités.
Compromis à rendre explicites
Un routage strict réduit le choix. Les contraintes ZDR et de résidence peuvent empêcher l'utilisation du modèle le plus récent, de l'itinéraire le moins coûteux ou d'un point de terminaison riche en fonctionnalités.
Le routage régional peut augmenter la latence ou le coût. La région conforme la plus proche peut ne pas prendre en charge le mode de traitement souhaité ou nécessiter un chemin de fournisseur différent.
Les portes de fonctionnalités surprennent les développeurs. Un développeur peut penser qu'il active uniquement la recherche, mais la sécurité voit un nouveau comportement de rétention. Les messages de documentation et de refus réduisent les frictions.
La minimisation des invites complique le débogage. Les équipes ont besoin d'échantillons rédigés, de fenêtres de débogage approuvées par le locataire et de métadonnées solides pour enquêter sur les problèmes sans tout stocker.
La matrice nécessite une maintenance. Les conditions du fournisseur changent. Lancement de nouveaux modèles. Les régions s'agrandissent. Les fonctionnalités passent de la version bêta à la production. Une matrice obsolète est pire que pas de matrice car elle crée une fausse confiance.
Qu'est-ce qu'une recommandation et qu'est-ce qu'une prédiction ?
Recommandations : appliquer la rétention au niveau de la passerelle, classer les demandes avant le routage, créer une matrice de capacités du fournisseur, bloquer les fonctionnalités de modification de la rétention par stratégie, éviter la journalisation brute des invites par défaut et versionner chaque décision politique.
Prédiction : les équipes de plates-formes d'IA considéreront de plus en plus la question de la confidentialité dans le cadre de la sélection du modèle. Au lieu de se demander « quel modèle devrions-nous utiliser ? les candidatures demanderont un profil de modèle qui satisfait aux contraintes de capacité, de coût, de latence, de résidence et de rétention.
Prédiction : les fonctionnalités de confidentialité spécifiques aux fournisseurs continueront de diverger. Les passerelles qui normalisent uniquement les formats de requêtes et de réponses ne suffiront pas ; les équipes de production auront également besoin d'une normalisation des politiques.
Conclusion exploitable
Le routage prenant en compte la conservation des données n'est pas un tableau de bord de conformité distinct. Il appartient au chemin de la requête.
Commencez avec trois livrables : une taxonomie de sensibilité aux requêtes, une matrice de capacités de fournisseur versionnée et un petit ensemble de règles de stratégie en tant que code pour les fonctionnalités ZDR, de résidence, de journalisation brute, de secours et de modification de la rétention. Ensuite, faites en sorte que la passerelle renvoie des raisons de refus claires et préserve les analyses sans stocker le contenu brut par défaut.
Cette conception centralise les décisions qui seraient autrement dispersées entre les options du SDK, les variables d'environnement, les consoles des fournisseurs et les conventions spécifiques à l'équipe. Il fournit également aux équipes de sécurité et de plate-forme une piste d'audit pratique : quelle demande a été autorisée, quelle version de politique appliquée, quel profil de modèle a été sélectionné et pourquoi.