你当前正在访问 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 十大 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 Studio 聊天操场的屏幕截图。

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

  3. 使用你喜欢的 API 测试方法(如 Visual StudioInsomnia)验证 Azure OpenAI 调用。 使用在前面步骤中找到的 Azure OpenAPI 终结点和 api-key 值。 在 POST 正文中使用以下代码行:

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

    显示 POST 正文的屏幕截图。

  4. 在对 POST 的响应中,应会收到 200 OK显示 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。

显示 WAF 策略的屏幕截图。

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

现在,请验证 Azure Front Door 终结点。

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

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

  2. 使用你喜欢的 API 测试方法(如 Visual StudioInsomnia)将 POST 请求发送到 Azure Front Door 终结点。

    1. 将 Azure OpenAI 终结点替换为 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 终结点,则会收到此消息。 确保在测试中将标头部分的 Content-Type 标头更新为 application/json