上級 16 分デプロイ

企業でのコーディングAI:独自のソースコード、NDA、機密情報を守る industriel

開発者がクラウドアシスタントにビジネスロジック関数を貼り付けてリファクタリングを行います。わずか1秒で、割譲条項とNDAの対象となっているコードの断片が、米国のサードパーティのサーバーを介して、貴社の管理範囲外に流出してしまいます。ソフトウェアベンダー、設計事務所、あるいは産業秘密を保持するESN(ITサービス企業)にとって、この無害に見える一連の操作は、法的および契約上の重大な脆弱性です。本ガイドは、自社の開発者に高性能なコパイロットを配備しつつ、プロプライエタリなコードの1行たりとも企業のネットワーク外に流出させないことを目指す技術責任者やCIO(最高情報責任者)向けに作成されています。ここでは、GitHub CopilotやCursorが「エンタープライズ」オプションを備えているにもかかわらず問題となる理由、GDPR(一般データ保護規則)とAI Act(AI法)が実際に要求している内容、そして100%ローカルスタック(Ollama、Cline、Aider、Tabby)をワークステーションまたは共有GPUサーバーにデプロイする方法、さらに監査可能な非流出ポリシーについて解説します。

著者 Mohamed Meguedmi·更新 2026-08-27·Ubuntu 24.04でテスト済み

#本質的なリスク:あなたのコードが第三者に渡る

ソースコードは、ほかのデータと同じようには扱えません。そこには自社のアルゴリズム、製造上の秘密、ハードコードされたAPIキー(実際にそうした例もあります)、セキュリティアーキテクチャが含まれています。また、法的には、顧客への権利譲渡条項の対象となっていることも多くあります。クラウド型のコーディングアシスタントは、カーソル周辺のコンテキストを読み取り、ときにはインデックス作成のためにリポジトリ全体を読み取って、それらの断片をリモートモデルに送信します。このリスクは机上の話ではありません。産業上の秘密の漏えいやNDA違反に加え、コメントに個人データが含まれていればRGPD違反のリスクも重なります。

営業秘密
第三者に公開された独自のアルゴリズムは、秘密の資産としての資格を失います(フランス商法典第L151-1条):法的保護が失われます。
譲渡条項
顧客に納品するコードについては、契約で、承認されていない再委託先への一切の開示が禁止されていることがよくあります。クラウドアシスタントは、申告されていない再委託先に当たります。
取引先との秘密保持契約(NDA)
秘密保持契約のもとでパートナーのコードを扱っている場合、それをOpenAIやAnthropicに送信することは、その契約への明確な違反です。
個人情報
テストデータセット、インラインログ、あるいはメールアドレスを含むコメントがあると、その送信は GDPR の適用対象になります。
!
「お客様のデータを学習には使用しません」という言葉の落とし穴
学習にデータを使わないという保証(zero data retention)だけでは、問題の一部しか解決しません。コードは引き続き送信され、EU域外のサーバー上でメモリ処理され、米国のCLOUD Actの適用対象にもなります。学習に使わないことは、データを転送しないことを意味しません。

#CopilotとCursorがあなたのNDAに違反する理由

エンタープライズ向けローカルAIキット

職場でのローカル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を署名しません。
i
決定的なテスト
法務担当者に以下の質問を投げてください。「顧客Xのコードをアメリカ合衆国に位置する第三者サーバーYに送信することは可能ですか?」。いずれかの契約において否定的な回答が得られた場合、チーム全体で一貫性を保つためにクラウドアシスタントのデプロイは不可能です。その場合、ローカル環境が唯一の整合性を保つ戦略となります。

#ソースコードに関してRGPDとAI Actが求めること

RGPDが対象とするのは「ソースコード」ではなく、個人データです。コードには、思っている以上に個人データが含まれています。たとえば、コメント内のメールアドレス、テスト用の識別子、シードデータ、ログの記録などです。これらのいずれかをクラウドアシスタントに送信した時点で、データ移転を行うことになります。そのため、法的根拠、データ処理契約(DPA、第28条)に基づく処理委託先、そしてEU域外への移転であれば有効な移転の仕組み(標準契約条項)が必要です。一方、AI Actはコードアシスタントの大半を限定リスクに分類し、主に透明性に関する義務を課しています。ただし、利用者にとっての本当の課題は、その前段階にある、モデルに入力するデータのガバナンスです。

