0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code個人的におすすめなセキュリティ設定

0
Last updated at Posted at 2026-05-07

本記事はエンジニア向けです。
Claude Codeを使い始める前に。最初にやっておきたいセキュリティ設定7つが非エンジニアにもわかりやすいです。
上記事に加えてすると良さそうな設定や、私の設定を以下に共有します。

ブラウザ版Claudeの設定:モデルトレーニングをオフにする(追加)

デフォルトでは、チャットデータは5年保持され、モデルのトレーニングに使われる設定になってます。
そのため、基本的にはオフしたほうが良いと思います。

image.png

モデルのトレーニングにデータを使用することを許可していただける場合、データ保持期間を5年に延長いたします。この更新された保持期間は、新規または再開されたチャットおよびコーディングセッションにのみ適用され、モデル開発と安全性の向上をより効果的にサポートできるようになります。クロードとの会話を削除した場合、そのデータは今後のモデルトレーニングには使用されません。モデルトレーニングにデータを提供しない場合は、既存の30日間のデータ保持期間が継続されます。
https://www.anthropic.com/news/updates-to-our-consumer-terms

PC全体のデフォルト設定(~/.claude/settings.json

deny/ask/allowルール

Claude Codeのパーミッションには denyaskallow の3種類があり、優先順位は deny > ask > allow です。

Rules are evaluated in order: deny -> ask -> allow. The first matching rule wins, so deny rules always take precedence.
参考:Configure permissions - Claude Code Docs

取り返しのつかない操作を deny で事前にブロックしておくのが良いと思います。
私の設定例を記載します。(GitHub|福永 - dotfiles|./claude/settings.json

{
  "permissions": {
    "allow": [
      "Read(**/.env.sample)",
      "Read(**/.env.example)",
      "Bash(npm run *)",
      "Bash(npm test *)",
      "Bash(npx prettier *)",
      "Bash(npx eslint *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Bash(ls *)",
      "Bash(cat *)",
      "Bash(grep *)"
    ],
    "deny": [
      "Read(**/.env*)"
      "Read(~/.ssh/**)",
      "Read(~/.gnupg/**)",
      "Read(~/.aws/**)",
      "Read(~/.azure/**)",
      "Read(~/.kube/**)",
      "Read(~/.npmrc)",
      "Read(~/.git-credentials)",
      "Read(~/.config/gh/**)",
      "Edit(**/.bashrc)",
      "Edit(**/.bash_profile)",
      "Edit(**/.zshrc)",
      "Edit(**/.config/fish/**)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Bash(nc *)",
      "Bash(ssh *)",
      "Bash(git push *)",
    ]
  }
}

ただし、以下のことに注意してください。

読み取りおよび編集の拒否ルールは、Claude の組み込みファイルツールに適用され、Bash のサブプロセスには適用されません。読み取り (./.env) の拒否ルールは Read ツールをブロックしますが、Bash での cat .env の実行は妨げません。すべてのプロセスがパスにアクセスできないように OS レベルで強制するには、サンドボックスを有効にしてください
permissions#read-and-edit - Claude Code DocsをGoogle翻訳

サンドボックスを有効にする(補足)

Sandboxは、主にプロジェクトごとの設定です。
事前にClaude Codeがアクセスできるディレクトリとネットワークホストを設定できます。
Permissionsはあくまで「Claudeに確認する」レイヤーですが、Sandboxはその下にあるOSレベルの制御です。プロンプトインジェクション攻撃でClaudeが騙されても、OSがブロックします。

設定方法

Claude|Sandboxing - getting-started
Linuxの場合は先に以下インストールが必要

sudo apt-get install bubblewrap socat

このbubblewrapを使ってシステムレベルでアクセス制御をする。

/sandbox

上コマンドを実行する以外にもプロジェクトのsetting.jsonで設定してしまう方法もあります。

設定例 (project/.claude/setting.json)

{
  "sandbox": {
    "enabled": true,  // サンドボックスの有効化
    "autoAllowBashIfSandboxed": false,  // サンドボックスの有効時にBashコマンドを自動承認。デフォルトはtrue
    "allowUnsandboxedCommands": false  // サンドボックス外でのコマンド実行(エスケープハッチ)の有効/無効
  }
}

※ 参考:『実践Claude Code入門』西見公宏,吉田真吾,大嶋勇樹, 技術評論社

PC全体の設定例 (~/.claude/setting.json)

{
  "sandbox": {
    "failIfUnavailable": true,  // 下で解説
    "allowUnsandboxedCommands": false
  }
}

failIfUnavailableとは

サンドボックス設定 - ClaudeCodeをGoogle翻訳
sandbox.enabledが true であるにもかかわらずサンドボックスが起動できない場合 (依存関係の不足またはサポートされていないプラットフォーム)、起動時にエラーで終了します。 false (デフォルト) の場合、警告が表示され、コマンドはサンドボックス化されずに実行されます。

.claudeignore:読ませたくないファイルを除外する

.gitignore と同じ書式で、Claudeに読ませたくないファイル・ディレクトリをプロジェクトごとに指定できます。

プロジェクトルートに .claudeignore を作成:

# 環境変数・シークレット
.env
.env.*
*.pem
*.key

可能であればDevContainer(開発用コンテナ)内で実行する

上記の設定はすべて重要ですが、開発環境全体をコンテナ化し、ホストとは分離された環境でClaudeCodeを実行することが、ホストマシンを守るには効果的だと考えます。
たとえClaudeが騙されても、被害がコンテナの中に閉じ込められます。

DevContainer内で作業する場合は、コンテナが隔離環境となるため、Sandboxは省略し --dangerously-skip-permissions(全確認スキップフラグ)で作業効率を上げるのが良いと考えます。
パーミッションモード # 利用可能なモード - Claude Code Docsでも、bypassPermissions (--dangerously-skip-permissionsと同じ)は、隔離されたコンテナと VM のみに最適だと、との記載があります。

手順
開発コンテナに Claude Code を追加する - Claude Code Docs

参考

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?