Skip to main content

GitHub Copilotを扱う際の情報漏洩対策

GitHub Copilotは、プロンプトに加えて、編集中のコード、開いているファイル、ワークスペース、リポジトリ、ターミナル出力などをコンテキストとして利用する場合があります。エージェント機能やMCPサーバーを使用すると、ファイルの読み取り、コマンドの実行、外部サービスへのアクセスも可能になります。

そのため、情報漏洩対策は「プロンプトに秘密を書かない」だけでは不十分です。開発者によるデータの確認と、管理者による契約・ポリシー・権限・ネットワークの制御を組み合わせるのが効果的です。

important

プランや管理機能だけで、機密情報の送信を完全に防止できるわけではありません。利用する機能、クライアント、モデル、拡張機能、MCPサーバーによってデータの送信先や取り扱いが変わる可能性があります。導入時と設定変更時には、最新の契約条件、プライバシー文書、公式ドキュメントを確認することをおすすめします。

プランの種類

GitHub Copilotのプランは、個人向けと組織向けに分かれます。

区分主なプラン契約・管理の主体組織での利用
個人向けCopilot Free、Student、Pro、Pro+、Max個人組織の管理者がCopilotの設定を一元管理できない
組織向けCopilot Business、Enterprise組織またはEnterpriseシート割り当て、機能ポリシー、コンテンツ除外、利用状況の確認などが可能

学生やオープンソースメンテナー向けの無償提供であっても、個人向けプランとして利用する場合は、組織向けの管理下には入りません。業務で使用するアカウントとプランは、組織が明確にしておくとよいでしょう。

個人向けプランのモデル学習への利用

warning

2026年4月24日以降、Copilot Free、Pro、Pro+、Maxでは、既定の設定のまま利用すると、入力、出力、コードスニペット、関連するコンテキストなどの操作データが、AIモデルの学習と改善に利用される場合があります。この点からも、個人向けプランでは機密情報や業務データを扱わないほうが安全です。

個人向けプランの利用者は、GitHubの個人設定にある Allow GitHub to use my data for AI model trainingDisabled にすることで、モデル学習への利用をオプトアウトできます。ただし、この設定はデータがサービスへ送信されなくなることや、サービス提供に必要な処理が行われなくなることを意味しません。オプトアウト後も、入力できる情報について組織の規程と適用されるプライバシー文書を確認するとよいでしょう。

Copilot BusinessとCopilot Enterpriseの顧客データは、顧客の承認なしにAIモデルの学習へ利用しないことがGitHubのData Protection Agreementで定められているため、この個人設定は表示されません。

組織の管理者は、個人向けプランのモデル学習設定を一元管理できません。業務での個人向けプラン利用を禁止する場合は、規程で禁止するだけでなく、BusinessまたはEnterpriseのシートを割り当て、後述するプラン別ネットワークルーティングや端末管理を併用する方法が有効です。

開発者向けの対策

入力前にデータを分類する

ソースコードやログをCopilotに参照させる前に、所属組織の情報分類と生成AI利用規程を確認するとよいでしょう。少なくとも次の情報は、明示的に許可されていない限り入力または参照させないのが安全です。

  • パスワード、APIキー、アクセストークン、Cookie、秘密鍵
  • 接続文字列、証明書、環境変数ファイル
  • 個人情報、顧客データ、医療・決済・認証に関する情報
  • 未公開の脆弱性、インシデント情報
  • 契約上、第三者サービスへの送信が禁止されているコードや文書

GitHubへコミットしていないファイルでも、ワークスペース内にあればCopilotがコンテキストとして参照する可能性があります。.gitignoreはGitの追跡対象から外す設定であり、Copilotからの除外を保証するものではありません。

必要なファイルだけを参照させる

意図しないデータがコンテキストに含まれる可能性を減らすため、次のような取り扱いがおすすめです。

  • 機密情報を含まない最小限のフォルダーをワークスペースとして開く
  • チャットへ添付するファイル、選択範囲、ターミナル出力を送信前に確認する
  • ログやデータを分析する場合は、分析用のコピーを作成し、適用される方針に応じて匿名化する
  • 秘密情報をソースコードへ直接記述せず、シークレット管理サービスを使用する
  • 調査が終わった一時ファイル、チャット、生成物を保存規程に従って削除する

エージェントと外部ツールの権限を制限する

エージェントは、承認された操作の範囲でファイル変更やコマンド実行を行います。MCPサーバーや拡張機能を追加すると、GitHub以外のサービスにもデータが送信される可能性があります。

