Skip to content

原文(日本語に翻訳)

サンドボックスのファイルシステム設定に allowRead を追加し、denyRead で拒否されたリージョン内の特定のパスへの読み取りアクセスを再許可できるように

原文(英語)

Added allowRead sandbox filesystem setting to re-allow read access within denyRead regions

概要

Claude Codeのサンドボックス設定に allowRead という新しいオプションが追加されました。これにより、denyRead で特定のディレクトリへの読み取りアクセスを一括で拒否しながら、その中の特定のサブパスだけを例外的に許可するという細かい制御が可能になります。セキュリティを強化しつつ、Claudeが作業に必要なファイルへはアクセスできる柔軟な設定が実現できます。

基本的な使い方

settings.json または .claude/settings.json でサンドボックス設定を行います。

json
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["/home/user/secrets"],
      "allowRead": ["/home/user/secrets/public-config.json"]
    }
  }
}

上記の例では /home/user/secrets ディレクトリ全体への読み取りを禁止しつつ、その中の public-config.json だけは読み取りを許可しています。

実践例

機密ディレクトリの一部だけを公開する

json
{
  "sandbox": {
    "filesystem": {
      "denyRead": [
        "/etc",
        "~/.ssh",
        "~/.aws"
      ],
      "allowRead": [
        "/etc/hostname",
        "/etc/os-release"
      ]
    }
  }
}

ここでは /etc 全体への読み取りを拒否しながら、ホスト名とOSバージョン情報のみ許可しています。

プロジェクト内の機密ファイルを保護する

json
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["/workspace/project"],
      "allowRead": [
        "/workspace/project/src",
        "/workspace/project/tests",
        "/workspace/project/README.md"
      ]
    }
  }
}

プロジェクト全体へのアクセスを制限しつつ、ソースコードとテストディレクトリのみを許可する設定です。.envsecrets/ などの機密ファイルを保護できます。

グローバル設定とプロジェクト設定の組み合わせ

グローバルの ~/.claude/settings.json でデフォルト拒否を設定し、プロジェクトの .claude/settings.json でプロジェクト固有の許可を追加できます。

json
// ~/.claude/settings.json(グローバル設定)
{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/.config/sensitive-app"]
    }
  }
}
json
// .claude/settings.json(プロジェクト設定)
{
  "sandbox": {
    "filesystem": {
      "allowRead": ["~/.config/sensitive-app/public.json"]
    }
  }
}

注意点

  • 優先順位: allowReaddenyRead の例外として機能します。allowRead に指定したパスが denyRead の範囲外であれば、元々読み取り可能なため意味がありません
  • パスの指定: 絶対パスまたは ~ を使ったホームディレクトリ相対パスで指定してください
  • ディレクトリ vs ファイル: ディレクトリを allowRead に指定した場合、そのディレクトリ内のすべてのファイルが許可されます
  • セキュリティの確認: allowRead で許可したファイルにAPIキーや認証情報が含まれていないか注意してください

関連情報