Se connecterContactCommencer gratuitement
Enterprise Controls and Trust30 juillet 2026Flatkey Team

Gestion sécurisée des clés API pour les produits d’IA

Un guide opérationnel pour la gestion des clés API d’IA en production : conservation côté serveur, identités à portée limitée, journalisation sûre pour les prompts, rotation sans interruption, réponse aux fuites et gouvernance multi-fournisseurs.

Gestion sécurisée des clés API pour les produits d’IA

La gestion sécurisée des clés API pour les produits d’IA ne consiste pas simplement à placer un identifiant fournisseur dans un coffre-fort. Les applications d’IA envoient des prompts, des fichiers, du contexte récupéré, des arguments d’outils et des sorties de modèle via des systèmes qui couvrent souvent plusieurs fournisseurs et environnements. Une clé peut être parfaitement chiffrée au repos tandis que le chemin de requête environnant expose encore des données sensibles via des bundles de navigateur, des journaux de débogage, des sorties CI, des exports de support ou un service de routage trop permissif.

L’objectif pratique est donc plus large : tenir les clés fournisseur à longue durée de vie à l’écart des clients non approuvés, donner à chaque charge de travail l’identité la plus restreinte utile, contrôler quelles données peuvent traverser chaque frontière de modèle, et faire de la rotation et de la révocation des routines plutôt que des perturbations.

Ce guide fournit aux équipes plateforme, sécurité et produits d’IA un modèle opérationnel qu’elles peuvent mettre en œuvre. Il comprend un modèle de menace, un modèle d’inventaire des clés, une architecture de plan de contrôle, un guide d’exécution de rotation sans interruption, des règles de journalisation, des garde-fous CI/CD, un flux de travail de réponse aux incidents et une liste de contrôle de production.

Les cinq frontières qu’une clé d’IA peut franchir

Commencez par cartographier les endroits où un secret ou les données qu’il autorise peuvent circuler. La plupart des échecs surviennent parce que les équipes protègent la clé fournisseur mais négligent l’une de ces frontières adjacentes.

Frontière Défaillance typique Contrôle requis
Client vers application Une clé fournisseur est intégrée dans un bundle de navigateur, un binaire mobile, une application de bureau ou une extension Conserver les clés fournisseur côté serveur ; émettre vers les clients des identifiants utilisateur ou de session à courte durée de vie
Application vers passerelle Chaque service partage une seule clé sans restriction Utiliser des identités de charge de travail, des jetons de passerelle à portée limitée, des quotas et une politique de routage explicite
Passerelle vers fournisseur Un seul identifiant peut accéder à tous les modèles, projets ou environnements Séparer les clés par fournisseur, environnement, charge de travail et niveau de risque lorsque cela est pris en charge
Requête vers journaux Des en-têtes d’autorisation, prompts, fichiers ou sorties apparaissent dans les traces Interdire les champs de secret, minimiser la journalisation des charges utiles, tokeniser les identifiants et tester la redaction
Opérations humaines Les clés sont collées dans des tickets, des chats, des runbooks ou des outils de support Utiliser des flux de travail d’accès contrôlé, une récupération auditée, des procédures de secours d’urgence et une expiration automatique

Cette cartographie des frontières fait passer la question de conception de « Où stockons-nous la clé ? » à « Quelle identité peut faire quelle requête, avec quelles données, via quel itinéraire, et quelle preuve subsiste ensuite ? »

Utiliser un modèle de garde des clés côté serveur

Les identifiants fournisseur à longue durée de vie ne doivent pas être remis aux clients de navigateur, mobiles, desktop ou extensions. Tout ce qui est envoyé à un appareil d’utilisateur final doit être considéré comme récupérable par cet utilisateur ou par un logiciel malveillant exécuté avec les mêmes privilèges.

Un modèle plus sûr est le suivant :

  1. Le client s’authentifie auprès de votre backend à l’aide d’une session utilisateur, d’un identifiant d’appareil ou d’un jeton d’application à courte durée de vie.
  2. Votre backend autorise la fonctionnalité demandée et applique des limites par utilisateur ou par tenant.
  3. Une passerelle ou une intégration côté serveur choisit le fournisseur et le modèle approuvés.
  4. La clé du fournisseur est récupérée à l’exécution ou mise à la disposition de la charge de travail de confiance via la plateforme de déploiement.
  5. La réponse du fournisseur revient par la même frontière de politique.

