API La gestione delle chiavi non è più una piccola attività della dashboard. Per i team che utilizzano le API AI, fa parte del modello di sicurezza, costi e operazioni per ogni applicazione che invia prompt, riceve output del modello, richiama strumenti o spende denaro in inferenza misurata.
Molti team iniziano con una chiave del provider in un file di ambiente locale. Funziona finché la stessa chiave non appare nelle variabili CI, nei notebook, nelle estensioni IDE, negli agenti, nei processi batch, nelle integrazioni dei clienti e negli script di supporto. A quel punto, una chiave trapelata non è solo un problema di autenticazione. Può esporre richieste e risposte, attivare addebiti imprevisti, chiamare modelli premium, eseguire strumenti con autorità applicativa o far sì che la risposta agli incidenti dipenda da congetture.
Questa guida tratta la gestione delle chiavi API come un ciclo di vita: come le chiavi vengono progettate, emesse, archiviate, definite, monitorate, ruotate e revocate. Si concentra sull'accesso AI API, in cui ai consueti problemi di sicurezza API si aggiungono l'accesso al modello, la spesa basata su token, le credenziali multi-provider, l'attribuzione del cliente e i client compatibili con OpenAI.
Dove le chiavi API rientrano nella sicurezza API
Una chiave API di solito dimostra il possesso di una credenziale. Risponde alla domanda: "questo chiamante ha un segreto valido?" Di per sé, non risponde a tutte le domande di autorizzazione importanti.
Un backend deve comunque decidere se il chiamante può accedere a un particolare tenant, oggetto, modello, endpoint, strumento, area di lavoro, report o funzione amministrativa. OWASP API Sicurezza I 10 principali rischi, come l'autorizzazione a livello di oggetto non funzionante, l'autenticazione non funzionante, il consumo illimitato di risorse e l'autorizzazione a livello di funzione non funzionante, ricordano che una credenziale valida è solo un livello del sistema.
Per le API AI, questa distinzione è importante perché la stessa chiave potrebbe essere in grado di eseguire azioni con profili di rischio molto diversi. Una chiave che può chiamare un modello di testo a basso costo per un flusso di lavoro interno non dovrebbe essere automaticamente in grado di chiamare modelli premium, creare processi batch, accedere ai dati di un altro tenant, richiamare strumenti che inviano email o gestire le impostazioni di fatturazione.
Un modello di sicurezza durevole API separa tre preoccupazioni:
- Autenticazione: dimostrare che la richiesta ha una credenziale valida, token o sessione.
- Authorization: decidere cosa può fare il chiamante autenticato nel tenant, nell'ambiente e nel contesto aziendale corrente.
- Governance: limitare la spesa, la tariffa, l'accesso al modello, l'esposizione dei dati e il controllo amministrativo in modo che un errore abbia una portata limitata Le chiavi raggio.
API sono utili, ma non dovrebbero essere l'unico controllo che protegge risorse sensibili o di alto valore. Utilizzali con HTTPS, controlli di autorizzazione lato server, log di controllo, privilegio minimo, limiti di tariffa, limiti di spesa e gestione sicura dei segreti.
Inizia con un inventario di chiavi API attivo
Non puoi gestire chiavi a cui non puoi nominare. Il primo passaggio pratico è un inventario in tempo reale di ogni API chiave e oggetto simile a credenziale utilizzato dai tuoi sistemi di intelligenza artificiale.
Come minimo, ogni record di chiave deve includere un ID chiave, un hash o un'impronta digitale non reversibile, proprietario, creatore, team o tenant, ambiente, carico di lavoro, ambiti, modelli consentiti, endpoint consentiti, policy di spesa, policy tariffaria, restrizioni IP ove applicabili, stato, ora di creazione, scadenza, timestamp dell'ultimo utilizzo, gruppo di rotazione, e metadati di controllo.
L'inventario dovrebbe coprire qualcosa di più delle semplici chiavi di runtime di produzione.Includi chiavi personali dello sviluppatore, chiavi dell'account di servizio, chiavi CI/CD, chiavi dell'area di lavoro, chiavi del cliente o del tenant, chiavi gestite dal rivenditore, chiavi di fatturazione/report, credenziali amministrative API e credenziali del fornitore upstream.
I campi più importanti sono proprietà, scopo, ambito, ultimo utilizzo e policy di limitazione. Senza di essi, ogni futura attività di sicurezza diventa più lenta: offboarding, rotazione, risposta alle perdite, analisi dei costi e assistenza clienti.
Progettare deliberatamente i limiti delle chiavi
L'errore più grande API nella gestione delle chiavi è utilizzare una chiave oltre troppi limiti. All'inizio una chiave di produzione condivisa è conveniente, ma distrugge l'attribuzione e rende la revoca problematica. In caso di perdita, potresti dover interrompere il traffico per ogni servizio senza riuscire comunque a identificare quale carico di lavoro ha causato il problema.
I buoni confini chiave seguono la forma dell'azienda e del software. Separa la produzione dallo sviluppo, gli esseri umani dai servizi, i clienti dai team interni, i tenant gli uni dagli altri, le credenziali di runtime dalle credenziali amministrative e le chiavi del cliente emesse dal gateway dalle chiavi del fornitore upstream.
Confini dell'ambiente
Sviluppo, gestione temporanea e produzione devono utilizzare chiavi separate. Una chiave di sviluppo non dovrebbe raggiungere i dati di produzione o i budget di produzione. Una chiave di gestione temporanea non dovrebbe avere accesso ai carichi di lavoro attivi dei clienti a meno che non vi sia un motivo strettamente controllato.
Confini del carico di lavoro
Ogni servizio, lavoro batch, parco agenti, integrazione o attività pianificata deve avere la propria chiave o account di servizio. Ciò ti consente di rispondere a domande di base: quale carico di lavoro ha speso i soldi, quale servizio ha iniziato a non riuscire a autenticarsi, quale integrazione ha utilizzato un modello deprecato e quale chiave deve essere congelata durante un incidente.
Confini di tenant e cliente
I sistemi multi-tenant necessitano di attribuzione e isolamento. Se per inviare richieste viene utilizzata una chiave API rivolta al cliente, la richiesta deve essere collegata al cliente, al tenant, all'applicazione e, idealmente, a un utente finale o un attore pseudonimo. Una chiave compromessa per un tenant non dovrebbe consentire l'accesso ai dati, al profilo del modello, al budget o ai log di un altro tenant.
Limiti delle credenziali del fornitore
Le chiavi del fornitore a monte sono diverse dalle chiavi rilasciate ai clienti o alle applicazioni interne. Le credenziali del fornitore devono rimanere lato server, archiviate in un vault o in una gestione segreta e non essere mai inviate a browser, app mobili, client desktop, notebook pubblici o ambienti controllati dal cliente.
Un gateway può essere d'aiuto esponendo una superficie chiave rivolta al cliente e mantenendo le credenziali del fornitore upstream dietro il gateway. Ciò consente di centralizzare l'analisi dell'utilizzo, la revoca, i controlli del team e l'applicazione delle policy tra i fornitori. Se stai standardizzando i client attorno a un OpenAIcompatibile API, il limite del gateway diventa particolarmente importante perché molti strumenti si aspettano un unico URL di base e token di connessione.
Applica il privilegio minimo a modelli, endpoint, strumenti e spesa
Privilegio minimo significa che una chiave dovrebbe avere solo l'accesso richiesto per il suo carico di lavoro. Per i sistemi AI, l'ambito non è solo un elenco di API endpoint.Include anche modelli, strumenti, budget dei token, limiti di velocità, tenant, classi di dati e funzioni amministrative.
Una pratica policy chiave AI API può includere:
- Famiglie di modelli consentite o ID modello specifici.
- Endpoint consentiti, come completamenti di chat, incorporamenti, processi batch o generazione di immagini.
- API amministrative non consentite, API di gestione delle chiavi, API di fatturazione e API di gestione dell'area di lavoro per le chiavi runtime.
- Limiti di frequenza per chiave per richieste al minuto e token al minuto.
- Limiti di spesa per tenant, per team o per cliente.
- Il modello Premium controlla in modo che un flusso di lavoro a basso rischio non possa utilizzare all'improvviso quelli più costosi model.
- Autorizzazioni dello strumento, ad esempio se una chiave può chiamare connettori esterni, esecuzione di codice, sistemi di recupero o azioni aziendali.
- Liste consentite IP per carichi di lavoro stabili lato server, dove il percorso di rete è prevedibile.
Il controllo della spesa fa parte della API sicurezza per le API AI misurate. Una chiave trapelata può creare danni finanziari diretti anche se non accede mai a dati sensibili. I limiti tariffari aiutano, ma non sono sufficienti. Il volume dei token, i nuovi tentativi, i processi batch, le chiamate agli strumenti e la selezione del modello incidono tutti sui costi. Un'implementazione sicura dovrebbe combinare controlli delle tariffe con massimali di spesa, liste consentite di modelli, rilevamento di anomalie e controlli di blocco di emergenza.
I team che confrontano i costi dei modelli e le policy di accesso dovrebbero mantenere allineati sicurezza e finanza. La determinazione dei prezzi dei modelli non è solo una questione di approvvigionamento; determina quanto può spendere una chiave compromessa o configurata in modo errato. Mantieni i profili dei modelli approvati legati ai budget ed esaminali quando il mix di modelli cambia, soprattutto quando utilizzi Prezzi dei modelli AI per instradare i carichi di lavoro in base a costi e capacità.
Archivia i secret al loro posto
API le chiavi appartengono ai gestori dei secret, alla configurazione lato server, alle variabili CI/CD controllate o a un gateway supportato da vault. Non appartengono al codice sorgente, al browser JavaScript, ai bundle per dispositivi mobili, ai pacchetti di app desktop, ai taccuini pubblici, agli screenshot, ai messaggi di chat, ai payload di analisi, ai ticket di supporto o ai log.
L'esposizione lato client è una modalità di errore comune. Se una chiave del provider è incorporata in un browser o in un’app mobile, chiunque possa ispezionare l’app può estrarla ed effettuare richieste per conto del titolare dell’account. Per browser, app mobili, parchi istanze IDE e agenti in esecuzione in ambienti non controllati, utilizzare il proxy lato server o credenziali delegate di breve durata con ambito ristretto. Non distribuire credenziali di provider di lunga durata a client che non puoi controllare.
CI/CD richiede la stessa disciplina. Memorizza le chiavi come variabili protette. Limita chi può leggerli o modificarli. Evitare di stampare le variabili di ambiente nei log di build. Oscura Authorization intestazioni nei dump delle richieste non riuscite. Tratta le distribuzioni di anteprima e le richieste pull biforcate come zone di attendibilità diverse dalle pipeline di produzione protette.
I log e i sistemi di osservabilità meritano un'attenzione speciale. Archivia impronte digitali chiave, ID richiesta, ID tenant, ID modello, stato della risposta, contatori token, contatori costi, metadati IP o client, ove appropriato, e decisioni politiche. Non archiviare le chiavi API complete. Oscura i segreti in tracce, log del proxy inverso, report sulle eccezioni, payload webhook, strumenti di supporto, eventi di analisi e code di messaggi non recapitati.
Crea una rotazione prima dell'emergenza
La rotazione non significa semplicemente eliminare una chiave e crearne un'altra. Se i servizi distribuiti dipendono ancora dalla vecchia chiave, l'eliminazione provoca tempi di inattività. Un processo di rotazione affidabile utilizza la sovrapposizione, l'osservazione e un punto di ritiro chiaro.
Uno schema comune è un gruppo di rotazione con due slot attivi.Crea la chiave sostitutiva, distribuiscila su ogni sistema dipendente, osserva l'ultimo utilizzo della vecchia chiave, congela la vecchia chiave quando il traffico si è spostato ed eliminala dopo una finestra di confidenza. Mantieni esplicite le regole di rollback: quando è possibile riattivare la vecchia chiave, chi può approvarla e per quanto tempo può rimanere disponibile?
La breve durata della chiave riduce il rischio di credenziali obsolete, ma aumenta il carico operativo. Le chiavi di lunga durata riducono il tasso di abbandono della distribuzione, ma creano una finestra più ampia per credenziali dimenticate e lacune di offboarding dei dipendenti. La politica giusta dipende dal carico di lavoro. Un account di servizio di produzione di alto valore potrebbe ruotare secondo una pianificazione fissa con l'automazione. Una chiave sviluppatore temporanea dovrebbe scadere rapidamente. Un'integrazione gestita dal cliente potrebbe richiedere una finestra di migrazione più lunga e messaggi di deprecazione chiari.
Non ruotare tutte le chiavi allo stesso modo. Le credenziali amministrative che possono elencare, creare, eliminare o modificare le chiavi sono a rischio più elevato rispetto alle chiavi di inferenza di runtime e dovrebbero avere controlli più forti, accesso più ristretto e monitoraggio più aggressivo. Le chiavi di runtime non dovrebbero avere autorità amministrativa a meno che non vi sia un motivo specifico ed esaminato.
Rileva perdite e usi anomali
Il rilevamento delle perdite funziona meglio quando diversi sistemi si rafforzano a vicenda. La scansione segreta del controllo del codice sorgente può individuare le chiavi impegnate nei repository. I controlli CI possono bloccare le perdite evidenti prima della fusione. I modelli personalizzati possono rilevare i formati delle chiavi interne. I dashboard dei fornitori possono rivelare attività insolite. La telemetria del gateway può mostrare nuovi IP, nuove aree geografiche, burst di autenticazione non riusciti, velocità di spesa improvvisa o chiamate a modelli imprevisti.
Dashboard di sicurezza utili includono chiavi dormienti, chiavi senza proprietari, chiavi senza limiti, chiavi prossime alla scadenza, chiavi utilizzate da nuove reti, chiavi con rapida crescita dei token, chiavi bloccate che continuano a ricevere traffico, burst di autenticazione non riusciti e chiavi dei clienti che si avvicinano ai limiti di spesa.
Il rilevamento dovrebbe includere anche log e sistemi asincroni. Webhook, processi in background, code e completamenti ritardati richiedono ID di richiesta e attribuzione della chiave originale. In caso contrario, potrebbe essere impossibile ricollegare una richiamata o un risultato batch sospetto alla chiave e al tenant che lo hanno creato.
Quando un segreto appare nella cronologia Git, rimuoverlo dal repository non è sufficiente. Chiunque abbia effettuato l'accesso al repository, ai build log, ai mirror, ai fork, agli artefatti dei pacchetti o alle pagine memorizzate nella cache potrebbe aver già copiato la chiave. La credenziale deve essere invalidata o congelata, quindi sostituita.
Risposta a una API chiave compromessa
Un buon piano di risposta agli incidenti è breve, collaudato e specifico. La prima decisione è solitamente se congelare o revocare. Freeze blocca rapidamente il traffico preservando i record per le indagini. La revoca disabilita permanentemente la chiave. Alcuni team utilizzano prima il congelamento quando necessitano di continuità di audit e opzioni di rollback immediate; altri si revocano automaticamente per fughe di notizie pubbliche confermate. Entrambi gli approcci necessitano di automazione e autorità chiara.
Un flusso di risposta pratico è simile al seguente:
- Blocca o revoca la chiave sospetta in base alla gravità e alla confidenza.
- Identifica proprietario, tenant, carico di lavoro, ambiti, accesso al modello, policy di spesa e sequenza temporale dell'ultimo utilizzo.
- Esamina l'utilizzo di prompt, modelli, endpoint, strumenti, IP, volume dei token e costi.
- Valuta i dati interessati, i tenant, le azioni downstream e l'impatto sulla fatturazione.
- Emetti una chiave sostitutiva con ambito e limiti corretti.
- Rimuovi la causa principale, ad esempio un segreto impegnato, un log esposto, una variabile CI overbroad o un bundle lato client.
- Aggiungi un controllo di prevenzione, ad esempio scansione segreta, oscuramento dei log, ambiti più ristretti, scadenza più breve o avvisi di spesa.
- Documenta l'incidente e aggiorna i runbook.
Il passaggio di sostituzione non dovrebbe ricreare lo stesso rischio.Se una chiave è trapelata perché condivisa tra dieci servizi, sostituiscila con chiavi di account di servizio separate. Se è trapelato dai log, correggi la registrazione prima di emettere una nuova chiave. Se ha speso troppo perché potrebbe chiamare ogni modello, aggiungi liste consentite di modelli e limiti di spesa.
Chiavi gestite dal gateway e accesso AI multi-provider
I team AI spesso utilizzano diversi fornitori di modelli. Ogni fornitore ha il proprio modello chiave, struttura dell'area di lavoro, limiti di velocità, nomi di modelli, prezzi e API amministrative. La gestione di ogni chiave del provider direttamente in ogni applicazione moltiplica il rischio operativo.
Un modello di chiave gestito dal gateway può ridurre tale complessità. Le applicazioni chiamano il gateway con una chiave interna o rivolta al cliente. Il gateway autentica il chiamante, applica i criteri del tenant, applica i controlli del modello e della spesa, registra l'utilizzo e utilizza le credenziali del provider upstream sul lato server. Ciò è utile per applicazioni multimodello, piattaforme interne, agenzie e servizi di rivenditori.
Per Model Gate, è qui che il ruolo del gateway è rilevante: chiavi centralizzate rivolte al cliente, analisi di utilizzo unificate, controlli del team, limiti di spesa, sicurezza IP, Telegram integrazioni operative, automazione dei partner API e risposta agli abusi. Per le aziende che forniscono servizi ai clienti o a valle, l'automazione del Partner API può rendere coerenti invece che manuali la creazione di chiavi, la limitazione degli aggiornamenti, il blocco e i flussi di lavoro del rivenditore.
Un gateway non rimuove ogni responsabilità dal team dell'applicazione. Sono comunque necessari storage sicuro, autorizzazione backend, isolamento dei tenant, progettazione degli endpoint, igiene CI/CD, policy sui dati di prompt e risposta e restrizioni lato provider, ove disponibili. Il gateway diventa un piano di controllo di alto valore, quindi necessita di un potente vaulting, log di controllo, controlli di accesso, pianificazione della disponibilità e separazione amministrativa.
APIErrori comuni nella gestione delle chiavi
Gli errori più comuni sono prevedibili. I team inseriscono le chiavi del provider direttamente nelle app client. Usano una chiave di produzione per ogni servizio e cliente. Ruotano eliminando prima e distribuendo successivamente. Creano chiavi senza proprietari, limiti, ambiti o scadenza. Registrano le intestazioni Authorization complete. Si affidano esclusivamente ai limiti tariffari per il controllo dei costi dell’IA. Forniscono le credenziali di amministratore dei servizi runtime. Rimuovono una chiave trapelata da Git senza revocarla. Escludono i dipendenti, ma lasciano attive le chiavi personali, i file dell'ambiente locale e le variabili CI.
Un altro sottile errore è considerare la registrazione dei prompt e delle risposte come puramente operativa. I registri dettagliati possono aiutare a indagare sugli abusi, ma possono anche contenere dati personali, contenuti dei clienti, segreti o informazioni regolamentate.La registrazione innanzitutto dei metadati è spesso più sicura: acquisisci impronte digitali delle chiavi, ID dei modelli, conteggi dei token, costi, codici di stato, decisioni sulle policy e ID delle richieste per impostazione predefinita, quindi richiedi un accesso controllato per dati di debug più approfonditi.
Elenco di controllo per l'implementazione
Un programma di gestione delle chiavi API efficace può iniziare con un elenco di controllo mirato:
- Crea un inventario di tutte le chiavi, proprietari, ambienti, tenant, ambiti, limiti e timestamp dell'ultimo utilizzo.
- Chiavi separate per ambiente, carico di lavoro, tenant, cliente e classe di credenziali.
- Sposta le credenziali del provider lato server e all'esterno di browser, app mobili, notebook e client pubblici.
- Utilizza privilegi minimi per modelli, endpoint, strumenti, tenant, budget e controlli amministrativi funzioni.
- Aggiungi limiti di spesa, limiti di frequenza, liste consentite di modelli, avvisi di anomalie e controlli di blocco di emergenza.
- Archivia i segreti in un gestore dei segreti, un vault, un archivio di variabili CI protetto o un sistema di credenziali gestito dal gateway.
- Annulla i segreti da log, tracce, analisi, strumenti di supporto, webhook ed errori report.
- Implementa la rotazione con chiavi sovrapposte, monitoraggio dell'ultimo utilizzo, blocco ed eliminazione finale.
- Integra la scansione segreta nei repository e CI/CD, inclusi modelli di chiavi personalizzati.
- Documenta il comportamento di offboarding per chiavi personali, account di servizio, chiavi dell'area di lavoro e chiavi del cliente.
- Mantieni le credenziali di inferenza di runtime separate da quelle amministrative credenziali del fornitore.
- Testare la risposta all'incidente prima che una vera fuga di notizie forza l'avvio del processo.
Conclusione
API La gestione delle chiavi per le API AI riguarda il controllo dell'identità, dell'autorità, dei costi e del raggio di azione operativo. Una chiave sicura non è solo una stringa casuale. Ha un proprietario, uno scopo, un ambito, un ambiente, un budget, una scadenza, un percorso di rotazione, un audit trail e un piano di risposta agli incidenti.
L'obiettivo pratico non è creare burocrazia attorno a ogni richiesta. Lo scopo è rendere il lavoro normale più sicuro: gli sviluppatori possono creare, i servizi possono essere eseguiti, i clienti possono essere forniti e i team di sicurezza possono rispondere a cosa è successo quando una chiave viene divulgata o aumenta la spesa. Inizia con inventario e limiti, quindi aggiungi privilegi minimi, archiviazione sicura, rotazione, monitoraggio e automazione della risposta. Per l'accesso all'intelligenza artificiale multi-provider, un gateway può centralizzare gran parte di tale controllo, ma l'autorizzazione delle applicazioni e l'igiene segreta rimangono ancora responsabilità ingegneristiche fondamentali.