🛡️

Azure AI Bot Service のエンドポイントを外部に公開しないようにする

2024/08/13に公開

はじめに

Azure AI Bot Service を使ったボットでは、Microsoft Bot Framework で構築された Azure Web Apps のエンドポイントに接続する必要があります。ボットとのすべての会話は /api/messages を通して行われます。それ以外のリソース (index.html など) は不要なため、アクセスを制限したくなります。厳密にネットワークの分離を構成する場合は Direct Line App Service 拡張機能 を使用する必要があります。

https://learn.microsoft.com/ja-jp/azure/bot-service/bot-service-channel-directline-extension?WT.mc_id=M365-MVP-5002941

https://learn.microsoft.com/ja-jp/azure/bot-service/dl-network-isolation-how-to?WT.mc_id=M365-MVP-5002941

今回はそこまでのセキュリティ要件が求められない場合の対応方法です。

実行手順

Azure AI Bot Service から Azure Web Apps へのトラフィックはサービス タグで指定できます。

Azure ポータルで、Azure Web Apps の ネットワーク - 受信トラフィックの構成 - 公衆ネットワーク アクセス をクリックします。アクセス制限選択された仮想ネットワークと IP アドレスから有効 を選択します。メイン サイト のルールの 追加 をクリックして、サービス タグが AzureBotService からのトラフィックのみを許可するように構成します。

実行結果

実際にサイトにアクセスすると 403 エラーになりアクセスが拒否されていることを確認します。

ボットからは正常に動作することを確認します。

おわりに

この方法はサービス タグでの制限となるため、悪意のあるボットからのアクセスを防御できるものではないことには注意してください。

Discussion