次の方法で共有


Azure AI Bot Service でのネットワーク分離

2023 年 9 月 1 日から、ネットワーク分離に Azure Service Tag メソッドを使用することを強くお勧めします。 DL-ASE の使用率は、非常に具体的なシナリオに限定する必要があります。 運用環境でこのソリューションを実装する前に、サポート チームにガイダンスを提供することをお勧めします。

この記事では、Azure ボットとその依存サービスのネットワーク分離に関する概念について説明します。

ボットへのアクセスをプライベート ネットワークに制限することもできます。 Azure AI Bot Service でこれを行う唯一の方法は、Direct Line App Service 拡張機能を使用することです。 たとえば、App Service 拡張機能を使用して社内ボットをホストし、ユーザーに会社のネットワーク内からボットにアクセスするように要求できます。

プライベート ネットワークでボットを構成する方法の詳細については、分離ネットワークを 使用する方法を参照してください。

ネットワーク分離をサポートする機能の詳細については、以下を参照してください。

特徴 [アーティクル]
Direct Line App Service 拡張機能 Direct Line App Service 拡張機能
Azure Virtual Network Azure Virtual Network とは
Azure ネットワーク セキュリティ グループ ネットワーク セキュリティ グループ
Azure Private Link とプライベート エンドポイント プライベート エンドポイントとは
Azure DNS Azure portal を使用して Azure DNS ゾーンとレコードを作成する

プライベート エンドポイントの使用

ボット エンドポイントが仮想ネットワーク内にあり、ネットワーク セキュリティ グループに適切な規則が設定されている場合は、プライベート エンドポイントを使用して、ボットの App Service の受信要求と送信要求の両方へのアクセスを制限できます。

プライベート エンドポイントは、Direct Line App Service 拡張機能を介して Bot Service で使用できます。 以下のプライベート エンドポイントを使用するための要件を参照してください。

  1. アクティビティは、App Service エンドポイントとの間で送受信する必要があります。

    App Service 拡張機能は、ボット エンドポイント App Service と併置されています。 エンドポイントとの間のすべてのメッセージは仮想ネットワークに対してローカルであり、Bot Framework サービスに送信されずにクライアントに直接到達します。

  2. ユーザー認証を機能させるには、ボット クライアントがサービス プロバイダー (Microsoft Entra ID や GitHub など) とトークン エンドポイントと通信する必要があります。

    ボット クライアントが仮想ネットワーク内にある場合は、仮想ネットワーク内から両方のエンドポイントを許可リストする必要があります。 サービス タグを使用してトークン エンドポイントに対してこれを行います。 ボット エンドポイント自体も、以下で説明するようにトークン エンドポイントにアクセスする必要があります。

  3. App Service 拡張機能では、ボット エンドポイントと App Service 拡張機能の双方が、HTTPS リクエストを Bot Framework サービスに送信する必要があります。

    これらの要求は、ボット構成の取得やトークン エンドポイントからのトークンの取得など、さまざまなメタ操作を対象としています。 これらの要求を容易にするには、プライベート エンドポイントをセットアップして構成する必要があります。

Bot Service がプライベート エンドポイントを実装する方法

プライベート エンドポイントが使用される主なシナリオは 2 つあります。

  • ボットがトークン エンドポイントにアクセスするため。
  • Direct Line チャネル拡張機能が Bot Service にアクセスする場合。

プライベート エンドポイントは、仮想ネットワークをインターネットに公開したり、IP アドレスを一覧表示したりすることなく、必要なサービスをネットワーク内で直接使用できるように、必要なサービスを仮想ネットワークに 投影 します。 プライベート エンドポイントを経由するすべてのトラフィックは、Azure 内部サーバーを経由して、トラフィックがインターネットに漏洩しないようにします。

サービスは、 BotTokenの 2 つのサブリソースを使用して、サービスをネットワークに投影します。 プライベート エンドポイントを追加すると、Azure はサブリソースごとにボット固有の DNS レコードを生成し、DNS ゾーン グループ内のエンドポイントを構成します。 これにより、同じサブリソースをターゲットとする異なるボットのエンドポイントを相互に区別しながら、同じ DNS ゾーン グループ リソースを再利用できます。

シナリオ例

SampleBot という名前のボットと、このボットのメッセージング エンドポイントとして機能する対応するアプリ サービス (SampleBot.azurewebsites.net) があるとします。 パブリック クラウド用の Azure portal でサブリソースの種類を持つ Bot のプライベート エンドポイントを構成します。これにより、Aに対応するSampleBot.botplinks.botframework.com レコードを持つ DNS ゾーン グループが作成されます。 この DNS レコードは、仮想ネットワーク内のローカル IP にマップされます。 同様に、サブリソースの種類 Token 使用すると、エンドポイントが生成 SampleBot.bottoken.botframework.com

作成した DNS ゾーンの A レコードは、仮想ネットワーク内の IP アドレスにマップされます。 そのため、このエンドポイントに送信される要求はネットワークに対してローカルであり、ネットワーク セキュリティ グループまたはネットワークからの送信トラフィックを制限する Azure ファイアウォールの規則に違反することはありません。 Azure ネットワーク レイヤーと Bot Framework サービスを使用すると、要求がパブリック インターネットに漏洩しないようにし、ネットワークの分離が維持されます。