SECURITY GUIDE

Claude Code 情報リーク対策
マスト設定ガイド

ターミナルで Claude Code を業務利用するときに、企業の機密情報(認証情報・ソースコード・社外秘データ)が外部に漏れないようにするための必須設定と、それぞれの設定が「何を・なぜ」防ぐのかの解説。

2026-07-24 時点 / 出典:code.claude.com/docs(Data Usage / Permissions / Settings / Sandboxing / Security)

00結論:マスト3点

01学習利用のオプトアウト

そもそもデータが Anthropic のモデル訓練に使われるかどうかは契約プランで決まる。ここが全設定の前提になる。

プラン学習利用データ保持
Pro / Max(個人)設定次第(要オプトアウト)オプトイン時 5年 / オプトアウト時 30日
Team / Enterprise使われない(商用規約)標準 30日
API 経由使われない(商用規約)標準 30日(ZDR 契約なら保持ゼロ)
この設定の意図 個人プランのデフォルト任せにすると、業務コードやプロンプトが訓練データとして5年間保持される可能性がある。オプトアウトすれば訓練利用が止まり、保持期間も30日に短縮される。設定場所は claude.ai → 設定 → プライバシー →「AIモデルの改善にご協力ください」をオフ。

02秘匿ファイルの読み取り拒否(permissions.deny)

Claude Code に .claudeignore のような除外ファイルは存在しない。公式の推奨手段は ~/.claude/settings.jsonpermissions.deny に Read 拒否ルールを書くこと。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./**/secrets/**)",
      "Read(**/*.pem)",
      "Read(**/*.key)",
      "Read(~/.ssh/**)",
      "Read(~/.aws/**)"
    ]
  }
}

各ルールの意図

