你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 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) 以及恶意机器人攻击。

本文介绍如何使用 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 工作室,然后打开“操场”下的“聊天”选项。 使用“查看代码”选项可显示终结点和 API 密钥。 显示 Azure AI 工作室“聊天”操场的屏幕截图。

    显示具有终结点和密钥的 Azure OpenAI 示例代码的屏幕截图。

  3. 使用 Postman 验证 Azure OpenAI 调用。 使用在前面步骤中找到的 Azure OpenAPI 终结点和 api-key 值。 在 POST 正文中使用以下代码行:

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

    显示 POST 正文的屏幕截图。

  4. 作为对 POST 的响应,你应该会收到消息“200 正常”:显示 POST“200 正常”的屏幕截图。

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

显示 WAF 策略的屏幕截图。

通过 Azure Front Door 终结点验证对 Azure OpenAI 的访问

现在验证 Azure Front Door 终结点。

  1. 从 Front Door 管理器检索 Azure Front Door 终结点。

    显示 Azure Front Door 终结点的屏幕截图。

  2. 使用 Postman 将 POST 请求发送到 Azure Front Door 终结点。

    1. 将 Azure OpenAI 终结点替换为 Postman POST 请求中的 AFD 终结点。 显示最终 POST 的屏幕截图。

    Azure OpenAI 还会使用 GPT 模型生成响应。

验证 WAF 是否会阻止 OWASP 攻击

发送在 Azure OpenAI 终结点上模拟 OWASP 攻击的 POST 请求。 WAF 使用“403 禁止响应”代码阻止调用。

使用 WAF 配置 IP 限制规则

若要将对 Azure OpenAI 终结点的访问限制为所需的 IP 地址,请参阅配置 Azure Front Door 的 WAF 的 IP 限制规则

常见问题

以下各项是将 Azure OpenAI 与 Azure Front Door 和 Azure WAF 配合使用时可能会遇到的常见问题。

  • 向 Azure OpenAI 终结点发送 POST 请求时,你会收到消息““401:访问被拒绝”。

    如果在创建 POST 请求后立即尝试将它发送到 Azure OpenAI 终结点,则即使请求中有正确的 API 密钥,你也可能会收到消息““401:访问被拒绝”。 此问题通常会在一段时间后自行解决,无需任何直接干预。

  • 向 Azure OpenAI 终结点发送 POST 请求时,你会收到消息““415:不支持的媒体类型”。

    如果尝试使用 Content-Type 标头 text/plain 将 POST 请求发送到 Azure OpenAI 终结点,则会收到此消息。 确保在 Postman 的标头部分中将 Content-Type 标头更新为 application/json