Claude Codeで 情報漏洩しない? 送られる データと 安全な設定
- 頼んだ内容と答えはAnthropicへ送られ、扱いは契約で決まります。
- TeamやAPIなど商用の契約は、申し込まない限り学習に使われません。
- .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、 | 学習に使うか自分で | 保存期間オンなら |
| 契約Team、 | 学習に使うか使わない | 保存期間標準で |
| 契約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に 読ませた コードは 学習に 使われますか?
契約によります。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の中で動かします。


