Защита Azure OpenAI с помощью azure Брандмауэр веб-приложений в Azure Front Door

Растет число предприятий, использующих API Azure OpenAI, а количество и сложность атак на веб-приложения постоянно возрастают. Для защиты API OpenAI Azure от различных атак на веб-приложения необходима строжайкая стратегия безопасности.

Azure Брандмауэр веб-приложений (WAF) — это сетевой продукт Azure, который защищает веб-приложения и API от различных 10 веб-атак OWASP, распространенных уязвимостей и уязвимостей (CVEs) и вредоносных атак ботов.

В этой статье описывается, как использовать azure Брандмауэр веб-приложений (WAF) в Azure Front Door для защиты конечных точек Azure OpenAI.

Предварительные требования

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.

Создание экземпляра Azure OpenAI с помощью модели gpt-35-turbo

Сначала создайте экземпляр OpenAI.

  1. Создайте экземпляр Azure OpenAI и разверните модель gpt-35-turbo с помощью команды Создание и развертывание ресурса службы Azure OpenAI.

  2. Определите конечную точку Azure OpenAI и ключ API.

    Откройте студию Azure OpenAI и откройте параметр Чат в разделе Тестовая площадка. Используйте параметр Просмотреть код для отображения конечной точки и ключа API. Снимок экрана: тестовая площадка чата Azure AI Studio.

    Снимок экрана: пример кода Azure OpenAI с конечной точкой и ключом.

  3. Проверка вызова Azure OpenAI с помощью Postman. Используйте конечную точку Azure OpenAPI и значения ключа API, найденные на предыдущих шагах. Используйте следующие строки кода в тексте POST:

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

    Снимок экрана: текст публикации.

  4. В ответ на запрос POST вы получите сообщение 200 OK: снимок экрана, показывающий POST 200 OK.

    Azure OpenAI также создает ответ с помощью модели GPT.

Создание экземпляра Azure Front Door с помощью Azure WAF

Теперь используйте портал Azure для создания экземпляра Azure Front Door с помощью Azure WAF.

  1. Создайте оптимизированный для Azure Front Door уровень "Премиум" с связанной политикой безопасности WAF в той же группе ресурсов. Используйте параметр Пользовательское создание .

    1. Краткое руководство. Создание профиля Azure Front Door на портале Azure
  2. Добавьте конечные точки и маршруты.

  3. Добавьте имя узла источника. Имя узла источника — testazureopenai.openai.azure.com.

  4. Добавьте политику WAF.

Настройка политики WAF для защиты от уязвимостей веб-приложений и API

Включите политику WAF в режиме предотвращения и убедитесь, что включены Microsoft_DefaultRuleSet_2.1 и Microsoft_BotManagerRuleSet_1.0 .

Снимок экрана: политика WAF.

Проверка доступа к Azure OpenAI через конечную точку Azure Front Door

Теперь проверьте конечную точку Azure Front Door.

  1. Получите конечную точку Azure Front Door из диспетчера Front Door.

    Снимок экрана: конечная точка Azure Front Door.

  2. Используйте Postman для отправки запроса POST в конечную точку Azure Front Door.

    1. Замените конечную точку Azure OpenAI конечной точкой AFD в запросе Postman POST. Снимок экрана: окончательная запись POST.

    Azure OpenAI также создает ответ с помощью модели GPT.

Проверка блокировки WAF атаки OWASP

Отправка запроса POST, имитирующего атаку OWASP на конечную точку Azure OpenAI. WAF блокирует вызов с помощью кода ответа 403 Forbidden .

Настройка правил ограничения IP-адресов с помощью WAF

Сведения о том, как ограничить доступ к конечной точке Azure OpenAI необходимыми IP-адресами, см. в статье Настройка правила ограничения IP-адресов с помощью WAF для Azure Front Door.

Распространенные проблемы

Ниже приведены распространенные проблемы, которые могут возникнуть при использовании Azure OpenAI с Azure Front Door и Azure WAF.

  • Сообщение 401: Отказано в доступе при отправке запроса POST в конечную точку Azure OpenAI.

    При попытке отправить запрос POST в конечную точку Azure OpenAI сразу после ее создания вы можете получить сообщение 401: Отказано в доступе , даже если в запросе указан правильный ключ API. Эта проблема обычно решается через некоторое время без какого-либо прямого вмешательства.

  • При отправке запроса POST в конечную точку Azure OpenAI отображается сообщение 415: неподдерживаемый тип носителя .

    При попытке отправить запрос POST в конечную точку Azure OpenAI с помощью заголовка text/plainContent-Type вы получите это сообщение. Обязательно обновите заголовок Content-Type до application/json в разделе заголовка Postman.