Le client n’a jamais besoin du secret du fournisseur. Il ne reçoit que l’autorisation d’appeler votre produit dans les limites que vous définissez.

Pour les agents de codage et les outils de développement locaux, appliquez le même principe avec un modèle d’exception délibéré. Un développeur peut avoir besoin d’un identifiant local, mais il doit s’agir d’un identifiant de produit ou de passerelle avec révocation, attribution d’utilisation et portée limitée — et non d’une clé fournisseur partagée à l’échelle de l’organisation, copiée dans les fichiers dotfiles partout dans l’entreprise.

Build a key inventory before you rotate anything

Les projets de rotation échouent lorsque les équipes ne savent pas quelle charge de travail utilise une clé. Créez un inventaire lisible par machine et attribuez un propriétaire avant de modifier les identifiants.

Au minimum, enregistrez :

Field Example Why it matters
Secret ID prod-support-chat-anthropic-01 Une référence interne stable qui n’est pas la valeur du secret
Provider and project Provider account + project identifier Définit le périmètre externe d’impact
Environment Development, staging, production Empêche les systèmes de test d’hériter de l’autorité de production
Workload support-chat-api Permet l’attribution et la révocation ciblée
Owner Team and on-call rotation Crée une responsabilisation pendant les incidents
Storage location Secret manager path or deployment binding Indique où se trouve la source de vérité
Allowed models/routes Approved model family or gateway policy Limite les utilisations inattendues
Spend and request limits Workload budget, RPM, TPM, or concurrency controls Contraint les abus et l’automatisation hors de contrôle
Created and last rotated Timestamps Rend visibles les identifiants obsolètes
Rotation method Dual-key, version alias, or maintenance window Empêche les changements improvisés
Revocation dependency Services that must be updated first Protège la disponibilité
Data classification Public, internal, confidential, regulated Relie la politique des clés à la gouvernance des prompts

Ne mettez pas la valeur de la clé dans l’inventaire. Stockez uniquement les métadonnées et une référence vers le secret géré.

Separate identities by environment, workload, and risk

Le modèle anti-patron le plus courant est une seule clé de production partagée par tous les services. C’est pratique jusqu’à ce qu’un dépôt, un exécuteur de tests, l’ordinateur portable d’un prestataire ou une transcription d’assistance la divulgue. L’équipe ne peut alors pas révoquer la clé sans perturber des produits sans rapport.

Préférez des identités séparées pour :

  • Production, préproduction, développement et tests locaux.
  • Trafic destiné aux clients, outils internes, tâches batch et pipelines d’évaluation.
  • Flux de travail à haut risque capables d’appeler des outils ou de traiter des données confidentielles.
  • Différentes unités commerciales ou locataires lorsque des limites contractuelles exigent une séparation.
  • Accès d’urgence ou « break-glass », qui doit rester désactivé ou strictement contrôlé pendant le fonctionnement normal.

Lorsqu’un fournisseur propose des restrictions, appliquez-les. Les restrictions peuvent inclure les API autorisées, les modèles, les réseaux sources, les projets, les référents, les applications ou les quotas. Les recommandations de Google Cloud sur les clés API, par exemple, conseillent de restreindre les clés, de les isoler, de supprimer les clés inutiles, d’éviter les commits dans les dépôts et de surveiller leur utilisation.

Si le fournisseur n’offre pas de contrôles suffisamment granulaires, appliquez-les à votre propre passerelle. Une passerelle centrale peut valider la charge de travail appelante, la mapper vers une route approuvée, appliquer des budgets et des limites de débit, et conserver les identifiants du fournisseur derrière un seul périmètre côté serveur examiné. Consultez le guide d’architecture de passerelle d’API IA pour la conception du routage et du basculement.

Treat prompt and log governance as part of key management

Une clé API autorise un chemin de données. Protéger la clé sans contrôler ce chemin laisse le principal risque propre à l’IA non résolu.

