ネットワーク分離の推奨設定

QnA Maker リソースへのパブリック アクセスを制限するには、次の手順に従います。 仮想ネットワークを構成 して、Azure AI サービス リソースをパブリック アクセスから保護します。

Note

QnA Maker サービスは、2025 年 3 月 31 日に廃止される予定です。 Azure AI Language の一部として、質問応答機能の新しいバージョンが提供されました。 言語サービス内の質問応答機能については、質問応答に関する記事を参照してください。 QnA Maker の新しいリソースは、2022 年 10 月 1 日以降作成できません。 既存の QnA Maker のナレッジ ベースを質問応答に移行する方法については、移行ガイドを参照してください。

App Service (QnA runtime) へのアクセスを制限する

ServiceTag CognitiveServicesMangement を使用すると、App Service または ASE (App Service Environment) のネットワーク セキュリティ グループの受信規則の受信アクセスを制限することができます。 サービス タグの詳細については、「仮想ネットワーク サービス タグ」の記事を参照してください。

通常の App Service

  1. Azure portal から Cloud Shell (PowerShell) を開きます。
  2. ページの下部にある PowerShell ウィンドウで、次のコマンドを実行します。
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "<resource group name>" -WebAppName "<app service name>" -Name "Cognitive Services Tag" -Priority 100 -Action Allow -ServiceTag "CognitiveServicesManagement" 
  1. 追加されたアクセス規則が [ネットワーク] タブの [アクセス制限] セクションに存在することを確認します。

    Screenshot of access restriction rule

  2. https://qnamaker.ai ポータルのテスト ペインにアクセスするには、ポータルにアクセスするマシンのパブリック IP アドレスを追加します。 [アクセス制限] ページから [ルールの追加] を選択し、クライアント IP へのアクセスを許可します。

    Screenshot of access restriction rule with the addition of public IP address

App Service からの送信アクセス

QnA Maker App Service には、次のエンドポイントへの送信アクセスが必要です。 送信トラフィックに対する何らかの制限がある場合は、許可リストに追加されていることを確認してください。

QnA Maker App Service をホストするように App Service Environment を構成する

App Service Environment (ASE) を使用して、QnA Maker App Service のインスタンスをホストできます。 次の手順に従います。

  1. 新しい Azure AI Search リソースを作成します。

  2. App Service を使用して外部 ASE を作成します。

    • 手順については、この App Service のクイックスタートに従います。 このプロセスには最大で 1 から 2 時間かかります。
    • 最後に、App Service エンドポイントが https://<app service name>.<ASE name>.p.azurewebsite.net のように表示されます。
    • 例: https:// mywebsite.myase.p.azurewebsite.net
  3. 次の App Service の構成を追加します。

    名前
    PrimaryEndpointKey <app service name>-PrimaryEndpointKey
    AzureSearchName <Azure AI Search Resource Name from step #1>
    AzureSearchAdminKey <Azure AI Search Resource admin Key from step #1>
    QNAMAKER_EXTENSION_VERSION latest
    DefaultAnswer no answer found
  4. https://qnamaker.ai ポータルのテスト ペインへのアクセスを許可するには、CORS origin "*" を App Service に追加します。 CORS は、[App Service] ペインの API ヘッダーの下にあります。

    Screenshot of CORS interface within App Service UI

  5. Azure Resource Manager を使用して QnA Maker Azure AI サービス インスタンス (Microsoft.CognitiveServices/accounts) を作成します。 QnA Maker エンドポイントは、上で作成した App Service エンドポイント (https:// mywebsite.myase.p.azurewebsite.net) に設定する必要があります。 参照用に使用できるサンプル Azure Resource Manager テンプレートはこちらです。

QnA Maker を内部 ASE にデプロイすることはできますか。

外部 ASE を使用する主な理由は、QnAMaker サービス バックエンド (オーサリング API) をインターネット経由で App Service に接続するようにできるためです。 ただし、CognitiveServicesManagement サービス タグに関連付けられたアドレスからの接続のみを許可するように受信アクセス制限を追加することで、引き続き保護することができます。

それでも内部 ASE を使用したい場合は、アプリ ゲートウェイの DNS TLS/SSL 証明書を使用して、その特定の QnA Maker アプリをパブリック ドメインの ASE で公開する必要があります。詳細については、App Services の Enterprise デプロイに関する記事を参照してください。

Cognitive Search リソースへのアクセスを制限する

Cognitive Search インスタンスは、QnA Maker リソースの作成後、プライベート エンドポイントを介して分離できます。 アクセスをロック ダウンするには、次の手順に従います。

  1. 新しい仮想ネットワーク (VNet) を作成するか、既存の ASE (App Service Environment) の VNet を使用します。

  2. VNet リソースを開き、 [サブネット] タブで 2 つのサブネットを作成します。 1 つは App Service 用 (appservicesubnet) で、もう 1 つは委任なしの Cognitive Search リソース用のサブネット (searchservicesubnet) です。

    Screenshot of virtual networks subnets UI interface

  3. Cognitive Search サービス インスタンスの [ネットワーク] タブに移動し、エンドポイント接続データをパブリックからプライベートに切り替えます。 この操作は実行時間の長いプロセスであり、完了するまで最大で 30 分かかることがあります

    Screenshot of networking UI with public/private toggle button

  4. 検索リソースをプライベートに切り替えたら、 [プライベート エンドポイントの追加] を選択します。

    • [基本] タブ: 検索リソースと同じリージョンにエンドポイントを作成していることを確認します。
    • [リソース] タブ: 必要な検索リソースの種類 Microsoft.Search/searchServices を選択します。

    Screenshot of create a private endpoint UI window

    • [構成] タブ: 手順 2 で作成した VNet のサブネット (searchservicesubnet) を使用します。 その後、 [プライベート DNS 統合] セクションで、対応するサブスクリプションを選択し、privatelink.search.windows.net という新しいプライベート DNS ゾーンを作成します。

    Screenshot of create private endpoint UI window with subnet field populated

  5. 通常の App Service の VNET 統合を有効にします。 既に VNET にアクセスできるため、ASE では、この手順をスキップできます。

    • App Service の [ネットワーク] セクションに移動し、 [VNet 統合] を開きます。
    • 手順 2 で作成した専用 App Service VNet のサブネット (appservicevnet) にリンクします。

    Screenshot of VNET integration UI

Azure Search リソースにプライベート エンドポイントを作成します。

QnA Maker リソースへのパブリック アクセスを制限するには、次の手順に従います。 仮想ネットワークを構成して、Azure AI サービス リソースをパブリック アクセスから保護します。

VNet に基づいて Azure AI サービス リソースへのアクセスを制限した後、オンプレミス ネットワークまたはローカル ブラウザーから https://qnamaker.ai ポータル上のナレッジベースを参照します。

  • オンプレミス ネットワークへのアクセスを許可します。

  • ローカルのブラウザーとマシンへのアクセスを許可します。

  • [ネットワーク] タブの [ファイアウォール] セクションの下にマシンのパブリック IP アドレスを追加します。既定では、portal.azure.com には現在アクセスしているマシンのパブリック IP が表示され (このエントリを選択します)、次に [保存] を選択します。

    Screenshot of firewall and virtual networks configuration UI