RGPD 第28条
データを処理するクラウドアシスタントはすべてデータ処理の委託先に当たり、署名済みのデータ処理契約(DPA)が必要です。多くのチームが契約なしで利用しています。
GDPR(RGPD):EU域外へのデータ移転
EU域内でホスティングしない場合は、保護措置(SCC)とデータ移転の分析が必要です。ローカルで実行すれば、この問題自体がなくなります。
AI Act(透明性)
コードアシスタントは「限定的なリスク」に該当します。コンテンツがAIによって生成されていることを知らせる必要があります。負担は軽いものの、文書化は必要です。
設計による最小化
コンプライアンスを満たす最も簡単な方法は、データを一切転送しないことです。ローカル構成には、データ最小化が初めから組み込まれています。
→
ローカル環境:「引き算」で実現するコンプライアンス
クラウドツールのためにDPA、SCC、影響評価、コンテンツの除外措置を積み重ねる代わりに、100%ローカルで導入すればデータ転送そのものをなくせます。転送がなければ、データ処理の委託先もなく、モデルへの入力に関するGDPR上の問題もありません。監査人に対して最も説明しやすく、正当性を示しやすい方法です。

#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 サーバーを共有する運用に最適です。
基盤となるOllamaとコード用モデルをインストールする
# Serveur d'inference local
curl -fsSL https://ollama.com/install.sh | sh

# Modele de code recommande pour 16 Go VRAM (specialiste agent de code)
ollama pull devstral:24b

# Verifier que l'API locale repond (aucun appel sortant)
curl http://localhost:11434/api/tags
AiderをOllamaに接続する(ターミナル)
pip install aider-install && aider-install

# Pointer Aider vers le serveur local, jamais vers une API cloud
export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/devstral:24b

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)に留まります。

2つのデプロイメントトポロジーの比較
基準隔離された端末(ローカルのOllama)GPU共有サーバー(Tabby/Ollama)
ソースコードの範囲マシンの外に出ることはありません内部ネットワーク(LAN/VPN)内に残る
モデルサイズ端末の VRAM 容量に制約されるより大きなモデルの共有(24GB〜80GB)
ハードウェアコスト高め(1GPU/開発者)最適化済み(1サーバーで N 名の開発者が利用)
リアルタイムの自動補完GPUがローカルにある場合に適していますTabbyとバッチ処理との組み合わせで優れたパフォーマンス
厳格なNDAへの準拠最大(ネットワーク通信なし)強い(内部フローのみ、トレーサブル)
保守分散型で、構成が統一されていない一元管理、更新も管理下で実施
→
推奨されるハイブリッドアーキテクチャ
実際の運用では、GPUサーバー上のTabbyでチーム全体が共有する自動補完を提供し(高スループット、バッチ処理)、最も機密性の高いリポジトリを扱う端末やネットワークに接続せずに作業する端末では、ローカルのOllamaを使うという組み合わせにします。これらすべてを、既知のクラウドAIエンドポイントをブロックするネットワークポリシーの下で運用します。

#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容量別のローカルコード生成モデル(Q4量子化)
VRAMおすすめモデル典型的な使用例
8 GBQwen2.5-Coder 7B ベース(FIM)Tabby のインライン自動補完(2026 年の FIM の定番)、高速な補完
16 GBDevstral 24B / gpt-oss 20B中規模リポジトリでのエージェントClineとAiderの利用
24 GBQwen3-Coder 30B-A3B / Qwen 3.8 27B複数ファイルのリファクタリング、論理的推論
48〜80 GBQwen3-Coder 30B-A3B Q8 / Granite 4.2 30B複数の開発者で共有するサーバー、長いコンテキスト
i
約束する前に実際の VRAM 要件を確認する
モデルについて示されている VRAM 必要量は、量子化とコンテキスト長によって変わります(KV キャッシュはコンテキストが長くなるほど大きくなります)。Qwen3-Coder 30B-A3B の Q4(19 GB)は、コンテキスト長が適度であれば 24 GB の VRAM に収まりますが、256k のコンテキストでは容量を超える可能性があります。実際の負荷でテストしてください。

#「ローカルプロバイダーのみ」のポリシー

