共用方式為


在 Azure Front Door 上使用 Azure Web 應用程式防火牆保護 Azure OpenAI

有越來越多的企業使用 Azure OpenAI API,而針對 Web 應用程式的安全性攻擊數量和複雜度也在不斷演進。 必須有強大的安全性策略,才能保護 Azure OpenAI API 免受各種 Web 應用程式攻擊。

Azure Web 應用程式防火牆 (WAF) 是 Azure 網路產品,可保護 Web 應用程式和 API 免於各種 OWASP 前 10 大 Web 攻擊、常見的弱點與漏洞 (CVE) 和惡意 Bot 攻擊。

本文說明如何在 Azure Front Door 上使用 Azure Web 應用程式防火牆 (WAF) 保護 Azure OpenAI 端點。

必要條件

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

使用 gpt-35-turbo 模型建立 Azure OpenAI 執行個體

首先,建立一個 OpenAI 執行個體。

  1. 使用建立和部署 Azure OpenAI 服務資源 (部分機器翻譯) 來建立 Azure OpenAI 執行個體並部署 gpt-35-turbo 模型。

  2. 識別 Azure OpenAI 端點和 API 金鑰。

    開啟 Azure OpenAI Studio,然後開啟 [遊樂場] 下的 [聊天] 選項。 使用 [檢視程式碼] 選項來顯示端點和 API 金鑰。 Screenshot showing Azure AI Studio Chat playground.

    Screenshot showing Azure OpenAI sample code with Endpoint and Key.

  3. 使用 Postman 驗證 Azure OpenAI 呼叫。 使用在先前步驟中找到的 Azure OpenAPI 端點和 API 金鑰值。 在 POST 本文中使用這些程式碼:

    {
    "model":"gpt-35-turbo",
    "messages": [
    {
    "role": "user",
    "content": "What is Azure OpenAI?"
    }
    ]
    }
    
    

    Screenshot showing the post body.

  4. 為了回應 POST,您應該會收到 200 OKScreenshot showing the POST 200 OK.

    Azure OpenAI 也會使用 GPT 模型產生回應。

使用 Azure WAF 建立 Azure Front Door 執行個體

現在,使用 Azure 入口網站搭配 Azure WAF 來建立 Azure Front Door 執行個體。

  1. 在相同的資源群組中,建立具有相關聯 WAF 安全性原則的 Azure Front Door 進階最佳化階層。 使用 [自訂建立] 選項。

    1. 快速入門:建立 Azure Front Door 設定檔 - Azure 入口網站
  2. 新增端點和路由。

  3. 新增原始主機名稱:原始主機名稱為 testazureopenai.openai.azure.com

  4. 新增 WAF 原則。

設定 WAF 原則以抵禦 Web 應用程式與 API 的弱點

在 [預防] 模式中啟用 WAF 原則,並確定已啟用 [Microsoft_DefaultRuleSet_2.1] 和 [Microsoft_BotManagerRuleSet_1.0]

Screenshot showing a WAF policy.

透過 Azure Front Door 端點驗證 Azure OpenAI 的存取權

現在,驗證您的 Azure Front Door 端點。

  1. 從 Front Door Manager 擷取 Azure Front Door 端點。

    Screenshot showing the Azure Front Door endpoint.

  2. 使用 Postman 將 POST 要求傳送至 Azure Front Door 端點。

    1. 以 Postman POST 要求中的 AFD 端點取代 Azure OpenAI 端點。 Screenshot showing the final POST.

    Azure OpenAI 也會使用 GPT 模型產生回應。

驗證 WAF 封鎖 OWASP 攻擊

在 Azure OpenAI 端點上傳送模擬 OWASP 攻擊的 POST 要求。 WAF 會使用「403 禁止」回應碼來封鎖呼叫。

使用 WAF 設定 IP 限制規則

若要將 Azure OpenAI 端點的存取限於必要的 IP 位址,請參閱使用 WAF 為 Azure Front Door 設定 IP 限制規則

常見問題

下列項目是搭配 Azure Front Door 和 Azure WAF 使用 Azure OpenAI 時可能會遇到的常見問題。

  • 當您將 POST 要求傳送至 Azure OpenAI 端點時,您會收到「401:拒絕存取」訊息。

    若您在建立 POST 要求後立即嘗試將 POST 要求傳送至 Azure OpenAI 端點,您可能會收到「401:拒絕存取」訊息,即使您的要求中有正確的 API 金鑰也一樣。 此問題通常會在一段時間後自行解決,不需要任何直接介入。

  • 當您將 POST 要求傳送至 Azure OpenAI 端點時,您會收到「415:不支援的媒體類型」訊息。

    若您嘗試將 POST 要求傳送至具有 Content-Type 標頭 text/plain 的 Azure OpenAI 端點,您會收到此訊息。 請務必將 Content-Type 標頭更新為 Postman 標頭區段中的 application/json