Avant de router une requête, classez la charge utile et appliquez la règle du minimum nécessaire :

  • Supprimez les identifiants, jetons, cookies, clés privées et chaînes de connexion.
  • Excluez les champs dont le modèle n’a pas besoin.
  • Tokenisez ou pseudonymisez les identifiants directs lorsque la tâche peut fonctionner sans eux.
  • Rejetez les données réglementées non prises en charge ou restreintes par contrat.
  • Séparez les instructions système du contenu utilisateur non fiable ou du contenu récupéré.
  • Validez les arguments des outils avant qu’un agent puisse appeler des systèmes externes.

Les journaux nécessitent un schéma explicite. Ne comptez pas sur les développeurs pour se rappeler de ne pas consigner un objet de requête. Définissez quels champs sont autorisés, puis rejetez ou transformez tout le reste.

Un événement de production utile peut contenir :

{
  "request_id": "req_01J...",
  "tenant_id_hash": "tnt_7f2...",
  "workload": "support-chat-api",
  "route_policy": "support-low-risk-v3",
  "provider": "selected-provider",
  "model": "selected-model",
  "input_tokens": 842,
  "output_tokens": 211,
  "latency_ms": 1370,
  "status": 200,
  "key_version": "v12",
  "redaction_policy": "customer-support-v4"
}

Il ne devrait pas contenir l’en-tête d’autorisation, la clé brute du fournisseur, le prompt complet, le document téléversé, un argument d’outil non expurgé ou la sortie complète du modèle par défaut. Si la capture de la charge utile est nécessaire pour une évaluation ou un incident strictement contrôlés, rendez-la limitée dans le temps, soumise à contrôle d’accès et visiblement séparée de la télémétrie courante.

La Logging Cheat Sheet de l’OWASP fournit une base utile pour exclure les jetons d’accès, les mots de passe, les clés de chiffrement et autres données sensibles des journaux d’application.

Design zero-downtime API key rotation

La rotation n’est un contrôle que si elle peut être effectuée en toute sécurité. Un mode opératoire qui provoque une indisponibilité sera reporté jusqu’à une situation d’urgence.

Utilisez une séquence à double clé ou à secret versionné lorsque le fournisseur prend en charge des identifiants qui se chevauchent :

  1. Créez une nouvelle clé chez le fournisseur. Appliquez les mêmes restrictions ou des restrictions plus strictes que pour l’ancienne clé.
  2. Stockez-la comme une nouvelle version du secret. Ne remplacez pas la valeur précédente sur place si votre plateforme prend en charge les versions ou les alias.
  3. Déployez des consommateurs qui acceptent la nouvelle version. Mettez à jour la passerelle ou les charges de travail pour résoudre l’alias ou la version actuelle.
  4. Faites basculer le trafic et observez. Confirmez les requêtes réussies, les modèles attendus, les dépenses, les limites de débit et les taux d’erreur en utilisant la nouvelle version de la clé.
  5. Retirez les anciens consommateurs. Vérifiez les inventaires de déploiement, les jobs, les workers et les environnements de reprise après sinistre.
  6. Révoquez l’ancienne clé. Ne vous contentez pas de cesser de l’utiliser ; invalidez-la chez le fournisseur.
  7. Vérifiez le rejet. Un test contrôlé doit confirmer que l’ancien identifiant ne fonctionne plus.
  8. Consignez les preuves. Enregistrez les horodatages, les propriétaires, les charges de travail affectées, les résultats de validation et la prochaine date de revue.

Pour un système qui prend en charge la sélection de version de clé, l’application doit faire référence à un alias stable plutôt que de coder en dur une version de secret :

type ProviderCredential = {
  value: string;
  version: string;
};

async function loadProviderCredential(): Promise<ProviderCredential> {
  const activeVersion = await secretStore.resolveAlias("ai/provider/active");
  const value = await secretStore.readVersion("ai/provider", activeVersion);

  return { value, version: activeVersion };
}

N’imprimez pas value, ne sérialisez pas l’objet renvoyé et ne l’attachez pas à une erreur. Ne consignez que l’identifiant de version non secret.

La OWASP Secrets Management Cheat Sheet recommande de planifier l’ensemble du cycle de vie du secret, y compris la création, la rotation, la révocation, l’expiration, l’audit, la sauvegarde et l’accès d’urgence (break-glass). Elle insiste aussi sur l’automatisation de la rotation lorsque cela est possible.

