Proteggere Azure OpenAI con Azure Web application firewall 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 di sicurezza contro le applicazioni Web è in continua evoluzione. È necessaria una strategia di sicurezza complessa per proteggere le API OpenAI di Azure da vari attacchi alle applicazioni Web.
Azure Web application firewall (WAF) è un prodotto di rete di Azure che protegge le applicazioni Web e le API da vari attacchi Web OWASP top 10, vulnerabilità comuni ed esposizione (CVE) e attacchi di bot dannosi.
Questo articolo descrive come usare Azure Web application firewall (WAF) 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 OpenAI di Azure usando Postman. Usare l'endpoint OpenAPI di Azure e i valori chiave api trovati 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 al 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 la 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 da proteggere dalle vulnerabilità dell'applicazione Web e dell'API
Abilitare i criteri WAF in modalità di prevenzione e assicurarsi che siano abilitati Microsoft_DefaultRuleSet_2.1 e Microsoft_BotManagerRuleSet_1.0 .
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 Postman per inviare una richiesta POST all'endpoint 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 nell'endpoint OpenAI di Azure. WAF blocca la chiamata con un codice di risposta vietato 403 .
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 averla creata, è possibile ricevere 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 nellaapplication/json
sezione intestazione in Postman.