影響範囲を抑えるには、次のような制限が有効です。

  • コマンドやツール呼び出しを自動承認せず、内容を確認する
  • ワークスペース外のファイルへアクセスさせない
  • 開発用アカウントには本番環境の権限を与えない
  • MCPサーバーは提供元、送信データ、認証方式、ログ保持を審査する
  • 不要な拡張機能とMCPサーバーを無効化する
  • 外部サービスへの書き込み操作は、対象と差分を確認してから承認する

出力にも機密情報がないか確認する

Copilotの回答や生成したコードに、入力した機密情報、実在する内部URL、ログの個人情報などが再出力される場合があります。チャットの回答をIssue、Pull Request、社内チャットへ貼り付ける前に確認しておくと安心です。

管理者向けの対策

BusinessまたはEnterpriseプランを使用する

業務利用には、組織がライセンスとポリシーを管理できるCopilot BusinessまたはCopilot Enterpriseが適しています。個人向けプランとの主な違いは、組織が次の制御を行える点です。

  • ユーザーへのシートの割り当てと取り消し
  • Copilotの機能や利用可能なモデルのポリシー設定
  • パブリックコードと一致する提案の扱い
  • コンテンツ除外
  • 利用状況と監査ログの確認
  • プラン別ネットワークルーティング

利用者へ組織のシートを割り当てるだけでなく、個人アカウントとの使い分け、退職・異動時の取り消し、外部委託先の扱いも運用手順に含めるとよいでしょう。

機能ポリシーを設定する

OrganizationまたはEnterpriseのCopilotポリシーでは、業務上必要な機能だけを有効にするのがおすすめです。特に、次の機能はデータや権限の範囲が広がるため、利用目的とリスクを確認するとよいでしょう。

  • コーディングエージェントと外部エージェント
  • MCPサーバー
  • Web検索
  • 外部モデルや追加モデル
  • プレビュー機能

EnterpriseとOrganizationの両方でポリシーを設定できる場合は、どちらが最終的に適用されるかを確認しておくと安心です。設定変更の記録と定期的な棚卸しも、意図しない設定の変化を見つけるのに役立ちます。

コンテンツ除外を設定する

Copilot BusinessとCopilot Enterpriseでは、リポジトリ、パス、ファイルをコンテンツ除外の対象にできます。資格情報、暗号化処理、独自アルゴリズム、顧客別設定など、Copilotへ参照させる必要がない場所は除外するとよいでしょう。

ただし、コンテンツ除外の対応範囲はクライアントと機能によって異なります。公式ドキュメントでは、対応していない編集機能やエージェント機能があることも示されています。また、除外対象ファイルの内容がIDEの別機能などを経由して間接的に提供される可能性もあります。

コンテンツ除外を唯一の防御にせず、次の対策を併用するとより安全です。

  • リポジトリに秘密情報を保存しない
  • 機密度の異なるコードやデータをリポジトリまたは環境で分離する
  • ファイルとリポジトリのアクセス権を最小化する
  • 対応するクライアントと機能を検証してから展開する

Individualプランへのアクセスを制限する

組織の承認や管理を受けていない生成AIを従業員が業務に利用することは、一般にシャドーAIと呼ばれます。個人で契約したGitHub Copilotへ業務上のコードやデータを入力することも、組織が利用を承認しておらず、データの送信先、学習への利用、アクセス権、利用状況を把握できない場合はシャドーAIに該当します。

シャドーAIは、利用者が悪意なく業務を効率化しようとして発生することもあります。しかし、組織が契約条件やデータの取り扱いを審査できず、退職時のアクセス停止、監査、インシデント調査も困難になります。承認済みのBusinessまたはEnterpriseプランを提供し、利用可能なデータと機能を周知したうえで、技術的な制御を組み合わせるのがよいでしょう。

GitHub Copilotはプランごとに専用のネットワークエンドポイントを使用します。組織のファイアウォールまたはプロキシで、組織向けエンドポイントだけを許可し、個人向けエンドポイントをブロックできます。

用途エンドポイント制御
Copilot Business*.business.githubcopilot.comBusinessを使用する場合は許可
Copilot Enterprise*.enterprise.githubcopilot.comEnterpriseを使用する場合は許可
個人向けプラン*.individual.githubcopilot.com業務ネットワークではブロック

設定時は、Copilot許可リストリファレンスに記載された、認証やCopilotの動作に必要な他のホスト名も許可する必要があります。クライアントがプラン別ルーティングに対応する最小バージョンを満たしていることも確認するとよいでしょう。

note

ネットワーク制御は、管理対象ネットワークを経由する通信に対して有効です。モバイル回線、家庭内ネットワーク、管理外端末などからの利用も抑制したい場合は、端末管理、利用規程、ID管理などを併用すると効果的です。

