ネットワークの分離を構成する
2023 年 9 月 1 日から、ネットワークの分離に Azure サービス タグ メソッドを使用することを強くお勧めします。 DL-ASE の稼働率は、非常に具体的なシナリオに限定する必要があります。 運用環境でこのソリューションを実装する前に、サポート チームに相談してガイダンスを受けることをお勧めします。
既存の Direct Line App Service 拡張機能ボットにネットワークの分離を追加できます。 プライベート エンドポイントを使用すると、ネットワーク分離ボットが必要な Bot Framework サービスと通信できるため、ボットは仮想ネットワークに限定されながら正しく実行できます。
ボットにネットワークの分離を追加するには、次の手順を実行します。
- 仮想ネットワークを使用し、送信トラフィックを防止するようにネットワークを構成します。 この時点で、ボットは他の Bot Framework サービスと通信できなくなります。
- 接続を復元するようにプライベート エンドポイントを構成する
- App Service を再起動し、分離されたネットワーク内でボットをテストします。
- ボットへのパブリック ネットワーク アクセスを無効にします。
前提条件
- Azure アカウント。 まだお持ちでない場合は、開始する前に無料アカウントを作成してください。
- Azure Virtual Network とネットワーク セキュリティ グループ リソースを作成するアクセス許可を持つサブスクリプション。
- 動作する Direct Line App Service 拡張機能ボット。
- ボットで、Bot Framework SDK for C# または Bot Framework SDK for JavaScript バージョン 4.16 以降を使用している。
- ボットで名前付きパイプが有効になっている。
- ボットの App Service で Direct Line App Service 拡張機能が有効になっている。
- ボットの Direct Line クライアントに接続されているWeb チャット コントロール。
既存のボットが正しく構成されていることを確認するには、次の手順を実行します。
ブラウザーで、ボットの Direct Line クライアント エンドポイントを開きます。 たとえば、
https://<your-app_service>.azurewebsites.net/.bot
のようにします。ページに次の内容が表示されていることを確認します。
{"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
- v によって、Direct Line App Service 拡張機能のビルドバージョンが表示されます。
- k は、拡張機能がその構成から拡張キーを読み取ることができたかどうかを示します。
- initialized は、拡張機能が Azure AI Bot Service からボット メタデータをダウンロードできたかどうかを示します。
- ib は、拡張機能がボットへの受信接続を確立できたかどうかを示します。
- ob は、拡張機能がボットへの送信接続を確立できたかどうかを示します。
仮想ネットワークの作成
- Azure ポータル に移動します。
- ボットと同じリージョンに Azure Virtual Network リソースを作成します。
- これにより、仮想ネットワークとサブネットの両方が作成されます。
- 仮想マシンは作成しないでください。
- 一般的な手順については、「Azure portal を使用した仮想ネットワークの作成」を参照してください。
- ボットの App Service リソースを開き、仮想ネットワーク統合を有効にします。
- 前の手順で作成した仮想ネットワークとサブネットを使用します。
- 一般的な手順については、「Azure App Service で仮想ネットワーク統合を有効にする」を参照してください。
- 2 つ目のサブネットを作成します。 後で 2 番目のサブネットを使用して、プライベート エンドポイントを追加します。
ネットワークからの送信トラフィックを拒否する
- 1 番目のサブネットに関連付けられたネットワーク セキュリティ グループを開きます。
- セキュリティ グループが構成されていない場合は、セキュリティ グループを作成します。 詳細については、「ネットワーク セキュリティ グループ」を参照してください。
- [設定] で [送信セキュリティ規則] を選びます。
- 送信セキュリティ規則のリストで、DenyAllInternetOutbound を有効にします。
- ボットの App Service リソースに移動します。
- App Service を再起動します。
接続が切断されていることを確認する
別のブラウザー タブで、ボットの Direct Line クライアント エンドポイントを開きます。 たとえば、
https://<your-app_service>.azurewebsites.net/.bot
のようにします。ページに次の内容が表示されていることを確認します。
{"v":"123","k":true,"ib":true,"ob":true,"initialized":false}
initialized
の値はfalse
になっているはずです。その理由は、App Service と App Service 拡張機能が他の Bot Framework サービスに接続して自身を初期化できないためです。 これで、送信接続用の仮想ネットワークにボットが分離されました。
プライベート エンドポイントを作成する
- Azure ポータル に移動します。
- ボットの [Azure Bot リソース] ブレードを開きます。
- [設定] で [ネットワーク] を選択します。
- [プライベート アクセス] タブで、[プライベート エンドポイントの作成] を選択します。
- [リソース] タブの [ターゲット サブリソース] で、リストから [ボット] を選択します。
- [仮想ネットワーク] タブで、作成した仮想ネットワークと 2 番目のサブネットを選択します。
- プライベート エンドポイントを保存します。
- [プライベート アクセス] タブで、[プライベート エンドポイントの作成] を選択します。
ボットの App Service にプライベート エンドポイントを追加する
- ボットの Azure App Service リソースを開きます。
- [設定] の下で [構成] を選択します。
- [アプリケーションの設定] タブで、 [新しいアプリケーション設定] を選択します。
- [名前] を
DirectLineExtensionABSEndpoint
に設定します。 - [値] をプライベート エンドポイント URL (例:
https://<your_azure_bot>.privatelink.directline.botframework.com/v3/extension
) に設定します。 - 新しい設定を保存します。
- [名前] を
- [アプリケーションの設定] タブで、 [新しいアプリケーション設定] を選択します。
App Service を再起動し、接続が復元されていることを確認する
ボットの App Service を再起動します。
別のブラウザー タブで、ボットの Direct Line クライアント エンドポイントを開きます。 たとえば、
https://<your-app_service>.azurewebsites.net/.bot
のようにします。ページに次の内容が表示されていることを確認します。
{"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
initialized
の値はtrue
にする必要があります。ボットの Direct Line クライアントに接続されている Web チャット コントロールを使用して、プライベート ネットワーク内のボットと対話します。
プライベート エンドポイントが正しく機能しない場合は、Azure AI Bot Service への送信トラフィックを許可するルールを追加できます。
Note
これにより、仮想ネットワークの分離が少し弱くなります。
- 1 番目のサブネットに関連付けられたネットワーク セキュリティ グループを開きます。
- [設定] で [送信セキュリティ規則] を選びます。
- 送信セキュリティ規則のリストで、AllowAzureBotService を有効にします。
- ボットの App Service リソースに移動します。
- App Service を再起動します。
ボットへのパブリック ネットワーク アクセスを無効にする
Azure AI Bot Service へのパブリック アクセスをブロックし、プライベート エンドポイント経由でのアクセスのみを許可できます。 Azure portal で Azure AI Bot Service のネットワーク アクセスを無効にすることができます。
ヒント
これにより、Teams チャネルの構成が解除されます。 Azure portal で他のチャネル (Direct Line を除く) を構成または更新することはできません。
- Azure ポータル に移動します。
- ボットの App Service を開きます。
- パブリック ネットワーク アクセスを無効にする
追加情報
Virtual Network の構成
仮想ネットワーク用にボットを構成するには、いくつかのオプションがあります。
- 仮想ネットワークを作成し、そのネットワーク内で Azure App Service を有効にする。 この記事では、このオプションを使用しています。
- App Service 環境を作成し、その環境内に App Service プランを追加する。
- 仮想ネットワークを作成します。
- 仮想ネットワーク内で Azure App Service 統合を有効にします。
「仮想ネットワークの作成」セクションに記載されているとおり、この記事ではこれらの手順を使用しています。
詳細については、「Azure portal を使用して仮想ネットワークを作成する」および「Azure App Service で仮想ネットワーク統合を有効にする」を参照してください。