🍿

AWSの記事を読んで、生成AI活用のセキュリティを考える

2024/05/17に公開

はじめに

AWSのこちらの記事を読んで、生成AIのセキュリティについて考えてみた。

https://aws.amazon.com/jp/blogs/news/securing-generative-ai-data-compliance-and-privacy-considerations/

要約やまとめではなく、読んだ上での私見を雑多に書いていくだけです。ご注意ください。

生成AIの分類

セキュリティの観点では、生成AIをざっくり分類するとこんな感じに分類されるとのこと。

  • 提供された生成AIサービスを使う
    • ステージ1 : パブリックな生成AIサービス
      • ChatGPTとかClaudeとかGeminiをそのまま使うパターン
    • ステージ2 : 生成AIを使ったアプリやSaaSの利用
      • GitHub Copilotでコーディング支援するとかのパターン
  • 自分で生成AIサービスを構築する
    • ステージ3 : 事前学習済みモデルを利用
      • Bedrock上のClaude3 Opusを使ってRAGを作るとかのパターン
    • ステージ4 : ファインチューニングされたモデルを利用
      • Bedrockのカスタムモデルを使うとかのパターン
    • ステージ5 : 自分でモデルを作る
      • Sagemakerで1からモデルを作るパターン

各ステージで細かい違いはあると思うが、とりあえずはパブリックな生成AI(ステージ1+2)とプライベートな生成AI(ステージ3+4+5)の2つで分けて考えてみる。

パブリックな生成AI

