企業でのコーディングAI:独自のソースコード、NDA、機密情報を守る industriel
開発者がクラウドアシスタントにビジネスロジック関数を貼り付けてリファクタリングを行います。わずか1秒で、割譲条項とNDAの対象となっているコードの断片が、米国のサードパーティのサーバーを介して、貴社の管理範囲外に流出してしまいます。ソフトウェアベンダー、設計事務所、あるいは産業秘密を保持するESN(ITサービス企業)にとって、この無害に見える一連の操作は、法的および契約上の重大な脆弱性です。本ガイドは、自社の開発者に高性能なコパイロットを配備しつつ、プロプライエタリなコードの1行たりとも企業のネットワーク外に流出させないことを目指す技術責任者やCIO(最高情報責任者)向けに作成されています。ここでは、GitHub CopilotやCursorが「エンタープライズ」オプションを備えているにもかかわらず問題となる理由、GDPR(一般データ保護規則)とAI Act(AI法)が実際に要求している内容、そして100%ローカルスタック(Ollama、Cline、Aider、Tabby)をワークステーションまたは共有GPUサーバーにデプロイする方法、さらに監査可能な非流出ポリシーについて解説します。
#本質的なリスク:あなたのコードが第三者に渡る
ソースコードは、ほかのデータと同じようには扱えません。そこには自社のアルゴリズム、製造上の秘密、ハードコードされたAPIキー(実際にそうした例もあります)、セキュリティアーキテクチャが含まれています。また、法的には、顧客への権利譲渡条項の対象となっていることも多くあります。クラウド型のコーディングアシスタントは、カーソル周辺のコンテキストを読み取り、ときにはインデックス作成のためにリポジトリ全体を読み取って、それらの断片をリモートモデルに送信します。このリスクは机上の話ではありません。産業上の秘密の漏えいやNDA違反に加え、コメントに個人データが含まれていればRGPD違反のリスクも重なります。
- 営業秘密
- 第三者に公開された独自のアルゴリズムは、秘密の資産としての資格を失います(フランス商法典第L151-1条):法的保護が失われます。
- 譲渡条項
- 顧客に納品するコードについては、契約で、承認されていない再委託先への一切の開示が禁止されていることがよくあります。クラウドアシスタントは、申告されていない再委託先に当たります。
- 取引先との秘密保持契約(NDA)
- 秘密保持契約のもとでパートナーのコードを扱っている場合、それをOpenAIやAnthropicに送信することは、その契約への明確な違反です。
- 個人情報
- テストデータセット、インラインログ、あるいはメールアドレスを含むコメントがあると、その送信は GDPR の適用対象になります。
#CopilotとCursorがあなたのNDAに違反する理由
職場でのローカルAI導入:GDPR、AI Act、マルチユーザーアーキテクチャ、コスト、経営陣向けメモ。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
GitHub Copilot および Cursor は productivity に優れたツールですが、そのビジネスモデルはクラウドホスティングされたLLM(Azure/OpenAI上のCopilot、OpenAIおよびAnthropic上のCursor)に依存しています。ビジネスまたはエンタープライズプランであっても、コードはユーザーのデスクからサーバー側に送られ、自動的に補完されます。コンテンツ除外やプライバシーモード機能はデータの保存量を減らすものの、第三者へのネットワークフローは依然として存在します。第三者を特定しない非公開契約(NDA)に違反する場合、このネットワークフローは違反となります。データ保存ポリシーに関わらずです。
- Copilot Business
- コード補完のためにコードがGitHub/Azureに送信されます。「No training」はデフォルトで有効ですが、データはEU域外に転送され、CLOUD Actの適用対象となります。
- Cursor(Privacy Mode)
- プライベートモードではCursor側でのデータ保持を防げますが、リクエストは引き続きOpenAIとAnthropicのAPIを経由します。
- プライバシーモードなしのCursor
- コードが保存され、製品の改善に使われる可能性があります。厳格なNDAの下では受け入れられません。
- 共通の契約制限
- これらのサービスのいずれも、特定のサブコンサルタントにクライアントコードの譲渡を含むDPAを署名しません。
#ソースコードに関してRGPDとAI Actが求めること
RGPDが対象とするのは「ソースコード」ではなく、個人データです。コードには、思っている以上に個人データが含まれています。たとえば、コメント内のメールアドレス、テスト用の識別子、シードデータ、ログの記録などです。これらのいずれかをクラウドアシスタントに送信した時点で、データ移転を行うことになります。そのため、法的根拠、データ処理契約(DPA、第28条)に基づく処理委託先、そしてEU域外への移転であれば有効な移転の仕組み(標準契約条項)が必要です。一方、AI Actはコードアシスタントの大半を限定リスクに分類し、主に透明性に関する義務を課しています。ただし、利用者にとっての本当の課題は、その前段階にある、モデルに入力するデータのガバナンスです。
- RGPD 第28条
- データを処理するクラウドアシスタントはすべてデータ処理の委託先に当たり、署名済みのデータ処理契約(DPA)が必要です。多くのチームが契約なしで利用しています。
- GDPR(RGPD):EU域外へのデータ移転
- EU域内でホスティングしない場合は、保護措置(SCC)とデータ移転の分析が必要です。ローカルで実行すれば、この問題自体がなくなります。
- AI Act(透明性)
- コードアシスタントは「限定的なリスク」に該当します。コンテンツがAIによって生成されていることを知らせる必要があります。負担は軽いものの、文書化は必要です。
- 設計による最小化
- コンプライアンスを満たす最も簡単な方法は、データを一切転送しないことです。ローカル構成には、データ最小化が初めから組み込まれています。
#100%ローカルスタック:Ollama、Cline、Aider、Tabby
ローカルコパイロットのスタックは、2つの層で構成されています。手元のハードウェアでモデルを動かす推論サーバーと、IDEやターミナルからそのサーバーに接続するクライアントです。代表的なサーバーはOllamaで、ローカルHTTP APIを公開し、GGUFモデルのダウンロードを管理します。その上で、互いに補完し合う3つのクライアントが各用途をカバーします。VS Code内のエージェントにはCline、Gitコミットを中心としたターミナルでのペアプログラミングにはAider、チーム全体でサーバーを共有して使うCopilotのような自動補完にはTabbyです。
- Ollama
- ローカル推論サーバー(MIT)。http://localhost:11434 経由でモデルを提供します。コードのテレメトリーはなく、推論のための外部への呼び出しもありません。
- Cline
- VS Codeの拡張機能(エージェント)。ファイルの読み書き、コマンドの実行、複数ファイルにまたがるタスクの計画を行います。ローカルプロバイダーとしてOllamaに接続します。
- Aider
- ペアプログラミング用CLI(Apache 2.0)。コードの編集とGitコミットを行い、指示に沿ったリファクタリングに優れています。OllamaのAPIに接続します。
- Tabby
- セルフホスト型の自動補完サーバー(Apache 2.0)。インラインの候補表示で Copilot の代わりになり、GPU サーバーを共有する運用に最適です。
Cline では、VS Code の拡張機能の設定でプロバイダーに 'Ollama' を選択し、サーバーの URL(ローカルサーバー、または内部 GPU サーバーの URL)を入力します。クラウド API キーは一切入力しません。これにより、データの断片が OpenAI や Anthropic に送られないことが技術的に保証されます。一方、Tabby は GPU サーバー上にコンテナとしてデプロイし、各端末からその内部エンドポイントに接続します。
#アーキテクチャ:隔離された端末と共有GPUサーバーの比較
主に二つのトポロジーがあります。独立したワークステーションでは、開発者のマシン(Mac MシリーズまたはRTX搭載PC)上で Ollama を直接実行します。コードはワークステーションから離れることがなく、最も厳格なNDAに理想的ですが、個々のVRAMに制約があり、大規模な環境構築にはコストがかかります。共有GPUサーバーでは、社内ネットワーク内に1つ以上のGPUを集中配置し、ワークステーションはAPIを介して接続します。より大きなモデルを共有し、ハードウェアを合理化することで、トラフィックは厳密に社内ネットワーク内(LANまたは企業VPN)に留まります。
| 基準 | 隔離された端末(ローカルのOllama) | GPU共有サーバー(Tabby/Ollama) |
|---|---|---|
| ソースコードの範囲 | マシンの外に出ることはありません | 内部ネットワーク(LAN/VPN)内に残る |
| モデルサイズ | 端末の VRAM 容量に制約される | より大きなモデルの共有(24GB〜80GB) |
| ハードウェアコスト | 高め(1GPU/開発者) | 最適化済み(1サーバーで N 名の開発者が利用) |
| リアルタイムの自動補完 | GPUがローカルにある場合に適しています | Tabbyとバッチ処理との組み合わせで優れたパフォーマンス |
| 厳格なNDAへの準拠 | 最大(ネットワーク通信なし) | 強い(内部フローのみ、トレーサブル) |
| 保守 | 分散型で、構成が統一されていない | 一元管理、更新も管理下で実施 |
#VRAM 容量に応じたコードモデルの選び方
ローカルのコーディングアシスタントの品質は、モデルに左右されます。2026年のコーディング分野では、3つの公開モデルのファミリーが主流です。Qwen3-Coder(Alibaba、MoE 30B-A3B、256kのコンテキスト、アクティブパラメータが3Bのため高速、Apache 2.0)、Devstral(Mistral AI、ClineやOpenHandsでのエージェント利用を想定した24B、Apache 2.0)、そしてQwen 3.8 27BやGLM 4.7 Flashのようなコーディングに強い汎用モデルです。利用可能なVRAMと用途に合わせて選びます。Tabbyの自動補完には高速な小型モデル、Clineでのエージェントによる推論にはより大きなモデルが適しています。
| VRAM | おすすめモデル | 典型的な使用例 |
|---|---|---|
| 8 GB | Qwen2.5-Coder 7B ベース(FIM) | Tabby のインライン自動補完(2026 年の FIM の定番)、高速な補完 |
| 16 GB | Devstral 24B / gpt-oss 20B | 中規模リポジトリでのエージェントClineとAiderの利用 |
| 24 GB | Qwen3-Coder 30B-A3B / Qwen 3.8 27B | 複数ファイルのリファクタリング、論理的推論 |
| 48〜80 GB | Qwen3-Coder 30B-A3B Q8 / Granite 4.2 30B | 複数の開発者で共有するサーバー、長いコンテキスト |
#「ローカルプロバイダーのみ」のポリシー
ローカルのソフトウェア構成が保護を提供するのは、ポリシーによって利用範囲を厳格に制限している場合だけです。「Provider local only」とは、どの開発ツールもクラウドAIのAPIに接続できないことを意味します。この方針は、相互に補完する3つの対策で実現します。ツールの設定(クラウド用APIキーを設定しない)、ネットワークでの遮断(開発用端末からクラウドAIのエンドポイントに到達できないようにする)、組織内のルール(署名済みの規約)です。この3つを組み合わせることで初めて、監査時にそのポリシーの実効性を根拠をもって示せます。
- 01クラウド API キーの使用を禁止します開発用の端末には、OPENAI_API_KEY、ANTHROPIC_API_KEY または同等の変数を設定しません。Cline と Aider は、内部の Ollama エンドポイントだけを使用するように設定します。
- 02ファイアウォールでエンドポイントをブロックするapi.openai.com、api.anthropic.com、CopilotとCursorの各ドメインへの外向き通信をフィルタリングする。これにより、補完内容は物理的にネットワークの外へ送信できなくなります。
- 03拡張機能の設定を固定開発者が接続先をクラウドプロバイダーに戻せないように、VS Code/Clineの設定をGPOまたはMDMで配布する。
- 04利用規程と研修署名済みの利用規程で、クラウドのチャットボットにコードを貼り付けることは禁止されていると改めて確認します(残るリスクは技術的なものではなく、人の行動に起因するものです)。
- 05推論サーバーへのアクセスをログに記録Ollama/Tabbyサーバーのログは、コード補完が内部で提供されていることを証明します。監査の中核となる証拠です。
#データが外部に持ち出されていないことを監査する
「ローカルである」という主張は、証明されて初めて意味を持ちます。コードが外部に流出しないことを確認する監査では、コーディング支援ツールの使用中にコードの断片が一切対象環境の外へ出ないことを、記録を根拠に示します。最も説得力のある方法はネットワークの観測です。集中的にコーディングを行うセッション中に端末の通信をキャプチャし、クラウドAIのエンドポイントへの接続が一切ないことを確認します。さらに、設定とサーバーログの点検で補完します。
- ネットワーク通信の証拠
- tcpdump/Wiresharkでのキャプチャ:表示されるのは、内部サーバーと内部GitリポジトリのIPアドレスだけです。クラウドAIのエンドポイントは一切ありません。
- 設定の証拠
- 内部のOllamaプロバイダーが設定され、クラウド用のキーがないことを示すCline/Aiderの設定のエクスポート。
- 通信が遮断されることの証拠
- ネガティブテスト:開発用端末から api.openai.com へのアクセスを手動で試みると、ファイアウォールによって失敗します。
- サーバー側の証拠
- コード補完と社内端末を対応付ける、タイムスタンプ付きのOllama/Tabbyログ。
#ローカルとクラウド:率直な比較と選択
公平に見れば、最大規模のモデルそのものの品質と、インフラ管理の手間がかからない点では、クラウドが依然として優位です。プロプライエタリなクラウドアシスタントは、複雑な推論を要する一部のタスクで、ローカルのQwen3-Coder 30B-A3Bを上回る場合があります。ローカル運用にはハードウェアへの投資と推論サーバーを維持するチームが必要で、特に高度なタスクでは品質がやや劣ります。適切な判断はイデオロギーではなく、コードの機密性に左右されます。
- 次の条件に当てはまるなら、ローカルを選んでください
- NDAの対象コード、譲渡条項、企業秘密、または承認されていない第三者の下請けを禁止する顧客がある場合です。
- クラウドで十分な場合の条件
- あなたのコードはオープンソースであり、個人データを含みません。第三者に対して秘密保持契約の義務もありません。
- ローカルでの実際のコスト
- GPU サーバー(24〜48 GB)の導入費用をチーム全体で償却すると、2〜3 年間では、利用者ごとにクラウドライセンスを契約するよりも安くなることがよくあります。
- クラウドの隠れたリスク
- NDA違反がたった1件でも発生すれば、そのコスト(契約の喪失、訴訟)はローカルライセンスの何年分もの費用を上回ります。
#結論と実装
自社の独自コードを一切外部にさらさずに、開発チームへ高性能なコパイロットを導入することは、今では現実的です。Ollamaを推論サーバーに、ClineとAiderをエージェントとターミナルに、Tabbyをチームで共有する自動補完に使い、全体に「ローカルプロバイダーのみ」というポリシーと、コードが外部へ流出しないことを確認する再現可能な監査を適用します。GDPRとAI Actへの適合は、要素を減らすことで実現します。データ転送なし、処理の委託先なし、問題となる点なし、という考え方です。導入時間を短縮するために、有料ガイド『ローカルコードコパイロット』では、Ollama + Cline + Aiderをすぐに導入できるパックを提供しています。すぐに使える設定、VRAM容量に応じたモデル選び、クラウドのエンドポイントを遮断するネットワークポリシー、そして外部流出がないことを確認する監査スクリプトが含まれます。法務部門や顧客に対して妥当性を説明できる構成を、数時間で導入するための一式です。
Copilot Enterpriseの利用は、本当にNDAと両立しないのでしょうか?+
Ollamaを使ったローカル環境は、Copilotを置き換えられるほど高性能ですか?+
10人の開発者チームに適したGPUはどのようなものでしょうか?+
GDPRは、コードを扱う際に本当にローカル環境の利用を義務付けていますか?+
クライアントに、どのラインも漏れがないことを証明する方法は?+
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。