ローカルのソフトウェア構成が保護を提供するのは、ポリシーによって利用範囲を厳格に制限している場合だけです。「Provider local only」とは、どの開発ツールもクラウドAIのAPIに接続できないことを意味します。この方針は、相互に補完する3つの対策で実現します。ツールの設定(クラウド用APIキーを設定しない)、ネットワークでの遮断(開発用端末からクラウドAIのエンドポイントに到達できないようにする)、組織内のルール(署名済みの規約)です。この3つを組み合わせることで初めて、監査時にそのポリシーの実効性を根拠をもって示せます。

  1. 01
    クラウド API キーの使用を禁止します
    開発用の端末には、OPENAI_API_KEY、ANTHROPIC_API_KEY または同等の変数を設定しません。Cline と Aider は、内部の Ollama エンドポイントだけを使用するように設定します。
  2. 02
    ファイアウォールでエンドポイントをブロックする
    api.openai.com、api.anthropic.com、CopilotとCursorの各ドメインへの外向き通信をフィルタリングする。これにより、補完内容は物理的にネットワークの外へ送信できなくなります。
  3. 03
    拡張機能の設定を固定
    開発者が接続先をクラウドプロバイダーに戻せないように、VS Code/Clineの設定をGPOまたはMDMで配布する。
  4. 04
    利用規程と研修
    署名済みの利用規程で、クラウドのチャットボットにコードを貼り付けることは禁止されていると改めて確認します(残るリスクは技術的なものではなく、人の行動に起因するものです)。
  5. 05
    推論サーバーへのアクセスをログに記録
    Ollama/Tabbyサーバーのログは、コード補完が内部で提供されていることを証明します。監査の中核となる証拠です。

#データが外部に持ち出されていないことを監査する

「ローカルである」という主張は、証明されて初めて意味を持ちます。コードが外部に流出しないことを確認する監査では、コーディング支援ツールの使用中にコードの断片が一切対象環境の外へ出ないことを、記録を根拠に示します。最も説得力のある方法はネットワークの観測です。集中的にコーディングを行うセッション中に端末の通信をキャプチャし、クラウドAIのエンドポイントへの接続が一切ないことを確認します。さらに、設定とサーバーログの点検で補完します。

セッション中に送出されるトラフィックをキャプチャし、検証する
# 1. Capturer le trafic du poste pendant une session de codage Cline/Aider
sudo tcpdump -i any -n 'tcp port 443' -w /tmp/session_code.pcap

# 2. Lister les IP/destinations contactees (hors reseau interne)
tcpdump -r /tmp/session_code.pcap -n | awk '{print $5}' | cut -d. -f1-4 | sort -u

# 3. Verifier qu'aucune resolution ne vise un endpoint d'IA cloud
grep -Ei 'openai|anthropic|githubcopilot|cursor' /var/log/dnsmasq.log || echo 'OK : aucune requete IA cloud'
ネットワーク通信の証拠
tcpdump/Wiresharkでのキャプチャ:表示されるのは、内部サーバーと内部GitリポジトリのIPアドレスだけです。クラウドAIのエンドポイントは一切ありません。
設定の証拠
内部のOllamaプロバイダーが設定され、クラウド用のキーがないことを示すCline/Aiderの設定のエクスポート。
通信が遮断されることの証拠
ネガティブテスト:開発用端末から api.openai.com へのアクセスを手動で試みると、ファイアウォールによって失敗します。
サーバー側の証拠
コード補完と社内端末を対応付ける、タイムスタンプ付きのOllama/Tabbyログ。
→
一度文書化し、繰り返し再実行する
監査(キャプチャ+分析+報告書作成)をスクリプト化し、定期的に実行するようスケジュールしてください。顧客やCNILから質問を受けたときには、再現可能な監査資料一式のほうが、その場限りの主張よりもはるかに役立ちます。

#ローカルとクラウド:率直な比較と選択

公平に見れば、最大規模のモデルそのものの品質と、インフラ管理の手間がかからない点では、クラウドが依然として優位です。プロプライエタリなクラウドアシスタントは、複雑な推論を要する一部のタスクで、ローカルのQwen3-Coder 30B-A3Bを上回る場合があります。ローカル運用にはハードウェアへの投資と推論サーバーを維持するチームが必要で、特に高度なタスクでは品質がやや劣ります。適切な判断はイデオロギーではなく、コードの機密性に左右されます。

