次の方法で共有


Azure Front Door 上の Azure Web Application Firewall を使用して Azure OpenAI を保護する

Azure OpenAI API を使用する企業が増え続ける中、Web アプリケーションに対するセキュリティ攻撃は絶えず増加し、複雑化しています。 Azure OpenAI API をさまざまな Web アプリケーション攻撃から保護するには、強力なセキュリティ戦略が必要です。

Azure Web Application Firewall (WAF) は、OWASP 上位 10 件のさまざまな Web 攻撃、共通脆弱性および露出 (CVE)、悪意のあるボット攻撃から Web アプリケーションと API を保護する Azure ネットワーク製品です。

この記事では、Azure Front Door 上の Azure Web Application Firewall (WAF) を使用して Azure OpenAI エンドポイントを保護する方法について説明します。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

gpt-35-turbo モデルを使用して Azure OpenAI インスタンスを作成する

まず、OpenAI インスタンスを作成します。

  1. Azure OpenAI インスタンスを作成し、「Azure OpenAI Service リソースの作成とデプロイ」を使用して gpt-35-turbo モデルをデプロイします。

  2. Azure OpenAI エンドポイントと API キーを特定します。

    Azure OpenAI スタジオを開き、[プレイグラウンド] の下にある [チャット] オプションを開きます。 [コードの表示] オプションを使用して、エンドポイントと API キーを表示します。 Azure AI Studio の [チャット プレイグラウンド] を示すスクリーンショット。

    エンドポイントとキーのある Azure OpenAI サンプル コードを示すスクリーンショット。

  3. Visual StudioInsomnia などのお好みの API テスト メソッドを使用して、Azure OpenAI 呼び出しを検証します。 前のステップで見つかった Azure OpenAPI エンドポイントと API キーの値を使用します。 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 portal を使用して、Azure WAF を含む Azure Front Door インスタンスを作成します。

  1. 関連付けられた WAF セキュリティ ポリシーを使用して、同じリソース グループに Azure Front Door Premium 最適化レベルを作成します。 [カスタム作成] オプションを使用します。

    1. クイックスタート: Azure Front Door プロファイルを作成する - Azure ポータル
  2. エンドポイントとルートを追加します。

  3. 配信元のホスト名を追加します: 配信元のホスト名は "testazureopenai.openai.azure.com" です。

  4. WAF ポリシーを追加します。

Web アプリケーションと API の脆弱性から保護するように WAF ポリシーを構成する

防止モードで 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. Visual StudioInsomnia などのお好みの API テスト メソッドを使用して、POST 要求を Azure Front Door エンドポイントに送信します。

    1. POST 要求の Azure OpenAI エンドポイントを 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: アクセス拒否" メッセージが表示されます。

    作成直後の Azure OpenAI エンドポイントに POST 要求を送信しようとすると、要求に正しい API キーがある場合でも、"401: アクセス拒否" メッセージが表示されることがあります。 この問題は通常、直接的な介入なしにしばらくすると解決されます。

  • Azure OpenAI エンドポイントに POST 要求を送信すると、"415: サポートされていないメディアの種類" メッセージが表示されます。

    Content-Type ヘッダー text/plain を使用して POST 要求を Azure OpenAI エンドポイントに送信しようとすると、このメッセージが表示されます。 テストのヘッダー セクションで、必ず Content-Type ヘッダー を application/json に更新してください。