Skip to content

原文(日本語に翻訳)

sandbox.failIfUnavailable 設定を追加。サンドボックスが有効だが起動できない場合に、サンドボックスなしで実行する代わりにエラーで終了するようになりました。

原文(英語)

Added sandbox.failIfUnavailable setting to exit with an error when sandbox is enabled but cannot start, instead of running unsandboxed

概要

sandbox.failIfUnavailable は、サンドボックス環境が利用できない場合の動作を制御する設定です。これまでサンドボックスが起動できない場合は自動的にサンドボックスなしで実行していましたが、この設定を有効にするとエラーで終了するようになります。セキュリティポリシーとしてサンドボックス実行を必須とする環境での利用を想定しています。

基本的な使い方

~/.claude/settings.json または managed-settings.json に設定します:

json
{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  }
}

この設定により、サンドボックスが利用できない環境では Claude Code がエラーで終了します。

実践例

セキュリティポリシーとしての必須サンドボックス

CI/CD 環境や本番環境でのセキュリティポリシー適用:

json
// managed-settings.json(組織全体のポリシー)
{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  },
  "permissions": {
    "deny": ["Bash(rm -rf:*)"]
  }
}

開発・本番環境の分離

開発環境では警告のみ、本番環境では強制終了:

json
// 本番環境の managed-settings.json
{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  }
}
json
// 開発環境の ~/.claude/settings.json
{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": false
  }
}

コンテナ環境でのサンドボックス確認

Docker コンテナ内で Claude Code を実行する場合の設定確認スクリプト:

bash
#!/bin/bash
# サンドボックスが利用可能か事前確認
claude --print "サンドボックス動作確認" 2>&1
if [ $? -ne 0 ]; then
  echo "エラー: サンドボックスが起動できません。環境を確認してください。"
  exit 1
fi

注意点

  • failIfUnavailable: true を設定すると、サンドボックスをサポートしない OS(一部の Linux 環境など)では Claude Code が起動しなくなります
  • macOS では App Sandbox が使用され、Linux では seccomp/namespaces が使用されます
  • CI 環境では Docker コンテナ内のネストされたサンドボックスが制限される場合があるため、事前に動作確認を行ってください
  • managed-settings.json でこの設定を適用すると、すべてのユーザーに強制されます

関連情報