次の条件に当てはまるなら、ローカルを選んでください
NDAの対象コード、譲渡条項、企業秘密、または承認されていない第三者の下請けを禁止する顧客がある場合です。
クラウドで十分な場合の条件
あなたのコードはオープンソースであり、個人データを含みません。第三者に対して秘密保持契約の義務もありません。
ローカルでの実際のコスト
GPU サーバー(24〜48 GB)の導入費用をチーム全体で償却すると、2〜3 年間では、利用者ごとにクラウドライセンスを契約するよりも安くなることがよくあります。
クラウドの隠れたリスク
NDA違反がたった1件でも発生すれば、そのコスト(契約の喪失、訴訟)はローカルライセンスの何年分もの費用を上回ります。
i
判断基準を一文で
すべてのデポにおいて「第三者にこのコードを送付できるか?」に「はい」と答えることができない場合、一貫したローカルスタックを導入してください。ケースごとにクラウドとローカルを混在させるよりも、管理が簡単です。

#結論と実装

自社の独自コードを一切外部にさらさずに、開発チームへ高性能なコパイロットを導入することは、今では現実的です。Ollamaを推論サーバーに、ClineとAiderをエージェントとターミナルに、Tabbyをチームで共有する自動補完に使い、全体に「ローカルプロバイダーのみ」というポリシーと、コードが外部へ流出しないことを確認する再現可能な監査を適用します。GDPRとAI Actへの適合は、要素を減らすことで実現します。データ転送なし、処理の委託先なし、問題となる点なし、という考え方です。導入時間を短縮するために、有料ガイド『ローカルコードコパイロット』では、Ollama + Cline + Aiderをすぐに導入できるパックを提供しています。すぐに使える設定、VRAM容量に応じたモデル選び、クラウドのエンドポイントを遮断するネットワークポリシー、そして外部流出がないことを確認する監査スクリプトが含まれます。法務部門や顧客に対して妥当性を説明できる構成を、数時間で導入するための一式です。

よくある質問
Copilot Enterpriseの利用は、本当にNDAと両立しないのでしょうか?+
NDAによる制限に依存します。契約に第三者(特定の承認を受けたもの以外)への情報開示が禁止されている場合、はい:非訓練モードでもコードはGitHub/Azureのインフラを経由し、第三者への情報開示となります。すべてのクライアント契約は、法務部門の承認を得てからクラウドデプロイを行う必要があります。
Ollamaを使ったローカル環境は、Copilotを置き換えられるほど高性能ですか?+
自動補完や日常的なペアプログラミングであれば、十分に対応できます。Tabbyはインライン補完を提供し、Qwen2.5-Coder 7Bのベースモデルを使用します。このモデルは2026年でもFIMの定番です。エージェント型チャットでは、Devstral 24BやQwen3-Coder 30B-A3Bが、大半のタスクで引けを取らない性能を発揮します。非常に複雑な推論では、より大規模なクラウドモデルが依然として優位ですが、その差は縮まっており、機密性が保証されることで判断も変わります。
10人の開発者チームに適したGPUはどのようなものでしょうか?+
24〜48GBのVRAMを備えた共有GPUサーバー(たとえば開始時は24GBカード)でTabbyとOllamaを動かせば、Devstral 24BまたはQwen3-Coder 30B-A3Bを使ったコード補完では、通常、約10人の開発者に十分です。実際の負荷を測定してください。長いコンテキストはKVキャッシュを膨らませ、必要なVRAMを増やします。
GDPRは、コードを扱う際に本当にローカル環境の利用を義務付けていますか?+
いいえ、GDPRはローカル実行を義務付けていません。個人データの移転が発生する場合(コメント、ログ、テストデータ)には、適法な根拠とデータ処理契約(DPA)が必要で、EU域外への移転には移転を保護する措置も求められます。ローカル実行は、単に法令遵守への最も簡単な方法です。データ移転がなくなることで、これらの義務の大半もなくなるからです。
クライアントに、どのラインも漏れがないことを証明する方法は?+
再現可能な監査資料で証明します。具体的には、コーディングセッション中にクラウドAIのエンドポイントへの接続がゼロであることを示すネットワークトラフィックのキャプチャ、クラウド用キーを含まないツール設定のエクスポート、ファイアウォールでアクセスが遮断されることを確認するネガティブテスト、そして内部推論サーバーのログです。要求に応じて再実行できるよう、すべてをスクリプト化してください。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。