Empêchez les secrets d’entrer dans les dépôts et les journaux CI

Les gestionnaires de secrets ne servent à rien après qu’un identifiant a été copié dans le code source, un fixture, un artefact de build ou une transcription CI.

Utilisez des contrôles à trois étapes :

Avant le commit

  • Fournissez des fichiers .env.example avec des espaces réservés, jamais des identifiants fonctionnels.
  • Conservez les fichiers secrets locaux en dehors du contrôle de version.
  • Exécutez un scanner de secrets rapide dans les hooks pre-commit pour les motifs courants des fournisseurs et les valeurs à forte entropie.
  • Apprenez aux développeurs que la suppression d’un secret dans un commit ultérieur ne l’efface pas de l’historique.

Au moment du push et de la pull request

  • Activez la détection de secrets dans les dépôts et la protection au push lorsque c’est disponible.
  • Ajoutez des motifs personnalisés pour les jetons de passerelle internes que les scanners publics ne reconnaîtront pas.
  • Exigez une justification de contournement documentée et soumettez les contournements à une revue de sécurité.
  • Analysez les fichiers générés, les notebooks, les instantanés de test et les plans d’infrastructure — pas seulement le code source de l’application.

GitHub documente la protection contre le push comme un moyen d’analyser pendant le processus de push et de bloquer les secrets détectés avant qu’ils n’entrent dans un dépôt. La détection n’est pas une raison de conserver la clé : considérez toute crédential confirmée et commitée comme exposée et faites-la pivoter.

Dans le CI/CD

  • Privilégiez l’identité de charge de travail ou la fédération à courte durée de vie plutôt que des identifiants cloud stockés.
  • Exposez un secret uniquement au job et à l’étape qui en ont besoin.
  • Masquez les valeurs secrètes connues, mais ne comptez pas sur le masquage comme contrôle principal.
  • Désactivez le tracing du shell autour de la récupération des secrets.
  • Empêchez le code non fiable issu de forks d’accéder aux secrets de déploiement.
  • Vérifiez les artefacts, caches, dumps de crash et rapports de test pour détecter toute capture accidentelle.

Surveiller l’utilisation sans consigner le secret

Une bonne surveillance répond à la question « qui a utilisé quelle autorité ? » sans enregistrer l’autorité elle-même.

Suivez :

  • Charge de travail, environnement, locataire ou projet, et version de clé.
  • Fournisseur, modèle, politique de routage et chemin de repli.
  • Nombre de requêtes, volume de jetons, dépenses, latence et classe d’erreur.
  • Réseau source ou identité de déploiement lorsque c’est utile.
  • Accès au gestionnaire de secrets, y compris les lectures refusées.
  • Création de clé, changements de restrictions, rotation, révocation et suppression.
  • Utilisation soudaine depuis un environnement, une géographie, un modèle ou une fenêtre temporelle inattendus.

Définissez des alertes autour du comportement, pas seulement des dépenses totales. Une clé à faible budget volée peut malgré tout exposer des invites ou sonder des flux de travail internes. À l’inverse, un job batch légitime peut provoquer un pic de dépenses sans compromission d’identifiants. Corrélez l’utilisation du fournisseur avec les identifiants de requête de l’application, les décisions de politique de passerelle, les événements de déploiement et les journaux d’audit du gestionnaire de secrets.

Pour les contrôles du trafic qui complètent les contrôles des identifiants, utilisez le guide des limites de débit des LLM et le playbook de routage de repli de l’API LLM.

Utiliser une horloge d’incident de l’exposition à la révocation

Lorsqu’une clé peut être exposée, le premier objectif est le confinement — pas de prouver si un attaquant l’a utilisée.