ルール守っている情報と、漏れた場合のリスク
Read(./.env)
Read(./.env.*)
APIキー・DB接続文字列・決済キーなどの環境変数ファイル。会話コンテキストに入ると Anthropic のサーバーに送信され、保持ポリシーの対象になる。.env.local.env.production などの変種もカバーするために2行に分けている。
Read(./**/secrets/**)プロジェクト内の secrets ディレクトリ全般。深い階層にあっても **(ディレクトリ横断グロブ)で捕捉する。
Read(**/*.pem)
Read(**/*.key)
秘密鍵・証明書。漏れるとサーバーへのなりすましやTLSの解読につながるため、拡張子ベースで場所を問わず遮断する。
Read(~/.ssh/**)SSH秘密鍵と接続履歴(known_hosts)。漏れると社内サーバー・Gitリポジトリへの侵入経路になる。プロジェクト外だが、Claude はホームディレクトリも読めるため明示的に塞ぐ。
Read(~/.aws/**)AWSアクセスキー。漏れるとクラウドインフラ全体(S3のデータ、本番環境)へのアクセスを許すことになる。被害範囲が最も大きい部類。
deny ルールの性質 deny は allow より常に優先され、どの設定階層からも上書きできない。また Read の deny は同じパスへの Edit も自動でブロックする(v2.1.208+)。パス記法は ./=プロジェクト基準、~/=ホーム、//=ファイルシステム絶対パス。
限界も知っておく この deny が塞ぐのは Read/Edit ツール経由のアクセスのみ。Bash(cat .env) のようなシェル経由の読み取りは対象外。シェル側も塞ぎたい場合はサンドボックス(07章)の credentials 設定を併用する。

03外部送信の全停止(環境変数)

{
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}
この設定の意図 Claude Code は会話(モデルAPI通信)以外にも複数の経路で外部にデータを送る。この変数はマスタースイッチとして、それらをまとめて停止する。会話そのものは止まらないので日常業務への影響はない。

マスタースイッチが止める個別経路と、それぞれの意図

個別変数止まるもの/なぜ止めるか
DISABLE_TELEMETRY利用状況メトリクス(レイテンシ・信頼性データ)の送信。機密性は低いが、社外送信を最小化する方針なら止める。
DISABLE_ERROR_REPORTINGエラー発生時のスタックトレース送信。ファイルパスやコード断片が混入し得るのが止める理由。既知パターンの秘匿情報は送信前に自動リダクトされるが、ゼロにするならオフが確実。
DISABLE_FEEDBACK_COMMAND/feedback /bug /share コマンド自体を無効化。詳細は次章。
CLAUDE_CODE_DISABLE_FEEDBACK_SURVEYセッション品質アンケートの表示。評価のみの送信だが、うっかり「会話も送る」を選ぶ事故の芽を摘む。

04/feedback・/bug・/share を使わない

最大の「うっかり」リスク これらのコマンドは会話の全文=コード・プロンプト・出力を丸ごと Anthropic に送信し、5年間保持される(プランを問わず)。Team/Enterprise で学習利用がオフでも、フィードバック送信分は別枠で保持される点に注意。バグ報告したい時は、機密を含まない最小再現に絞ってから送るのが原則。03章の DISABLE_FEEDBACK_COMMAND=1(マスタースイッチに含まれる)でコマンド自体を封じておけば事故が起きない。

05MCPサーバーは信頼できるものだけ

MCPサーバーは Claude に外部ツールを与える仕組みだが、裏を返せば会話コンテキスト(=開いているコードや秘匿情報)が第三者のサーバーに渡る経路にもなる。

運用ルールの意図 悪意ある・ずさんな MCP サーバーは、①ツール実行時にコードや環境変数を外部送信する、②ツールの説明文にプロンプトインジェクションを仕込んで Claude に意図しない操作をさせる、という2つのリスクを持つ。プロジェクトの .mcp.json に他人が追加したサーバーは、承認プロンプトで接続先と提供ツールを確認してから許可する。出所不明の npm パッケージ型 MCP は入れない。

設定で強制する場合は deniedMcpServers / allowedMcpServers による許可リスト方式も使える(denyが常に優先)。

06アーティファクト公開・共有リンクの管理

注意すべき理由 アーティファクト(Claudeが生成するWebページ)や共有チャットのリンクは Anthropic のインフラ上にホストされ、リンクを知る人は誰でも閲覧できる状態になり得る。削除してもキャッシュや検索インデックスに残る可能性があるため、「公開してから消す」は成立しない。社外秘を含む内容は最初から公開しないことが唯一の対策。

07さらに固める:サンドボックス(任意・上級)

macOS は OS 組み込みの Seatbelt ベースのサンドボックスが利用できる(v2.1.187+)。02章の deny が塞げない「シェル経由のアクセス」と「ネットワーク経路」をここで塞ぐ。

{
  "sandbox": {
    "enabled": true,
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "api.anthropic.com"]
    },
    "credentials": {
      "files": [
        { "path": "~/.ssh", "mode": "deny" },
        { "path": "~/.aws/credentials", "mode": "deny" }
      ],
      "envVars": [
        { "name": "GITHUB_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}
設定意図
network.allowedDomainsClaude が実行するコマンドの接続先を許可リスト方式にする。万一プロンプトインジェクションで「このデータを外部に送れ」と指示されても、未許可ドメインへの送信は物理的に失敗する。データ持ち出し(exfiltration)への最終防衛線
credentials.files(deny)02章の deny と違い、シェルコマンド(cat 等)からもファイルを見えなくする。OSレベルの遮断。
credentials.envVars(mask)トークンをダミー値に置き換え、injectHosts に指定した正規の接続先への通信時だけ本物を注入する。Claude にもログにも実トークンが一切現れないため、漏れようがない状態を作れる(v2.1.199+、tlsTerminate 併用)。
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1手軽版。Anthropic・クラウド系の認証環境変数を全サブプロセスから除去する。サンドボックスを組む前の第一歩として有効。

08組織で強制する場合(IT管理者向け)

個人設定との違い ここまでの設定は各ユーザーが自分で外せてしまう。全社員に強制するには、管理者が /Library/Application Support/ClaudeCode/managed-settings.json(macOS)を MDM 等で配布する。managed 設定はユーザー・プロジェクト設定より常に優先され、上書き不可allowManagedPermissionRulesOnlyallowManagedMcpServersOnly を併用すると、ユーザーによる許可ルール・MCPサーバーの追加自体を禁止できる。Team/Enterprise なら管理コンソールからのサーバー配信(Server-Managed Settings)も利用可。

09設定チェックリスト