アクセス解析は同意後だけ使います。詳細

安全と会社での利用

Claude Codeで情報漏洩しない?送られるデータと安全な設定

要点この記事の答え
  1. 頼んだ内容と答えはAnthropicへ送られ、扱いは契約で決まります。
  2. TeamやAPIなど商用の契約は、申し込まない限り学習に使われません。
  3. .envや鍵はdenyで読めなくし、シェルはsandboxで囲みます。
Claude Code は頼んだ内容と答えを Anthropic へ送り、学習と保存の扱いは契約で決まるので、個人向けプランは学習の設定を確かめ、.env や鍵は deny で読めなくし、シェルは sandbox で囲む。

Claude Codeは、頼んだ内容とClaudeの答えをAnthropicのサーバーへ送って動きます。 作業中にClaudeが読んだコードも、この会話に入ります。 送ったデータを学習に使うかどうかと、どれだけ保存されるかは、契約の種類で決まります。Free、Pro、Maxの個人向けプランは設定で選べ、Team、Enterprise、APIの商用の契約は、自分から学習用に提供する申し込みをしない限り、学習に使われません。

情報漏洩を防ぐ基本は、見せたくないファイル(.envや鍵)をpermissions.denyで読めなくすること、シェルのコマンドをsandboxで囲むこと、個人向けプランなら学習の設定を確かめることの3つです。

内容は、2026年10月23日に公式のデータの使い方、セキュリティ、権限の設定、設定の一覧、sandboxの説明と照らし合わせました。

どのデータがどこへ行くか

データの使い方の説明によると、Claude Codeは手元のパソコンで動き、モデルとやりとりするためにネットワークへデータを送ります。主な行き先は次の通りです。

  • 頼んだ内容とClaudeの答え → AnthropicのAPI(Bedrockなどを使うならそちら)。すべての指示と出力。TLS 1.2以上で暗号化して送ります
  • 利用の計測(メトリクス) → Anthropicと外部の記録の仕組み。速さ、安定性、使い方の傾向。コード、指示、ファイルのパスは含みません
  • エラーの報告 → 外部のエラー追跡の仕組み。Claude Code自身のエラー。ProかMaxでログインし、Claude APIに直接つないでいる場合(v2.1.198以降)に送られます。ゼロデータ保持やHIPAAの契約がある組織では送られません。秘密情報、パス、メールアドレスなどの決まった形は消してから送ります
  • /feedbackで送った報告 → Anthropic(Google Cloud Storageに保存)。コードを含む会話の写し。5年間保存されます
  • WebFetchで開くURLのホスト名 → api.anthropic.com。危険なサイトかを確かめるため、ホスト名だけを送ります。URLの全体やページの中身は送りません
  • 会話の記録 → 自分のパソコンの~/.claude/projects/。再開するために、平文で30日間(初期設定)残ります

クラウドで動かすセッション(ブラウザ版など)では、リポジトリがAnthropicの管理する仮想マシンに複製され、会話の記録がAnthropicに保存されます。GitHubの認証情報は暗号化してAnthropicのサーバーに置かれ、仮想マシンには入りません。

学習に使われるか、どれだけ保存されるか

データの使い方の説明の内容は次の通りです。

契約学習に使うか保存期間
契約Free、Pro、Max(個人向け)学習に使うか自分で選ぶ。オンなら、Claude Codeでの利用も学習に使われます保存期間オンなら5年、オフなら30日
契約Team、Enterprise、API(商用)学習に使うか使わない(Development Partner Programなどに自分で申し込んだ場合を除く)保存期間標準で30日
契約Enterpriseのゼロデータ保持(ZDR)学習に使うか使わない保存期間サーバーに残さない。条件を満たす組織だけに、担当チームが組織ごとに有効にします

残る日数を並べると、次の通りです。

図 1Claude Codeのデータが残る日数(契約と設定ごと)個人向けで学習をオンにすると5年、オフなら30日です。オンにすると、残る期間は約61倍になります。
05001,0001,5002,0001,825日個人 学習オン30日個人 学習オフ30日商用 標準0日商用 ZDR30日手元の記録01,0002,0001,825日個人 学習オン30日個人 学習オフ30日商用 標準0日商用 ZDR30日手元の記録01,0002,0001,825日個人 学習オン30日個人 学習オフ30日商用 標準0日商用 ZDR30日手元の記録
出典 Claude Codeの公式ドキュメントData usageの「Data retention」。2026年10月24日に確かめました。5年は1年を365日として1,825日に直し、約61倍は1,825日を30日で割って四捨五入しました。「手元の記録」は自分のパソコンの~/.claude/projects/に残る会話の記録で、初期設定の日数です。ZDR(ゼロデータ保持)は条件を満たすEnterpriseの組織だけが使えます。
数値を表で見る
契約と設定残る期間
個人向け(Free、Pro、Max)で学習オン5年
個人向けで学習オフ30日
商用(Team、Enterprise、API)の標準30日
商用でZDRを有効にした組織残さない
手元のパソコンの会話の記録(初期設定)30日

個人向けプランの設定は、claude.ai/settings/data-privacy-controlsでいつでも変えられます。会社の情報を扱うなら、まずここを確かめます。

見せたくないファイルを読めなくする

.envや鍵のファイルは、settings.jsonのpermissions.denyにReadの規則として書きます。設定の一覧に載っている例は次の通りです。

設定
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)"
    ]
  }
}