ChatGPT( https://chatgpt.com/ )にアクセスしてAIと自由にチャットするケースを思いうかべながら考えてみる。

パブリックなAIのメリデメ

メリデメをAI(Claude3 Opus)に聞いてみた。※回答そのままではなくサマってます

メリット

  1. だれでも手軽に使える。
  2. 無料または安い。
  3. 自動でアップデートされる
  4. ユーザーが多いので幅広い分野で学習されている

デメリット

  1. ユーザー独自のカスタマイズは無理
  2. 入力されたデータがAIプロバイダーに利用される
  3. 呼び出し回数制限などの制約
  4. 唐突なサービス終了や値上げが怖い

メリデメからセキュリティを考える

セキュリティ面ででいうと、デメリット2がよろしくないポイントだろう。最も簡単な対策は、利用禁止にするである。しかし、メリット1の手軽に使えるという性質上、会社が禁止にしても社員は勝手に使うと思われる。AWSの記事にも次のような記載がある。

多くの大規模組織は、入力されたデータに何が起こるか、また誰がデータにアクセスできるかをコントロールできないため、これらのアプリケーションをリスクと見なしています。これに対応して、組織はスコープ 1 のアプリケーションの利用を禁止します。リスクの評価にはデューデリジェンスを奨励していますが、全面的な禁止は逆効果になる可能性があります。スコープ 1 のアプリケーションを禁止すると、シャドー IT と同様の意図しない結果が生じる可能性があります。たとえば、従業員が個人用デバイスを使用して利用制限のためのコントロールを回避したり、使用されるアプリケーションの可視性が低下するなどです。組織は生成 AI アプリケーションを禁止するのではなく、組織がコントロールでき組織内で使用が許可されているデータの範囲内で、これらのアプリケーションのうち、従業員が効果的に使用できるものがどれかを検討する必要があります。

要約すると「禁止にしてもどうせ裏で勝手に使うから、規定を決めてコントロールできる範囲内で使わせようね」ということである。
これはかなり厄介な話しであり、「AIなんて関係ない。知らない。」と考えている会社でも最低限規約を作っておかないと勝手に社員が使って勝手に損害が発生する可能性があるということになる。怖い。

会社として決めるべきこと

前述の通り、生成AIを積極的に業務利用しない場合でも規約は作るべきである。AWSの資料を参考にすると、以下のようなことを考慮にいれる必要があるようだ。

  1. どの生成AIサービスを使うか
  2. 各サービスの入力や出力のデータがどう利用されるのか、どこに保存されるのかを理解する
  3. モデルのトレーニングデータのソースが何かを理解する
  4. 商用利用の可否
  5. 各サービスの利用規約の変更を監視

いや、無理だろこれ。特に3。

現実的に考えると、このあたりを規約に盛り込んでおくのが現実的か?と思う。

  • ChatGPT,Gemini,Claudeあたりの有名どころに利用制限
    • SaaSも含めるならCopilot系やGemini系のサービスあたり
  • 各サービスの利用規約はちゃんと読め
  • 業務情報をinputにするな
    • 特に個人情報は絶対に扱うな
  • 著作権の問題はないかは確認しよう
  • 結果に嘘がないかは裏を取ろう

あとは、各企業が公開しているガイドラインを参考にするのが良さそう。

https://activate.fujitsu/ja/key-technologies-article/ta-generative-ai-utilizationguideline-20240112
https://blog.zaim.co.jp/n/n641fc2e19933
https://dev.classmethod.jp/articles/guideline-for-use-of-ai-services/

総務省のAI利活用ガイドラインとかは、堅苦しくてそれなりに知見がある人が本気で読み解かないとちょっと参考にするのは厳しそう。

https://www.soumu.go.jp/main_content/000624438.pdf

プライベートな生成AI

続いてはプライベートな環境で使う生成AIのケースを見てみる。
例えば、Amazon Bedrockを活用してAWS上にRAGを作るケースを思い浮かべながら考える。

プライベートな生成AIのメリデメ

Gemini 1.5 Proにメリデメを聞いてみた。※回答そのままではなくサマってます

メリット

  1. ニーズに合わせてカスタマイズできる
  2. データのセキュリティとプライバシーが確保できる
  3. 応答時間等の安定したパフォーマンスが確保できる
  4. 法規制や社内規定などのコンプラに対応できる

デメリット

  1. 導入に専門的な知識やスキルが必要
  2. コストが高い(導入費用も運用コストも)
  3. 継続的な改善やモデルのアップデートの労力が大変
  4. インフラの準備が大変

メリデメからセキュリティを考える

メリット2の項目があるのでパブリックなAIで問題になったセキュリティやプライバシーの問題は解決しているように見える。
ではこれ以上は何も考えなくてよいか?というと、AWSの記事にはスコープ3(事前学習済みモデルを利用)では、以下のような考慮が必要と記載がある。

  1. モデルのプロバイダにフィードバックを送る時は機密情報を消す必要がある。
  2. モデルが著作権違反で法的措置をとられたときに補償してくれるか確認する。
  3. プロンプトやレスポンスが学習等に使われないか確認する必要がある。(AWSは使わないから安心してね)
  4. 出力結果が正しいかの確認は必要となる。

いくつかの確認は必要になるが、大きな問題はなさそうである。
しかし、自分でモデルの学習をする場合(スコープ4や5)では、考慮が必要な項目が増える。

  1. モデルから機密情報漏えいの危険性はないか?
  2. 元ネタのソースは著作権やプライバシー上使用して大丈夫か?情報の持ち主の許可は取ったか?
  3. カスタマイズまたは自作したモデルは、適切に保存されるか?

これらは今までの考慮点とは毛色が異なる内容である。すなわち、今まではAIを使う側としてのリスク管理が必要という話しであったが、モデルに手出しするとAIを作る側としての責任が発生するということだ。より踏み込んだ話しはAWSの別のページが用意されているので割愛するが、モデルのカスタマイズをする時は十分に気をつける必要がありそうだ。
https://aws.amazon.com/jp/machine-learning/responsible-ai/

生成AIの分類(再)

セキュリティ観点で生成AIを分類するにあたり、最初に「パブリック」か「プライベート」かで分類したが、加えて「提供されたモデルを使う」か「自分でモデルを作成するか」も分けたほうがよさそう。

つまり、、、

パブリックな生成AI

  • 例えば、ブラウザからChatGPTを使うとき
    • 業務情報をインプットしてはいけない

プライベートな環境で事前学習済みモデルを利用

  • 例えば、Google Cloud上下Geminiを使ってRAGを作るとき
    • 利用規約を確認した上で、問題ない範囲で業務情報のインプットはOK

自分でカスタムしたモデルを使う

  • 例えば、Amazon SageMakerで独自のモデルを作るとき
    • 著作権に違反してないか?モデルの保存場所のセキュリティは大丈夫か?など、モデルを作る側の責任が発生

下に行くほど構築難易度が上がりできることが増える

海外リージョンの利用について

AWSの記事は元ネタがUSの資料なので輸出については特に記載がなさそうだけど、日本から使う時は国外での利用について気をつけないといけない認識。
というのも、基本的に最新のモデルはUSのリージョンにリリースされるので、最大限AIを活用しようとすると国外にデータを持ち出すことになる。

法的にどういうデータは気をつけないといけないか

USリージョンの利用について、法的に気をつけないといけないデータは何かGPT-4oに聞いてみた。※回答そのままではなくサマってます

  • 外為法
    • 日本の国家機密や軍事用途に転用可能な技術情報
    • 経済産業省の規制リスト(キャッチオール規制)に該当する技術やデータ
    • 機密情報
  • 個人情報保護法 / APPI
    • 個人情報
  • HIPAA
    • 医療データ
  • GLBA
    • 金融データ

判断つかないなら専門家に確認が必要になるが、私の経験上だと大抵は安全な方に倒そうという意見しか得られないので、不安なら日本国内のサービスを使うのが無難だと思う。

日本国内のリージョンで使える生成AIモデル

日本国内で使えるモデルで比較的新しいメジャーなモデルは以下がある。

  • Google Cloud
    • Gemini 1.5 pro
  • Azure
    • GPT 4

特に、Googleはプレビュー版も含めてほぼ最速のタイミングで日本で使えるようにしてくれるので国内縛りならお勧め。
GPTにこだわるならAzure。比較的新しいモデルが日本でも使えるが、本当の最新のモデルはUSだけだったりする。

まとめ

  • 生成AIを活用する予定のない会社でも、生成AIの利用規約を作るべし。でないと社員は好き勝手に使い出す。自力で作れない時は、公開されている他社の規約を参考にすると良さそう
  • 業務情報を生成AIで使いたい時は、Google CloudやAWSやAzureのプライベートな環境で提供されるモデルを使ってRAGを構築するのが、とりあえずは無難
  • モデルのカスタマイズや自力でモデルを作ることは、AIに対する知識や技術が必要なのは当然だが、それだけでなくモデル作成者としての責任も発生するので慎重に検討したほうが良さそう
  • 海外リージョンで生成AIを利用する場合はデータの扱いには要注意。不安なら日本国内リージョンを使おう。日本にこだわる場合はGoogle Cloudは日本への対応が手厚いのでお勧め
NCDCエンジニアブログ

Discussion