Exécutez cette séquence :

  1. Déclarez le credential comme suspect. Notez quand et où il a pu être exposé.
  2. Créez un remplacement via le circuit contrôlé habituel. N’insérez pas une nouvelle clé dans le chat pour accélérer l’incident.
  3. Transférez les charges de travail légitimes vers le remplacement. Utilisez la procédure de rotation préparée.
  4. Révoquez la clé suspecte. Si une révocation immédiate devait créer un préjudice inacceptable, isolez les routes et réduisez les limites tout en finalisant la bascule.
  5. Recherchez chaque emplacement de copie. Vérifiez l’historique du code source, les journaux CI, les artefacts, les couches de conteneurs, les systèmes de support, les tableaux de bord, les notebooks, la configuration locale et les sauvegardes.
  6. Examinez les chemins de données autorisés. Déterminez à quels prompts, sorties, fichiers, outils ou modèles la clé pouvait accéder — pas seulement à son périmètre de facturation.
  7. Corrélez l’activité. Comparez l’utilisation chez le fournisseur, les journaux de passerelle, les déploiements, les lectures de secrets et l’activité des utilisateurs.
  8. Informez les bons responsables. Impliquez les équipes sécurité, plateforme, juridique, confidentialité et clients selon les données et les contrats concernés.
  9. Éliminez la cause racine. Ajoutez le scanner manquant, la restriction, la frontière d’identité ou le filtre de journaux.
  10. Mesurez le chronomètre. Enregistrez le temps jusqu’à la détection, au remplacement, à la bascule du trafic, à la révocation et à la vérification.

La métrique la plus exploitable est souvent le temps d’exposition jusqu’à la révocation : combien de temps un credential suspect reste utilisable après que l’organisation dispose d’éléments crédibles indiquant une exposition. Réduire cet intervalle exige une responsabilité préparée, un inventaire, de l’automatisation et des rotations testées — pas un document de politique plus long.

Architecture de référence pour les produits d’IA multi-fournisseurs

Une configuration multi-fournisseurs sécurisée peut être organisée en cinq couches :

  1. Couche d’identité client : authentifie l’utilisateur, l’appareil, l’agent ou l’application sans exposer les credentials du fournisseur.
  2. Couche d’autorisation de l’application : vérifie les droits du produit, les frontières de tenant, l’accès aux fonctionnalités et les budgets.
  3. Couche de politique des données : classe et masque les prompts, les fichiers, le contexte récupéré et les arguments d’outil.
  4. Couche de passerelle et de routage : sélectionne les modèles approuvés, applique les quotas, enregistre une attribution non secrète et gère le basculement.
  5. Couche de credentials du fournisseur : stocke des credentials de fournisseurs isolés, fait tourner les versions et ne les expose qu’à la charge de travail de routage de confiance.

Cette conception limite le rayon d’impact. Un jeton client compromis ne révèle pas automatiquement une clé fournisseur. Une identité de charge de travail compromise ne devrait pas donner accès à chaque fournisseur. Un credential fournisseur divulgué ne devrait pas autoriser chaque environnement. Un échec de journalisation ne devrait pas exposer à la fois le secret et la charge utile complète.

Le positionnement produit de Flatkey repose sur un endpoint compatible avec OpenAI et un accès unifié à plusieurs fournisseurs de modèles. Cela peut réduire le nombre d’intégrations spécifiques à chaque fournisseur qu’une application doit maintenir, mais une passerelle ne vous dispense pas de sécuriser l’authentification client, de classifier les données des requêtes, de configurer les journaux, d’attribuer des responsables et de tester la révocation. Évaluez les contrôles exacts disponibles pour votre compte et votre architecture avant le déploiement en production. Vous pouvez commencer par le guide d’intégration Flatkey et consulter les accès aux modèles et tarifs actuels.

Liste de contrôle de production

Utilisez cette liste de contrôle avant le lancement et lors des revues trimestrielles des contrôles.

Garde et identité

  • Aucune clé fournisseur à longue durée de vie n’est intégrée dans le code du navigateur, mobile, bureau ou extension.
  • Chaque charge de travail de production dispose d’un responsable identifiable et d’un chemin d’identifiants.
  • Les accès de production, de préproduction, de développement, d’évaluation et locaux sont séparés.
  • Les clés humaines partagées ont été remplacées, lorsque c’est possible, par des identités de charge de travail ou de passerelle.
  • Les restrictions du fournisseur et de la passerelle sont définies selon le périmètre le plus restreint possible.

