生成AI開発とNDA|企業案件で機密情報を守るための12のチェックポイント
「NDAを締結している案件で、ChatGPTやClaudeなどの生成AIを使って開発しても大丈夫ですか?」
AIを活用したシステム開発が増えるなかで、企業のお客様から聞かれることが増えている質問です。
結論からいうと、
「NDAを締結しているから生成AIを使っても問題ない」
とは一概には言えません。
NDAや業務委託契約には、
- 秘密情報の定義
- 第三者提供
- 再委託
- 個人情報
- 国外へのデータ移転
- クラウドサービスの利用
- データの保存や削除
など、実際の開発方法に影響する条件が含まれていることがあります。
そのため弊社では、企業案件で生成AIを利用する場合、
「どの情報を、どのサービスで、どこまで扱ってよいのか」
を案件開始前に整理します。
本記事では、生成AIを使った企業システム開発において、弊社がNDAや機密情報をどのように確認し、AIの利用可否を判断しているのかをご紹介します。
NDAを結んだからAIを使ってよい、ではない
まず押さえておきたいのが、
NDAの締結とAIサービスの利用可否は別の問題
ということです。
例えば、企業Aから弊社がシステム開発を受託したとします。
企業A
↓
NDA・業務委託契約
↓
開発会社
ここまでは分かりやすい構造です。
しかし、開発会社が生成AIや外部クラウドサービスを利用すると、実際の情報の流れは次のようになります。
企業A
↓
開発会社
↓
AIサービス
クラウドサービス
開発支援サービス
つまり、
顧客と開発会社の間でNDAを結んでいる
ということだけでは、
その情報を外部AIサービスへ送信してよい
とは判断できません。
契約内容によっては、外部サービスへの情報送信が
- 第三者提供
- 再委託
- 国外移転
などに該当する可能性があります。
そのため、AIを利用する前に契約内容と情報の流れを確認する必要があります。
生成AI時代にNDAで確認したい12の項目
弊社では、案件内容に応じて次のような項目を確認します。
| 項目 | 確認するポイント |
|---|---|
| 1. 秘密情報の定義 | 何が秘密情報に含まれるか |
| 2. 第三者提供 | 外部サービスへ情報を送信できるか |
| 3. 再委託 | SaaSやAIサービス利用が再委託に該当するか |
| 4. AI利用 | 生成AI利用を制限する条項があるか |
| 5. 個人情報 | 個人情報・要配慮情報を含むか |
| 6. 国外移転 | 海外リージョンへのデータ送信が認められているか |
| 7. ソースコード | 外部AIによる参照が許されているか |
| 8. 本番データ | 開発環境で実データを利用できるか |
| 9. 保存期間 | 外部サービスにデータが何日残るか |
| 10. 学習利用 | 入力情報がAIモデルの学習に利用されるか |
| 11. アクセス権 | 誰が顧客情報へアクセスできるか |
| 12. 契約終了時 | データ削除・権限解除をどう行うか |
重要なのは、
「全部問題なければAIを使う」という単純な判断ではない
ことです。
条件によって利用方法を変更します。
AI利用可否を4段階で判断する
例えば弊社では、案件や情報の性質に応じて、AI利用を次のように考えます。
NDA・契約確認
↓
取り扱う情報を確認
↓
利用予定サービスを確認
↓
契約条件と照合
↓
┌ そのまま利用可能
├ 匿名化すれば利用可能
├ 顧客承認後に利用可能
└ AI利用不可
ここが非常に重要です。
生成AIを使うか使わないかを、
「便利だから」だけで決めない
ということです。
1. そのまま利用できる情報
例えば、
- 一般公開されている情報
- 公開Webサイト
- 公開API仕様
- 一般的な技術情報
- ダミーデータ
などです。
これらは比較的AIを活用しやすい領域です。
2. 匿名化すれば利用できる情報
企業案件では、情報そのものではなく、
構造やパターンだけ分かればAIを利用できる
ケースも多くあります。
例えば、
株式会社ABC
担当:山田太郎
契約番号:A-12345
売上:3,250万円
という情報をそのまま渡す必要がなければ、
企業A
担当者B
契約番号XXXX
売上:数千万円規模
のように置き換えることができます。
さらに、
{
"customer_type": "existing",
"contract_status": "active",
"request_type": "price_negotiation"
}
のように、AIが判断するために必要な情報だけへ構造化する方法もあります。
AIには「必要な情報だけ」を渡す
AI利用において非常に重要なのが、
データ最小化
という考え方です。
例えば、問い合わせメールの内容を分類したい場合。
元のメールには、
- 会社名
- 氏名
- メールアドレス
- 契約番号
- 製品名
- 金額
など、多くの情報が含まれているかもしれません。
しかしAIが必要としているのが、
問い合わせカテゴリの判定
だけなら、
すべての情報を送信する必要はありません。
問い合わせ原文
↓
個人情報・機密情報を除去
↓
必要部分だけ抽出
↓
AIによる分類
という構成にできます。
つまり、
AIに何を渡すか以上に、何を渡さずに済ませるかを設計する
ことが重要です。
3. 顧客承認を得てから利用するケース
契約条件によっては、
外部クラウドやAIサービスの利用自体が禁止されているわけではなく、
事前承認が必要
という場合があります。
例えば、
- 再委託先の事前承認
- 外部クラウド利用の承認
- 国外データ処理の承認
- 特定AIサービス利用の承認
などです。
このような場合は、開発会社側だけで判断するのではなく、
利用するサービスやデータ範囲を顧客へ説明したうえで判断
します。
4. AIを使わないケースもある
弊社はAIを積極的に活用していますが、
すべての案件でAIを使うわけではありません。
例えば、
- 認証情報
- パスワード
- APIキー
- 秘密鍵
- 非常に機密性の高い顧客情報
- 契約上外部送信が禁止されている情報
- 個別契約でAI利用禁止とされている情報
などについては、
外部AIサービスへ送信しない判断をします。
生成AIを利用できることと、
利用すべきことは別です。
使用するAIサービス側も確認する
契約上AIを利用できる場合でも、
次に確認するのが、
AIサービスそのもののデータ取扱条件
です。
企業案件では、少なくとも以下を確認します。
| 確認項目 | 内容 |
|---|---|
| 学習利用 | 入力情報がモデル学習に使われるか |
| データ保持 | Prompt・Responseが保存される期間 |
| Zero Data Retention | データを保存しない設定・契約があるか |
| データ所在地 | どの国・地域で処理されるか |
| 暗号化 | 通信時・保存時の暗号化 |
| アクセス | サービス提供会社の従業員がアクセスできる条件 |
| サブプロセッサ | 他事業者へ処理を委託しているか |
| DPA | データ処理契約が用意されているか |
| インシデント通知 | 情報漏洩時の通知条件 |
| データ削除 | 利用終了後に削除できるか |
最近は、
「入力データをAIの学習には利用しません」
というサービスも増えています。
ただし、
学習しないことと、データを保存しないことは別です。
そのため、
- 学習利用
- データ保持
- ログ
- サービス運営者によるアクセス
は分けて確認します。
「有名なAIだから安全」とは判断しない
ChatGPT、Claude、Geminiなど、大手企業が提供するサービスであっても、
利用方法によって条件は異なります。
例えば、
- 一般消費者向けサービス
- 法人プラン
- API
- Enterprise契約
では、
データの保持条件や学習利用条件が異なる場合があります。
そのため、
Claudeだから大丈夫
OpenAIだから大丈夫
Googleだから大丈夫
という判断はしません。
どのサービスの、どの契約・プラン・設定を利用するのか
まで確認する必要があります。
開発中だけでなく「案件終了時」まで管理する
情報管理で忘れられやすいのが、
案件終了後
です。
開発中はアクセス権を厳格に管理していても、
終了した案件の、
- クラウドアカウント
- Gitリポジトリ
- ファイル共有
- 外部サービス
- テスト環境
- 開発者アカウント
などがそのまま残っていれば、リスクになります。
そのため、
案件開始
↓
契約確認
↓
アクセス権付与
↓
開発
↓
納品
↓
不要データ削除
↓
不要アカウント・権限解除
というところまでが情報管理です。
AI利用だけをチェックしても十分ではない
生成AIが注目されているため、
「AIへ情報を送ってよいか」
だけに目が向きがちですが、
企業システム開発では他にも多くのサービスを利用します。
例えば、
- GitHub
- AWS
- Azure
- Google Cloud
- Google Drive
- Microsoft 365
- Slack
- ソースコード管理サービス
- CI/CD
- エラー監視サービス
などです。
生成AIも、
外部サービスの一つ
として考える必要があります。
弊社では「契約」と「技術」の両側から管理する
企業案件のセキュリティでは、
契約だけ守ればよいわけでも、
技術的なセキュリティ対策だけ行えばよいわけでもありません。
弊社では、
契約・NDA
↓
情報分類
↓
外部サービス利用可否
↓
アクセス設計
↓
開発環境での技術的対策
↓
セキュリティテスト
↓
案件終了時の情報整理
というように、
契約・運用・技術を分けずに考える
ことを重視しています。
なお、実際の開発環境における、
- AIからの機密情報分離
- Secret検査
- ソースコード管理
- 送信先制限
- CIでのセキュリティチェック
- Fail Close
といった技術面の対策については、別記事の
「AI駆動開発のセキュリティ対策|機密情報を守るために弊社が実施していること」
で詳しく紹介しています。
「安全です」の一言で済ませない
企業のお客様へ、
弊社はセキュリティに配慮しています
と伝えるだけなら簡単です。
しかし、本当に重要なのは、
なぜそのサービスを利用してよいと判断したのか
を説明できることだと考えています。
例えば、
- NDAを確認した
- 外部サービス利用条件を確認した
- 個人情報を除去した
- AIサービス側の学習条件を確認した
- 保存期間を確認した
- 必要最小限の情報だけを送信した
- アクセス権を制限した
というプロセスがあって初めて、
AI利用のリスクを具体的に管理できます。
セキュリティは「AIを禁止すること」ではない
AIを使わなければ情報漏洩リスクがなくなるわけでもありません。
従来の開発でも、
- メールの誤送信
- クラウド共有設定のミス
- GitHubの公開設定
- USBメモリ
- Excelファイルの持ち出し
- APIキーのソースコード混入
など、さまざまなリスクがあります。
重要なのは、
特定のツールを禁止することではなく、情報がどのように流れるかを管理すること
です。
AIを使うからこそ、管理を強くする
AIによって、
設計、実装、テスト、レビューのスピードは大きく変わりつつあります。
一方で、処理速度が上がれば、
扱うコード量や情報量も増えていきます。
だからこそ弊社では、
AIを使うから管理を緩くするのではなく、AIを使うからこそ管理を強くする
という考え方を取っています。
便利だから使う。
新しいから使う。
ではなく、
契約上利用できるのか。
情報を送る必要があるのか。
安全な利用方法を設計できるのか。
を確認したうえで利用します。
まとめ|NDAとAI利用はセットで考える
生成AIを活用したシステム開発では、
「NDAを締結しているから大丈夫」
でも、
「生成AIだから危険」
でもありません。
重要なのは、
- NDA・契約条件を確認する
- 取り扱う情報を分類する
- 利用するAI・クラウドサービスを確認する
- 必要最小限のデータだけを利用する
- 必要に応じて匿名化する
- 顧客承認が必要な場合は確認する
- 技術的なセキュリティ対策を行う
- 案件終了後のデータ・権限まで整理する
という一連のプロセスです。
弊社では、AIを利用したシステム開発について、
「AIを使えるか」から考えるのではなく、「どの情報を、どの条件で扱えるか」から考える
ことを重視しています。
AI活用を進めたい一方で、
- 社内情報をAIへ入れてよいのか分からない
- NDA案件でClaudeやChatGPTを利用できるか判断できない
- AI導入時のセキュリティルールを整理したい
- 自社のAI利用ガイドラインを作りたい
といった課題がある場合も、システム開発だけでなく情報の整理や運用設計からご相談いただけます。
※本記事は一般的な情報セキュリティ・システム開発上の考え方をご紹介するものであり、個別の契約内容に関する法的助言ではありません。実際の契約・NDAの解釈については、必要に応じて弁護士等の専門家への確認が必要です。