Share via


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.

  1. Creare un'istanza di Azure OpenAI e distribuire un modello gpt-35-turbo usando Creare e distribuire una risorsa del servizio Azure OpenAI.

  2. 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. Screenshot che mostra il parco giochi chat di Azure AI Studio.

    Screenshot che mostra il codice di esempio di Azure OpenAI con Endpoint e Key.

  3. 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?"
    }
    ]
    }
    
    

    Screenshot che mostra il corpo del post.

  4. In risposta al POST, si dovrebbe ricevere un 200 OK: screenshot che mostra l'OK POST 200.

    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.

  1. 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 .

    1. Avvio rapido: Creare un profilo frontdoor di Azure - portale di Azure
  2. Aggiungere endpoint e route.

  3. Aggiungere il nome host di origine: il nome host di origine è testazureopenai.openai.azure.com.

  4. 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 .

Screenshot che mostra un criterio WAF.

Verificare l'accesso ad Azure OpenAI tramite l'endpoint frontdoor di Azure

Verificare ora l'endpoint di Frontdoor di Azure.

  1. Recuperare l'endpoint frontdoor di Azure da Frontdoor Manager.

    Screenshot che mostra l'endpoint di Frontdoor di Azure.

  2. Usare Postman per inviare una richiesta POST all'endpoint frontdoor di Azure.

    1. Sostituire l'endpoint OpenAI di Azure con l'endpoint AFD nella richiesta Postman POST. Screenshot che mostra il POST finale.

    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/plainContent-Type , viene visualizzato questo messaggio. Assicurarsi di aggiornare l'intestazione Content-Type nella application/json sezione intestazione in Postman.