権限の設定の説明で押さえておくことは次の通りです。

  • Readの拒否は、EditとWriteの道具による同じ場所への書き込みと新しく作ることも止めます(NotebookEditは止まらないので、変えさせたくない場所にはEditの拒否も足します)
  • .claudeignoreというファイルを置いても効きません。中身はReadの拒否に移します
  • 拒否が効くのは、Claudeのファイルの道具と、catやheadのようにファイル名を書くコマンドです。grep -rのようにファイル名を書かずに読むコマンドや、PythonやNodeのスクリプトが自分でファイルを開く場合は止まりません
  • Bash(curl *)の拒否は、Claudeが書いたとおりの形にだけ効きます。/usr/bin/curlやsh -cの中のcurlは止まりません

シェルのコマンドとそこから動くプロセスまで守るには、次のsandboxを合わせて使います。

sandboxでシェルのコマンドを囲む

sandboxの説明によると、sandboxは、Claudeが走らせるシェルのコマンドの周りに、OSが守る境界を作ります。要点は次の通りです。

  • 初めはオフです。 セッションで/sandboxを実行するか、sandbox.enabledをtrueにして有効にします
  • 動くのはmacOS、Linux、WSL2です。Windowsでそのまま動かすと、sandboxなしで動きます
  • 書き込めるのは、作業フォルダ、一時フォルダ、追加したフォルダだけです
  • 読み取りは、初期設定では~/.sshや~/.aws/credentialsを含むほとんどの場所が読めます。守るファイルはsandbox.credentialsかfilesystem.denyReadで自分で書きます。決まった守りの一覧はありません
  • ネットワークは、許可したドメインにだけつながります。許可の一覧は空から始まります
  • sandboxの中で失敗したコマンドを、Claudeがsandboxの外でやり直すよう求めることがあります。断るか、allowUnsandboxedCommandsをfalseにしてやり直しを止めます
  • ファイルを読み書きする道具、MCPサーバー、hooksは、sandboxの外で動きます。それらはpermissionsで守ります

~/.aws/credentialsと~/.sshを読めなくし、GITHUB_TOKENとNPM_TOKENを環境変数から外す例は次の通りです。

設定
{
  "sandbox": {
    "enabled": true,
    "credentials": {
      "files": [
        {
          "path": "~/.aws/credentials",
          "mode": "deny"
        },
        {
          "path": "~/.ssh",
          "mode": "deny"
        }
      ],
      "envVars": [
        {
          "name": "GITHUB_TOKEN",
          "mode": "deny"
        },
        {
          "name": "NPM_TOKEN",
          "mode": "deny"
        }
      ]
    }
  }
}

依存するものが足りずにsandboxが動かないとき、初期設定ではsandboxなしで動き続けます。止めたいならsandbox.failIfUnavailableをtrueにします。

外へ送る通信を減らす

データの使い方の説明には、必須でない通信を止める環境変数が載っています。

  • 利用の計測は、DISABLE_TELEMETRY=1
  • エラーの報告は、DISABLE_ERROR_REPORTING=1
  • /feedbackでの報告は、DISABLE_FEEDBACK_COMMAND=1
  • 満足度の質問は、CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1

上の必須でない通信をまとめて止めるなら、次の変数を1つ設定します。

コマンド
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

まとめて止める変数でも、WebFetchのホスト名の確かめは止まりません。止めるなら設定のskipWebFetchPreflightを使いますが、危険なサイトの一覧と照らさなくなります。

情報漏洩を防ぐチェックリスト

  • 個人向けプランなら、学習の設定を確かめた
  • 会社の情報を扱うなら、TeamかEnterpriseなど商用の契約で使うと決めた
  • .env、鍵、認証情報のファイルをpermissions.denyのReadで拒否した
  • /sandboxを有効にし、~/.sshなどの読み取りをsandbox.credentialsで止めた
  • 本物の顧客データではなく、練習用のフォルダとダミーのデータで試した
  • 承認を求められたコマンドは、中身を読んでから許可している
  • /feedbackで送る報告にはコードを含む会話が入ると知っている
  • 手元の~/.claude/projects/に会話の記録が平文で残ると知っている(期間はcleanupPeriodDaysで変えられます)

設定の全体像と法人での運用は、次の記事で説明しています。

関連記事安全と会社での利用Claude Codeのセキュリティ設定|権限・sandbox・法人運用【2026年版】Claude Codeを安全に使うためのpermissions、sandbox、機密ファイル拒否、ネットワーク制御、managed settings、データ保持、監査を公式仕様で解説。 関連記事安全と会社での利用Claude Codeを安全に始める初期設定|初心者の30分スターターClaude Codeを安全に始める初心者向け手順。専用フォルダ、ダミーデータ、権限設定、確認、復旧を30分で試せます。 関連記事安全と会社での利用Claude Codeの活用事例と法人導入ガイド|研修・セキュリティ・規約までClaude Codeの活用事例と法人導入の手順を解説。楽天・マネーフォワード・Pictetの公式事例、プラン選定、権限とsandbox、情報漏洩対策、研修・講座の選び方、利用規約、全社展開チェックリストまでまとめました。

よくある質問

Claude Codeに読ませたコードは学習に使われますか?

契約によります。Team、Enterprise、APIなどの商用の契約では、Development Partner Programなどに自分から申し込まない限り、学習に使われません。Free、Pro、Maxでは自分で選べ、オンにしているとClaude Codeでの利用も学習に使われます。

.envファイルをClaude Codeに読ませない方法は?

settings.jsonのpermissions.denyにRead(./.env)とRead(./.env.*)を書きます。ただしスクリプトが自分で開く場合などは止まらないので、sandboxも合わせて使います。

会話の記録はどこに残りますか?

Anthropicの側には契約ごとの期間(商用は標準で30日、個人向けは設定で30日か5年)残ります。手元のパソコンにも~/.claude/projects/に平文で30日間(初期設定)残ります。

sandboxは初めから有効ですか?

有効ではありません。/sandboxを実行するか、sandbox.enabledをtrueにして有効にします。Windowsでそのまま動かす場合は使えず、WSL2の中で動かします。