AI

企業専用 ChatGPT を Azure OpenAI & Web App で爆速構築する

セキュリティチームの ぐっちー です。今回のブログでは Azure OpenAI Service と Azure Web App Service を使って企業専用ChatGPTを爆速で構築する方法が登場したのでご紹介します。技術的な難易度で見ると、めちゃくちゃ簡単で、記事にするか迷いましたが、ここまで簡単になった感動を伝えるために書きました笑

前提条件

  • 今回の手順にはパブリックプレビュー中の機能が含まれます。
  • 以下の状態を前提としています。
    • Azure OpenAI Serviceはセットアップ(MS社への利用申請・リソースのデプロイ)済みであること。
    • Azure OpenAI Service、Azure Web Appsを操作する権限が割当たっている事。
ご注意

本ブログの内容は、2023年6月20日時点までの情報を元に作成しておりますが、クラウドサービスの仕様変更等に伴い、将来的に状況が変化することがございます。仕様変更が確認できた場合は可能な限り修正をしますが、最新の情報を常に維持することは難しい点についてはご了承ください。

情シスが自社ユーザーにChatGPTを提供する手法(個人的まとめ

本題に入る前に、情シスがユーザーにChatGPTを提供する手法を個人的な見地からまとめていきます。どの手法が刺さるか?、別の手法がいいのか?は完全に企業ごとのユースケースに依存しますが、代表的なものは以下の通りだと考えています。

手法①:OpenAI社のChatGPTを利用(半シャドーIT)

最初の手法がOpenAI社のChatGPT(https://chat.openai.com/)を利用させる方法です。情報システム目線では独自のサービスを構築しなくていいので、非常に楽に始められますし、この手法を採用してる(なし崩し的にそうなっている)企業も多いかと思います。

一方で、セキュリティ的に見ると情報の漏洩、自社データがAIモデルの学習に利用される、個人情報・プライバシーの侵害などが発生し得る使い方です。現状のChatGPTには「自社テナント(企業向け)」という概念がなく、B2Cを想定した利用しかできないため、シャドーITに片足を突っ込んでいる状況となるかと思います。性質上、ユーザーが個々にアカウント作成するため、管理が行き届かないことが懸念されます。

直近では、ChatGPTのアカウントが10万件ダークウェブで取引されている?というニュース[1]もありました。私はそのダークウェブまで見に行ったわけではないので本当かどうかわかりませんが、仮に本当だった場合は10万件のChatGPTの過去の履歴をハッカーは閲覧することができますし、法人で管理できないシャドーIT的なアカウントはそのようなリスクもつきまといます。そのため、諸手を挙げてオススメできるものでありません。

補足

OpenAI社は企業向けのChatGPTである「ChatGPT Business」を開発中ですが、まだ公開に至ってません。

手法②:SlackやTeams等経由で利用させる(個人的にオススメ)

次に考えられるのは、SlackやTeams等経由でChatGPTを利用させる方法です。既に利用しているSlackやTeamsに施したセキュリティ設定(例:条件付きアクセス等)を引き継いで利用ができるので、セキュリティに関する懸念が少ない方法です。(APIキーの管理やBotの管理など新しいセキュリティトピックは発生しますが・・・)

この手法のメリットは以下のようなことが考えられます。

  • 管理者目線
    • SlackやTeamsに施したセキュリティ設定(例:条件付きアクセス・自社アカウントでの利用 等)を引き継いで利用ができる。
    • SlackやTeamsにChatGPTを実行した履歴(インプットとアウトプット)を残すことができる。
    • GPT-4を使わせるために、ChatGPT Plusを全従業員に提供するより、費用が安くなる可能性が高い。(ケースバイケースなので必ずそうなるわけではありませんことご了承ください。)
  • ユーザー目線
    • 使い慣れたチャットのUIでChatGPTを利用できる。
    • 公開チャネルで実施した場合、他のユーザーもそのやり取りを閲覧できるので、他のユーザーへの学習効果やChatGPTが誤った回答をした場合に気づくキッカケとなる。(ChatGPTは適当なことを回答することが多く、その回答を鵜呑みにすると事故に繋がります。)

一方で、デメリットとしては、API・Botの管理に加えて、実装までの難易度がそこそこある点が考えられます。APIやSlack bot、Teams bot(Power Virtual Agents・Power Automate)に関する知識が要求されるので、それらに慣れていない情シス担当者が実装するのには骨が折れるかと思います。

手法③:企業専用サイトを作成する(今回の手法)

最後に紹介する手法は企業専用ChatGPTサイトを作成するという手法です。有名な事例だとベネッセさんやパナソニックコネクトさん、三井住友フィナンシャルグループさん[2]はこの手法を採用しているのではと、ニュース上からは読み取りました。この手法は自社開発の企業専用サイトを使うので、仕様やセキュリティ面を完全に自社でコントロール下におけることがメリットです。

一方で、Webアプリケーション開発の領域となるため、情報システム部門としてはかなり難易度が高いということが最大の欠点です。Webアプリケーション開発のスキルセットを持った情報システム部門の方もいますが少数派であると思いますし、実施しようとしたら社内の開発部門か、ベンダーを巻き込んでのプロジェクトとなっていたかと思います。

そんな中、登場したAzure OpenAI Serviceの新機能では、Azure Web App とシームレスに連携し、GUIの操作だけで爆速で企業専用サイトを構築できるようになったので、次の章で手法を解説します。

補足

今回は企業専用サイトを作成する方法を紹介するものの、SlackやTeams等経由でChatGPTを利用させる手法が一番オススメであるという私の個人的な意見は変わりません。ただ、ユースケースを見極めて使ってみてください。

構築手順

まずは、Azure OpenAI ServiceでAIモデルをデプロイします。デプロイしたままのモデルをそのまま利用することもできますが、データの接続をした方が精度が上がることもあるので、ユースケースを見極めつつ、以下の方法などを利用するといいかと思います。

続いて、Azure OpenAI Studio(https://oai.azure.com/portal/)で[chat]欄を開き、右上に表示されている [Deploy to…] をクリックします。

続いて、必要事項を入力し、[Deploy]をクリックして設定完了です。10分ほど待つと構築が完了します。尚、Pricing Planに関しては、「Free」と「basic」では何故かデプロイが失敗するという事象がありました。公式ドキュメント状に必要プランが明記されていなかったので、Pricing Planが左右するものなのか厳密には定かではありませんが、「Standard」だと私の環境で動作したので、「Standard」以上がオススメです。

これだけで構築は完了です。ブログ化するか迷うぐらい簡単な手順ではありました。

注意

公式ドキュメントには「By default, the app will only be accessible to you. (デフォルトでは、アプリにアクセスできるのはあなただけです。)」と記載されており、デフォルトでアクセスできるのは自身のみという風に読めます。しかし実際に作成されたWeb Appを見ると自分以外にも自社テナントのユーザーがアクセスできる設定がなされていたので注意してください。(実際の設定値を[Azure Potal] > [App Searvice] > [作成したリソース] > [Authentication]で確認して、ご利用いただくとミスがないかと思います。)

動作確認・感想・気になる点

基本的な動作

ここからは動作確認をしていきます。10分ほど待って、デプロイが完了すると、[Azure OpenAI Studio] > [chat]の右上に [Launch web app] という項目が出現します。

そこをクリックすると、Web UIのチャットが立ち上がり、ChatGPTを利用できるようになりました。右上に設置している [Share] を使って、社内ユーザーに展開することもできます。

すごく嬉しいポイントとしては、デフォルトでAzure ADで自社テナントユーザーのみしかアクセスできない設定となっている点です。自社のAzure ADユーザー以外がアクセスを試行すると以下のような状態となり、アクセスすることができませんでした。

ここまでWeb App構築の難易度が下がると、普段Azureを使わない人が多く利用して、普段使わないが故に事故を起こしてしまう懸念がありますが、そこに対して一定の配慮がなされているようでした。

現時点では日本語入力が微妙(公開されて2日なので修正に期待!

一方で気になる点としては、現時点では日本語入力で漢字に変換する際、変換の決定をすると投稿されてしまうという仕様となっている点です。これだと、文章を打っている途中で、投稿されてしまうことがあるので、UXという観点でちょっと微妙かなと思いました。

注意

私が保持しているAzureテナント2つで再現しており、環境固有の問題ではないと考えていますが、現時点でマイクロソフト社から、これが仕様であるという正式回答を得ているわけではありません。

ただ、この機能は公開されてまだまだ2日です(日本時間19日深夜に公開され、私が検証したのが20〜21日)。今後の修正に期待しましょう!僕はMSに以下サイトでFBをしているので、是非投票していただけたら嬉しいです。

とはいえ、格段に楽になった

UXという観点でちょっと微妙なところはありましたけど、Web Appsの構築が圧倒的に楽になったのは言うまでもありません。Webアプリケーション開発を本業としない人でもできるほど民主化したのかなと思いました。

Web Appの設定変更も可能

今回の手順で構築したWeb Appは Azure portal の [App Serveices] に表示され、ここから様々な設定変更が行えます。自社のユースケースに応じて、設定を変更して利用すると、より企業での利用が加速しそうです。

おまけ:Webフィルタリングで「企業専用 ChatGPT」以外はブロックする

もし、「企業専用 ChatGPT」を提供する場合はWebフィルタリングで「企業専用 ChatGPT」以外はブロックする設定を入れておくとより効果的です。「企業専用 ChatGPT」にユーザーを誘導できるだけではなく、OpenAI社のChatGPT等を経由した情報漏洩リスクに対してもリスク低減を行うことができます。

おわりに

個人的には「SlackやTeams等経由で利用させる」という手法が最もお勧めであるという見解は変わらないものの、ユースケースによっては、Azure OpenAI & Web App が有効に作用するケースも出てくるのではと思います。簡単な手順ですので、是非試していただけたら幸いです。

注釈

  1. Group-IB Discovers 100K+ Compromised ChatGPT Accounts on Dark Web Marketplaces; Asia-Pacific region tops the list | Group-IB https://www.group-ib.com/media-center/press-releases/stealers-chatgpt-credentials/
  2. ベネッセHD、「ChatGPT」を全社解禁 自社専用で漏洩防ぐ https://business.nikkei.com/atcl/seminar/19/00030/041300468/

参考文献

関連ブログ・関連サイト

ぐっち

コンサル会社にてISO27017やISMAP等のセキュリティ規格案件を経験した後、クラティブに入社。セキュリティチーム所属ですが、最近は生成AI等を使ったシステムの開発や導入をやっています。趣味はダンス。Microsoft MVP for AI Platform & M365(Copilot)