La gestion des clés API n'est plus une petite tâche de tableau de bord. Pour les équipes utilisant des API d'IA, cela fait partie du modèle de sécurité, de coût et d'exploitation de chaque application qui envoie des invites, reçoit des résultats de modèle, appelle des outils ou dépense de l'argent en inférence mesurée.
De nombreuses équipes commencent avec une clé de fournisseur dans un fichier d'environnement local. Cela fonctionne jusqu'à ce que la même clé apparaisse dans les variables CI, les blocs-notes, les extensions IDE, les agents, les tâches par lots, les intégrations client et les scripts de support. À ce stade, une fuite de clé n’est pas seulement un problème d’authentification. Il peut exposer des invites et des réponses, déclencher des frais inattendus, appeler des modèles premium, exécuter des outils avec autorité d'application ou faire dépendre la réponse aux incidents de conjectures.
Ce guide traite la gestion des clés API comme un cycle de vie : comment les clés sont conçues, émises, stockées, définies, surveillées, alternées et révoquées. Il se concentre sur l'accès aux API d'IA, où les problèmes habituels de sécurité des API sont rejoints par l'accès au modèle, les dépenses basées sur les jetons, les informations d'identification multi-fournisseurs, l'attribution des clients et les clients compatibles OpenAI.
La place des clés API dans la sécurité de l'API
Une clé API prouve généralement la possession d'un identifiant. Il répond à la question : « cet appelant a-t-il un secret valide ? » Il ne répond pas, à lui seul, à toutes les questions d'autorisation importantes.
Un backend doit toujours décider si l'appelant peut accéder à un locataire, un objet, un modèle, un point de terminaison, un outil, un espace de travail, un rapport ou une fonction administrative particulier. Les 10 principaux risques de sécurité des API OWASP, tels qu'une autorisation au niveau de l'objet brisée, une authentification brisée, une consommation illimitée de ressources et une autorisation au niveau des fonctions brisée, rappellent qu'un identifiant valide ne constitue qu'une couche du système.
Pour les API IA, cette distinction est importante car la même clé peut être capable d'effectuer des actions avec des profils de risque très différents. Une clé qui peut appeler un modèle de texte à faible coût pour un flux de travail interne ne devrait pas être automatiquement capable d'appeler des modèles premium, de créer des tâches par lots, d'accéder aux données d'un autre locataire, d'appeler des outils qui envoient des e-mails ou de gérer les paramètres de facturation.
Un modèle de sécurité d'API durable sépare trois préoccupations :
- Authentification : prouver que la demande a un identifiant, un jeton ou une session valide.
- Autorisation : décider de ce qui est authentifié. l'appelant peut faire dans le contexte actuel du locataire, de l'environnement et de l'entreprise.
- Gouvernance : limiter les dépenses, les tarifs, l'accès aux modèles, l'exposition des données et le contrôle administratif afin qu'une erreur ait un rayon d'action limité.
Les clés API sont utiles, mais elles ne doivent pas être le seul contrôle protégeant les ressources sensibles ou de grande valeur. Utilisez-les avec HTTPS, les contrôles d'autorisation côté serveur, les journaux d'audit, les moindres privilèges, les limites de débit, les limites de dépenses et la gestion sécurisée des secrets.
Commencez par un inventaire de clés API en direct
Vous ne pouvez pas gérer des clés que vous ne pouvez pas nommer. La première étape pratique consiste à dresser un inventaire en direct de chaque clé API et objet de type identifiant utilisé par vos systèmes d'IA.
Au minimum, chaque enregistrement de clé doit inclure un identifiant de clé, un hachage ou une empreinte digitale irréversible, le propriétaire, le créateur, l'équipe ou le locataire, l'environnement, la charge de travail, les étendues, les modèles autorisés, les points de terminaison autorisés, la politique de dépenses, la politique tarifaire, les restrictions IP le cas échéant, le statut, l'heure de création, l'expiration, l'horodatage de la dernière utilisation, le groupe de rotation et l'audit. métadonnées.
L'inventaire doit couvrir plus que les clés d'exécution de production. Incluez les clés de développeur personnelles, les clés de compte de service, les clés CI/CD, les clés d'espace de travail, les clés de client ou de locataire, les clés gérées par le revendeur, les clés de facturation/rapport, les informations d'identification de l'API administrative et les informations d'identification du fournisseur en amont.
Les champs les plus importants sont la propriété, l'objectif, la portée, la dernière utilisation et la politique de limite. Sans eux, toutes les futures tâches de sécurité deviennent plus lentes : désintégration, rotation, réponse aux fuites, enquête sur les coûts et support client.
Concevez délibérément les limites des clés
La plus grande erreur de gestion des clés d'API consiste à utiliser une clé au-delà de trop de limites. Une clé de production partagée est pratique au début, mais elle détruit l’attribution et rend la révocation perturbatrice. En cas de fuite, vous devrez peut-être arrêter le trafic pour chaque service sans pouvoir identifier quelle charge de travail est à l'origine du problème.
De bonnes limites clés suivent la forme de l'entreprise et du logiciel. Séparez la production du développement, les humains des services, les clients des équipes internes, les locataires les uns des autres, les informations d'identification d'exécution des informations d'identification administratives et les clés client émises par la passerelle des clés du fournisseur en amont.
Limites de l'environnement
Le développement, la préparation et la production doivent utiliser des clés distinctes. Une clé de développement ne doit pas atteindre les données de production ou les budgets de production.Une clé intermédiaire ne doit pas avoir accès aux charges de travail client en direct, sauf en cas de raison étroitement contrôlée.
Limites de la charge de travail
Chaque service, tâche par lots, parc d'agents, intégration ou tâche planifiée doit avoir sa propre clé ou son propre compte de service. Cela vous permet de répondre à des questions de base : quelle charge de travail a dépensé de l'argent, quel service a commencé à échouer à l'authentification, quelle intégration a utilisé un modèle obsolète et quelle clé doit être gelée lors d'un incident.
Limites des locataires et des clients
Les systèmes multi-locataires nécessitent une attribution et une isolation. Si une clé API destinée au client est utilisée pour soumettre des invites, la demande doit être liée au client, au locataire, à l'application et, idéalement, à un utilisateur final ou à un acteur pseudonyme. Une clé compromise pour un locataire ne doit pas permettre l'accès aux données, au profil de modèle, au budget ou aux journaux d'un autre locataire.
Limites des informations d'identification du fournisseur
Les clés du fournisseur en amont sont différentes des clés que vous délivrez aux clients ou aux applications internes. Les informations d'identification du fournisseur doivent rester côté serveur, stockées dans un coffre-fort ou un gestionnaire de secrets, et ne jamais être envoyées aux navigateurs, aux applications mobiles, aux clients de bureau, aux ordinateurs portables publics ou aux environnements contrôlés par le client.
Une passerelle peut aider ici en exposant une surface de clé destinée au client tout en conservant les informations d'identification du fournisseur en amont derrière la passerelle. Cela permet de centraliser l'analyse de l'utilisation, la révocation, les contrôles d'équipe et l'application des politiques entre les fournisseurs. Si vous standardisez les clients autour d'une API compatible OpenAI, la limite de la passerelle devient particulièrement importante car de nombreux outils attendent une URL de base unique et un jeton de support.
Appliquer le moindre privilège aux modèles, aux points de terminaison, aux outils et aux dépenses
Le moindre privilège signifie qu'une clé ne doit avoir que l'accès requis pour sa charge de travail. Pour les systèmes d’IA, la portée n’est pas seulement une liste de points de terminaison d’API. Elle comprend également des modèles, des outils, des budgets de jetons, des limites de débit, des locataires, des classes de données et des fonctions administratives.
Une politique de clé d'API IA pratique peut inclure :
- Des familles de modèles autorisées ou des ID de modèle spécifiques.
- Des points de terminaison autorisés, tels que les terminaisons de chat, les intégrations, les tâches par lots ou la génération d'images.
- API administratives, API de gestion de clés, API de facturation et gestion de l'espace de travail non autorisées. API pour les clés d'exécution.
- Limites de débit par clé pour les requêtes par minute et les jetons par minute.
- Limites de dépenses par locataire, par équipe ou par client.
- Le modèle Premium contrôle afin qu'un flux de travail à faible risque ne puisse pas utiliser soudainement le modèle le plus cher.
- Autorisations d'outils, telles que si une clé peut appeler des connecteurs externes, l'exécution de code, des systèmes de récupération ou des actions commerciales.
- Listes d'autorisation IP pour un côté serveur stable. charges de travail, où le chemin du réseau est prévisible.
Le contrôle des dépenses fait partie de la sécurité des API pour les API d'IA mesurées. Une clé divulguée peut créer des dommages financiers directs même si elle n’accède jamais à des données sensibles. Les limites de taux sont utiles, mais elles ne suffisent pas. Le volume de jetons, les tentatives, les tâches par lots, les appels d'outils et la sélection de modèles affectent tous le coût. Une mise en œuvre sécurisée doit combiner des contrôles de tarifs avec des plafonds de dépenses, des listes d'autorisation de modèles, une détection d'anomalies et des contrôles de gel d'urgence.
Les équipes comparant les coûts des modèles et les politiques d'accès doivent maintenir l'alignement de la sécurité et des finances. La tarification modèle n’est pas seulement une question d’approvisionnement ; il détermine ce qu'une clé compromise ou mal configurée peut dépenser. Gardez les profils de modèles approuvés liés aux budgets et examinez-les lorsque votre combinaison de modèles change, en particulier lorsque vous utilisez la tarification des modèles d'IA pour acheminer les charges de travail par coût et capacité.
Stockez les secrets à leur place
Les clés API appartiennent à des gestionnaires de secrets, à une configuration côté serveur, à des variables CI/CD contrôlées ou à une passerelle basée sur un coffre-fort. Ils n'ont pas leur place dans le code source, le JavaScript du navigateur, les offres groupées mobiles, les packages d'applications de bureau, les blocs-notes publics, les captures d'écran, les messages de discussion, les charges utiles d'analyse, les tickets d'assistance ou les journaux.
L'exposition côté client est un mode de défaillance courant. Si une clé de fournisseur est intégrée dans un navigateur ou une application mobile, toute personne pouvant inspecter l’application peut l’extraire et faire des demandes au nom du titulaire du compte. Pour les navigateurs, les applications mobiles, les flottes IDE et les agents exécutés dans des environnements non contrôlés, utilisez le proxy côté serveur ou des informations d'identification déléguées de courte durée avec une portée étroite. Ne distribuez pas d'informations d'identification de fournisseur de longue durée à des clients que vous ne pouvez pas contrôler.
CI/CD a besoin de la même discipline. Stockez les clés en tant que variables protégées. Limitez qui peut les lire ou les modifier. Évitez d'imprimer les variables d'environnement dans les journaux de build. Expurger les en-têtes d’autorisation dans les vidages de requêtes ayant échoué. Traitez les déploiements en version préliminaire et les demandes d'extraction forked comme des zones de confiance différentes des pipelines de production protégés.
Les journaux et les systèmes d'observabilité méritent une attention particulière.Stockez les empreintes digitales des clés, les ID de demande, les ID de locataire, les ID de modèle, l'état de réponse, les compteurs de jetons, les compteurs de coûts, les métadonnées IP ou client, le cas échéant, et les décisions politiques. Ne stockez pas les clés API complètes. Rédigez les secrets dans les traces, les journaux de proxy inverse, les rapports d'exceptions, les charges utiles des webhooks, les outils d'assistance, les événements d'analyse et les files d'attente de lettres mortes.
Créer une rotation avant l'urgence
La rotation ne consiste pas simplement à supprimer une clé et à en créer une autre. Si les services déployés dépendent toujours de l’ancienne clé, la suppression entraîne un temps d’arrêt. Un processus de rotation fiable utilise le chevauchement, l'observation et un point de retrait clair.
Un modèle courant est un groupe de rotation avec deux créneaux actifs. Créez la clé de remplacement, déployez-la sur chaque système dépendant, observez la dernière utilisation de l'ancienne clé, gelez l'ancienne clé lorsque le trafic a bougé et supprimez-la après une fenêtre de confiance. Gardez les règles de restauration explicites : quand l'ancienne clé peut-elle être réactivée, qui peut l'approuver et combien de temps peut-elle rester disponible ?
Les durées de vie courtes des clés réduisent le risque d'identification obsolète, mais elles augmentent la charge opérationnelle. Les clés de longue durée réduisent le taux de désabonnement au déploiement, mais elles créent une fenêtre plus grande pour les informations d'identification oubliées et les écarts de départ des employés. La bonne politique dépend de la charge de travail. Un compte de service de production de grande valeur peut tourner selon un calendrier fixe grâce à l'automatisation. Une clé de développeur temporaire devrait expirer rapidement. Une intégration gérée par le client peut nécessiter une fenêtre de migration plus longue et des messages clairs de dépréciation.
N'effectuez pas une rotation de chaque clé de la même manière. Les informations d'identification administratives qui peuvent répertorier, créer, supprimer ou modifier des clés présentent un risque plus élevé que les clés d'inférence d'exécution et doivent disposer de contrôles plus stricts, d'un accès plus restreint et d'une surveillance plus agressive. Les clés d'exécution ne doivent pas avoir d'autorité administrative, sauf en cas de raison spécifique et examinée.
Détecter les fuites et les utilisations anormales
La détection des fuites fonctionne mieux lorsque plusieurs systèmes se renforcent mutuellement. L'analyse secrète du contrôle de source peut détecter les clés validées dans les référentiels. Les contrôles CI peuvent bloquer les fuites évidentes avant la fusion. Les modèles personnalisés peuvent détecter les formats de clés internes. Les tableaux de bord des fournisseurs peuvent révéler une activité inhabituelle. La télémétrie de la passerelle peut afficher de nouvelles adresses IP, de nouvelles zones géographiques, des échecs d'authentification, une vitesse de dépense soudaine ou des appels vers des modèles inattendus.
Les tableaux de bord de sécurité utiles incluent les clés dormantes, les clés sans propriétaires, les clés sans limites, les clés en voie d'expiration, les clés utilisées à partir de nouveaux réseaux, les clés avec une croissance rapide des jetons, les clés gelées recevant toujours du trafic, les rafales d'authentification échouées et les clés client qui approchent des plafonds de dépenses.
La détection doit également couvrir les journaux et les systèmes asynchrones. Les webhooks, les tâches en arrière-plan, les files d'attente et les achèvements retardés nécessitent des ID de demande et une attribution de clé d'origine. Sinon, un rappel suspect ou un résultat de lot risque d'être impossible à relier à la clé et au locataire qui l'ont créé.
Lorsqu'un secret apparaît dans l'historique Git, le supprimer du référentiel ne suffit pas. Toute personne ayant accédé au référentiel, aux journaux de build, aux miroirs, aux forks, aux artefacts de package ou aux pages mises en cache a peut-être déjà copié la clé. L'identifiant doit être invalidé ou gelé, puis remplacé.
Réponse à une clé API compromise
Un bon plan de réponse aux incidents est court, répété et spécifique. La première décision est généralement de geler ou de révoquer. Le gel arrête rapidement le trafic tout en préservant le dossier pour l'enquête. La révocation désactive définitivement la clé. Certaines équipes utilisent le gel en premier lorsqu'elles ont besoin d'options de continuité d'audit et de restauration immédiate ; d’autres révoquent automatiquement les fuites publiques confirmées. Les deux approches nécessitent une automatisation et une autorité claire.
Un flux de réponse pratique ressemble à ceci :
- Gelez ou révoquez la clé suspecte en fonction de la gravité et de la confiance.
- Identifiez le propriétaire, le locataire, la charge de travail, les étendues, l'accès au modèle, la politique de dépenses et le calendrier de la dernière utilisation.
- Examinez l'utilisation des invites, modèles, points de terminaison, outils, adresses IP, volume de jetons et coûts inhabituels.
- Évaluez les données affectées, les locataires, actions en aval et impact sur la facturation.
- Émettez une clé de remplacement avec une portée et des limites corrigées.
- Supprimez la cause première, telle qu'un secret validé, un journal exposé, une variable CI trop large ou un ensemble côté client.
- Ajoutez un contrôle de prévention, tel qu'une analyse de secret, une rédaction de journal, des portées plus étroites, une expiration plus courte ou des alertes de dépenses.
- Documentez l'incident et mettez à jour. runbooks.
L'étape de remplacement ne doit pas recréer le même risque. Si une clé a fui parce qu'elle était partagée entre dix services, remplacez-la par des clés de compte de service distinctes. En cas de fuite dans les journaux, corrigez la journalisation avant d'émettre une nouvelle clé. S'il dépense trop, car il pourrait appeler tous les modèles, ajoutez des listes autorisées de modèles et des limites de dépenses.
Clés gérées par passerelle et accès à l'IA multifournisseur
Les équipes d'IA utilisent souvent plusieurs fournisseurs de modèles.Chaque fournisseur possède son propre modèle de clé, sa structure d'espace de travail, ses limites de débit, ses noms de modèle, ses tarifs et ses API d'administration. La gestion de chaque clé de fournisseur directement dans chaque application multiplie le risque opérationnel.
Un modèle de clé géré par une passerelle peut réduire cette complexité. Les applications appellent la passerelle avec une clé client ou interne. La passerelle authentifie l'appelant, applique la politique du locataire, applique les contrôles de modèle et de dépenses, enregistre l'utilisation et utilise les informations d'identification du fournisseur en amont côté serveur. Ceci est utile pour les applications multimodèles, les plates-formes internes, les agences et les services de revendeurs.
Pour Model Gate, c'est là que le rôle de passerelle est pertinent : clés centralisées destinées aux clients, analyses d'utilisation unifiées, contrôles d'équipe, limites de dépenses, sécurité IP, intégrations opérationnelles Telegram, automatisation des API partenaires et réponse aux abus. Pour les entreprises qui fournissent des clients ou des services en aval, l'automatisation des API partenaires peut rendre la création de clés, limiter les mises à jour, le gel et les flux de travail des revendeurs cohérents au lieu d'être manuels.
Une passerelle ne supprime pas toutes les responsabilités de l'équipe d'application. Vous avez toujours besoin d'un stockage sécurisé, d'une autorisation back-end, de l'isolation des locataires, de la conception des points de terminaison, de l'hygiène CI/CD, d'une politique de données d'invite et de réponse et de restrictions côté fournisseur le cas échéant. La passerelle devient un plan de contrôle de grande valeur, elle nécessite donc un stockage solide, des journaux d'audit, des contrôles d'accès, une planification de la disponibilité et une séparation administrative.
Erreurs courantes de gestion des clés API
Les erreurs les plus courantes sont prévisibles. Les équipes placent les clés du fournisseur directement dans les applications clientes. Ils utilisent une clé de production pour chaque service et client. Ils effectuent une rotation en supprimant d’abord et en déployant ensuite. Ils créent des clés sans propriétaires, limites, portées ou expiration. Ils enregistrent les en-têtes d’autorisation complets. Ils s’appuient uniquement sur les limites de débit pour contrôler les coûts de l’IA. Ils donnent les informations d’identification de l’administrateur des services d’exécution. Ils suppriment une clé divulguée de Git sans la révoquer. Ils excluent les employés mais laissent les clés personnelles, les fichiers d'environnement local et les variables CI actifs.
Une autre erreur subtile consiste à traiter la journalisation des invites et des réponses comme purement opérationnelle. Les journaux détaillés peuvent aider à enquêter sur les abus, mais ils peuvent également contenir des données personnelles, du contenu client, des secrets ou des informations réglementées. La journalisation axée sur les métadonnées est souvent plus sûre : capturez par défaut les empreintes digitales des clés, les ID de modèle, le nombre de jetons, les coûts, les codes d'état, les décisions politiques et les ID de demande, puis nécessitez un accès contrôlé pour des données de débogage plus approfondies.
Liste de contrôle de mise en œuvre
Un programme de gestion de clés API solide peut commencer par une liste de contrôle ciblée :
- Créez un inventaire de toutes les clés, propriétaires, environnements, locataires, étendues, limites et dernière utilisation. horodatages.
- Séparez les clés par environnement, charge de travail, locataire, client et classe d'informations d'identification.
- Déplacez les informations d'identification du fournisseur côté serveur et hors des navigateurs, des applications mobiles, des blocs-notes et des clients publics.
- Utilisez le moindre privilège pour les modèles, les points de terminaison, les outils, les locataires, les budgets et les fonctions administratives.
- Ajoutez des limites de dépenses, des limites de débit, des listes autorisées de modèles, des alertes d'anomalie et un gel d'urgence. contrôles.
- Stockez les secrets dans un gestionnaire de secrets, un coffre-fort, un magasin de variables CI protégé ou un système d'informations d'identification géré par une passerelle.
- Expurgez les secrets des journaux, des traces, des analyses, des outils de support, des webhooks et des rapports d'erreurs.
- Mettre en œuvre la rotation avec des clés qui se chevauchent, la surveillance de la dernière utilisation, le gel et la suppression finale.
- Intégrer l'analyse des secrets dans les référentiels et CI/CD, y compris les clés personnalisées modèles.
- Documentez le comportement de désintégration des clés personnelles, des comptes de service, des clés d'espace de travail et des clés client.
- Gardez les informations d'identification d'inférence d'exécution séparées des informations d'identification du fournisseur administratif.
- Testez la réponse aux incidents avant qu'une fuite réelle force le processus.
Conclusion
La gestion des clés d'API pour les API d'IA consiste à contrôler l'identité, l'autorité, le coût et le rayon d'action opérationnel. Une clé sécurisée n’est pas simplement une chaîne aléatoire. Il a un propriétaire, un objectif, une portée, un environnement, un budget, une expiration, un chemin de rotation, une piste d'audit et un plan de réponse aux incidents.
L'objectif pratique n'est pas de créer une bureaucratie autour de chaque demande. Il s'agit de rendre le travail normal plus sûr : les développeurs peuvent créer, les services peuvent fonctionner, les clients peuvent être provisionnés et les équipes de sécurité peuvent répondre à ce qui s'est passé en cas de fuite d'une clé ou de pics de dépenses. Commencez par l'inventaire et les limites, puis ajoutez le moindre privilège, le stockage sécurisé, la rotation, la surveillance et l'automatisation des réponses. Pour l'accès à l'IA multi-fournisseurs, une passerelle peut centraliser une grande partie de ce contrôle, mais l'autorisation des applications et l'hygiène des secrets restent des responsabilités d'ingénierie essentielles.