Stockage et livraison

  • La source de vérité est un magasin de secrets managé ou un binding de déploiement contrôlé.
  • Les applications récupèrent les secrets uniquement à l’exécution et ne les affichent ni ne les sérialisent.
  • Les jobs CI reçoivent uniquement les secrets requis pour l’étape demandée.
  • L’accès aux secrets et les changements administratifs sont audités.
  • L’accès d’urgence est documenté, limité dans le temps et testé.

Données et observabilité

  • Les en-têtes d’autorisation et les valeurs de clés sont exclus des journaux, traces, erreurs et exports de support.
  • La journalisation des prompts, des sorties, des fichiers et des arguments d’outils suit un schéma d’autorisation explicite.
  • La suppression/redaction a lieu avant le routage multi-fournisseurs.
  • L’utilisation peut être attribuée à la charge de travail, l’environnement, la route, le fournisseur, le modèle et la version de clé.
  • Les alertes couvrent les routes et identités inhabituelles ainsi que les dépenses.

Rotation et réponse

  • Une procédure de rotation testée à deux clés ou basée sur des secrets versionnés existe.
  • Les anciennes clés sont révoquées chez le fournisseur et vérifiées comme inutilisables.
  • La détection de secrets et la protection contre les pushes couvrent les dépôts et les artefacts générés.
  • Une fuite suspectée déclenche immédiatement un confinement, sans attendre la preuve d’un abus.
  • Le temps écoulé entre exposition et révocation est mesuré après les exercices et les incidents.

FAQ

Qu’est-ce que la gestion sécurisée des clés API pour les produits d’IA ?

C’est la pratique consistant à contrôler l’ensemble du cycle de vie et le chemin des requêtes des identifiants utilisés pour appeler des modèles d’IA. Cela inclut la garde côté serveur, l’identité de charge de travail, le moindre privilège, le stockage des secrets, la politique de routage, la gouvernance des prompts et des journaux, la rotation, la surveillance et la réponse aux incidents.

Une clé API d’IA doit-elle être stockée dans une variable d’environnement ?

Une variable d’environnement peut être un mécanisme de livraison, mais ce n’est pas un système de gestion complet. Le secret nécessite toujours une source de vérité contrôlée, un accès de déploiement restreint, la rotation, l’audit et une protection contre les dumps de processus, les journaux, les points de terminaison de débogage et les processus enfants hérités. Préférez l’injection de secrets native à la plateforme ou la récupération à l’exécution lorsqu’elle améliore ces contrôles.

À quelle fréquence les clés API d’IA doivent-elles être rotées ?

Utilisez les capacités du fournisseur, votre modèle de menace, les contrats et la politique interne pour définir l’intervalle. Plus important que de choisir un nombre arbitraire sur le calendrier, il faut démontrer que la rotation est automatisée ou répétée, que les anciennes clés sont révoquées, que les clés suspectes peuvent être remplacées immédiatement et que les identifiants obsolètes ne peuvent pas survivre sans être détectés.

Un navigateur peut-il appeler directement un fournisseur d’IA avec une clé restreinte ?

Certains fournisseurs prennent en charge des restrictions côté client pour des API spécifiques, mais un produit d’IA en production doit partir du principe qu’un identifiant distribué peut être récupéré. Un backend ou une passerelle offre généralement un meilleur contrôle sur l’autorisation des utilisateurs, les quotas, la suppression des données sensibles dans les invites, la sélection du fournisseur, la réponse aux abus et la révocation des clés.

Une seule clé de passerelle est-elle plus sûre que plusieurs clés de fournisseur ?

Elle peut réduire la prolifération des identifiants dans le code applicatif, mais elle concentre l’autorité au niveau de la passerelle. L’identifiant de la passerelle doit être limité en portée, attribuable, soumis à des limites de débit, surveillé, rotatif et protégé contre les clients. Les identifiants de fournisseur derrière celle-ci nécessitent toujours une isolation et une gestion du cycle de vie.

Que devons-nous faire si une clé API apparaît dans l’historique Git ?

Considérez-la comme compromise. Révoquez-la ou faites-la tourner, remplacez les consommateurs légitimes, examinez l’activité du fournisseur et de la passerelle, supprimez la valeur des branches actives et des artefacts pertinents, et ajoutez une analyse préventive. Réécrire l’historique ne rend pas sûre une identité toujours valide.

Sources et lectures complémentaires