監査と教育を継続する

導入時に安全な設定を行っても、利用者の異動、新機能やモデルの追加、クライアントの更新、MCPサーバーの導入などによって、実際の利用状況と当初の想定に差が生じます。また、規程が分かりにくかったり、承認済みの手段が業務に合わなかったりすると、利用者が個人向けAIを使うシャドーAIにつながることがあります。そのため、技術的な制御を設定して終わりにせず、監査と教育を継続することが大切です。

  • Copilotのシート割り当て、利用状況、監査ログを定期的に確認する
  • 秘密情報スキャンとPush Protectionをリポジトリで有効にする
  • DLP、プロキシ、端末管理など既存の情報保護策と組み合わせる
  • 許可されるデータ、禁止されるデータ、承認済みツールを具体例で周知する
  • プラン、モデル、拡張機能、MCPサーバーの変更時に再評価する
  • 情報漏洩を疑った場合の報告先と初動手順を訓練する

監査では、シートが適切な利用者に割り当てられているか、禁止した機能や個人向けエンドポイントが使用されていないか、秘密情報がリポジトリへ混入していないかなどが確認項目になります。利用状況の数値だけで安全性や生産性を判断せず、監査ログ、端末やネットワークの記録、利用者への聞き取りを、組織のプライバシー規程に従って組み合わせると実態を把握しやすくなります。

教育では、禁止事項を伝えるだけでなく、承認済みのプランやツールを使って業務を安全に進める具体例を示すと理解しやすくなります。監査で見つかった設定の不備、誤操作、判断に迷った事例は、個人の責任だけにせず、ポリシー、権限、手順、教育内容の改善に活用できます。

ガバナンスと生産性のバランスを取る

すべての機能やデータを一律に禁止すれば、表面的なリスクは減らせますが、Copilotによる生産性向上の機会も失われます。また、承認済みの手段が実際の業務に使いにくい場合、利用者が管理外のサービスを使い始め、かえってシャドーAIを増やす可能性があります。厳しい制限を設けること自体をベストプラクティスとせず、情報の機密度と操作の影響に応じて制御を変える方法が適しています。

例えば、公開情報の要約や匿名化済みログの分析は広く許可し、社内コードや顧客データは組織管理のプランと承認済み環境に限定し、本番環境への変更や外部サービスへの書き込みには人の承認を必須にするなど、リスクに応じて段階を分けます。

組織では、例えば次のような運用が考えられます。

  • 安全な既定値を設定しつつ、業務上必要な機能は申請によって利用できるようにする
  • 承認済みのプラン、モデル、MCPサーバーを、利用者が迷わず選べる形で提供する
  • 禁止事項だけでなく、許可されるデータ、操作、利用例を明確にする
  • 少人数で試行し、効果と問題を確認してから対象範囲や権限を段階的に拡大する
  • 利用者からの要望、インシデント、監査結果、技術の変化をもとにポリシーを定期的に見直す

ガバナンスの目的は利用を妨げることではなく、組織が許容できるリスクの範囲で、利用者がCopilotの能力を安全かつ柔軟に活用できる状態を作ることだと考えるとよいでしょう。

まとめ

GitHub Copilotの情報漏洩対策では、特定の設定やプランだけに依存せず、開発者と管理者がそれぞれの役割を分担することが大切です。

  • 開発者は、Copilotへ渡されるプロンプトとコンテキストを理解し、必要なデータだけを参照させる
  • エージェント、コマンド、MCPサーバーには必要最小限の権限だけを与え、操作を確認する
  • 個人向けプランではモデル学習へのデータ利用設定を確認し、業務データには組織が管理するプランを使用する
  • 管理者は、シート、機能ポリシー、コンテンツ除外、ネットワーク、端末、監査を組み合わせる
  • 情報漏洩が疑われる場合は、履歴の削除だけで終わらせず、資格情報の失効と正式なインシデント対応を行う

Copilotへ送信してもよい情報と、Copilotに実行させてもよい操作を分けて管理し、プロンプト、技術的な制限、人による承認を組み合わせた多層防御を構成することをおすすめします。

important

生成AIを取り巻く状況は変化が速く、プラン、利用可能なモデル、学習へのデータ利用、保存期間、サブプロセッサー、管理機能、適用される契約やプライバシー文書は頻繁に更新されます。本記事の内容だけで判断せず、GitHubの公式ドキュメント、契約条件、変更履歴と、所属組織の最新規程を確認することを強くおすすめします。

導入時だけでなく、契約更新時、新機能や新しいモデルの有効化時、MCPサーバーや拡張機能の追加時、および定期的な監査時にも再確認する機会を設けておくと安心です。

参考情報