Proteggere Azure OpenAI usando Web application firewall di Azure in Frontdoor di Azure
Ci sono un numero crescente di aziende che usano le API OpenAI di Azure e il numero e la complessità degli attacchi alla sicurezza contro le applicazioni Web è in continua evoluzione. Una strategia di sicurezza avanzata è necessaria per proteggere le API OpenAI di Azure da diversi attacchi alle applicazioni Web.
Web application firewall (WAF) di Azure è un prodotto di rete di Azure che protegge le applicazioni Web e le API da vari attacchi Web OWASP principali 10, vulnerabilità comuni ed esposizioni (CVE) e attacchi di bot dannosi.
Questo articolo descrive come usare Web application firewall (WAF) di Azure in Frontdoor di Azure per proteggere gli endpoint OpenAI di Azure.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Creare un'istanza di Azure OpenAI usando il modello gpt-35-turbo
Creare prima di tutto un'istanza OpenAI.
Creare un'istanza di Azure OpenAI e distribuire un modello gpt-35-turbo usando Creare e distribuire una risorsa del servizio Azure OpenAI.
Identificare l'endpoint OpenAI di Azure e la chiave API.
Aprire Azure OpenAI Studio e aprire l'opzione Chat in Playground. Usare l'opzione Visualizza codice per visualizzare l'endpoint e la chiave API.
Convalidare la chiamata di Azure OpenAI usando il metodo di test dell'API preferito, ad esempio Visual Studio o Insonnia. Usare i valori dell'endpoint OpenAPI di Azure e della chiave API disponibili nei passaggi precedenti. Usare queste righe di codice nel corpo POST:
{ "model":"gpt-35-turbo", "messages": [ { "role": "user", "content": "What is Azure OpenAI?" } ] }
In risposta a POST, si dovrebbe ricevere un 200 OK:
Azure OpenAI genera anche una risposta usando il modello GPT.
Creare un'istanza di Frontdoor di Azure con Azure WAF
Usare ora il portale di Azure per creare un'istanza di Frontdoor di Azure con Azure WAF.
Creare un livello ottimizzato per Frontdoor di Azure con un criterio di sicurezza WAF associato nello stesso gruppo di risorse. Usare l'opzione Creazione personalizzata .
Aggiungere endpoint e route.
Aggiungere il nome host di origine: il nome host di origine è
testazureopenai.openai.azure.com
.Aggiungere i criteri WAF.
Configurare un criterio WAF per la protezione da vulnerabilità dell'applicazione Web e delle API
Abilitare i criteri WAF in modalità di prevenzione e assicurarsi che Microsoft_DefaultRuleSet_2.1 e Microsoft_BotManagerRuleSet_1.0 siano abilitati.
Verificare l'accesso ad Azure OpenAI tramite l'endpoint frontdoor di Azure
Verificare ora l'endpoint di Frontdoor di Azure.
Recuperare l'endpoint frontdoor di Azure da Frontdoor Manager.
Usare il metodo di test dell'API preferito, ad esempio Visual Studio o Insomnia , per inviare una richiesta POST all'endpoint di Frontdoor di Azure.
Azure OpenAI genera anche una risposta usando il modello GPT.
Convalidare waf blocca un attacco OWASP
Inviare una richiesta POST simulando un attacco OWASP sull'endpoint OpenAI di Azure. WAF blocca la chiamata con un codice di risposta 403 Non consentito.
Configurare le regole di restrizione IP tramite WAF
Per limitare l'accesso all'endpoint OpenAI di Azure agli indirizzi IP necessari, vedere Configurare una regola di restrizione IP con un WAF per Frontdoor di Azure.
Problemi comuni
Gli elementi seguenti sono problemi comuni che possono verificarsi quando si usa Azure OpenAI con Frontdoor di Azure e Azure WAF.
Viene visualizzato un messaggio 401: Accesso negato quando si invia una richiesta POST all'endpoint OpenAI di Azure.
Se si tenta di inviare una richiesta POST all'endpoint OpenAI di Azure immediatamente dopo averlo creato, è possibile che venga visualizzato un messaggio 401: Accesso negato anche se nella richiesta è presente la chiave API corretta. Questo problema si risolverà in genere dopo qualche tempo senza alcun intervento diretto.
Viene visualizzato un messaggio 415: Tipo di supporto non supportato quando si invia una richiesta POST all'endpoint OpenAI di Azure.
Se si tenta di inviare una richiesta POST all'endpoint OpenAI di Azure con l'intestazione
text/plain
Content-Type , viene visualizzato questo messaggio. Assicurarsi di aggiornare l'intestazione Content-Type inapplication/json
nella sezione intestazione del test.