結論:初見リポジトリはrestrictedから始める
出所や設定をまだ確認していないリポジトリは、Claude Code 2.1.248以降のclaude --restrictedまたはCLAUDE_CODE_RESTRICTED=1で開き、読取調査を終えてから必要な権限だけを別セッションで許可します。制限モードは、コマンドやコードを実行する組み込みツールとWebFetchを標準で外し、ファイル操作を作業ディレクトリ内へ限定し、bypassPermissionsを拒否します。
読者の困りごとは、顧客から受け取ったコードや採用候補の課題を調べたい一方、起動直後にスクリプト実行、外部送信、危険な設定読込が起きないか判断しにくいことです。読了後には、制限モード、通常モード、隔離環境のどれで開始するかを決められます。次の行動は、対象を複製した検証用ディレクトリで制限起動し、必要操作と禁止操作を一枚の記録に残すことです。
公式仕様と提供条件・制限を確認する
Anthropic公式Claude Code changelogの2.1.248は、--restrictedと同義の環境変数を追加したと説明しています。対象は対応版Claude Code CLIです。制限中でも--toolsで明示したツールは例外になり得るため、「restrictedという名前だから何でも安全」と解釈せず、実際の起動引数を保存します。user、project、local settingsを無視する仕様は、悪意ある設定の自動適用を避ける一方、組織の通常設定も反映されない点に注意が必要です。
公式security文書は、権限、sandbox、hooks、設定の信頼境界を組み合わせる前提を示しています。restricted modeはマルウェア検査製品でも完全なsandboxでもありません。読み取ったファイル内容に秘密が含まれる可能性、許可したツールが外部へ接続する可能性、OSやIDE側の権限は別に管理します。料金は制限モード専用の追加料金が公表された機能ではなく、利用契約と選択モデルの使用量に従います。Pro、Max、Team、Enterprise、APIなど認証経路ごとの利用条件と上限は契約画面で確認します。
通常・制限・隔離環境を5軸で比較する
- 実行:通常は許可に応じてコマンドを使えます。制限は実行系ツールを標準で除外し、隔離環境はOSやcontainer側でも止めます。
- Web:通常は許可された取得が可能です。制限ではWebFetchを外し、隔離ではnetwork policyも併用できます。
- 設定:通常はscope別設定を使います。制限はuser、project、local設定を無視します。
- 用途:制限は構造把握、依存一覧、review準備に向き、通常は修正とtest、隔離は未知コードの動的解析に向きます。
- 証跡:どの方式でもversion、引数、対象SHA、許可ツール、出力を記録します。
顧客コードの見積り前調査、OSSの採用評価、添付された再現コードの確認はrestrictedが有力です。既知の社内repoでtestまで行う作業は通常モードを最小権限で使います。未知のbinary、install script、macro、資格情報窃取が疑われる対象は、restrictedだけで開かずnetworkを閉じた隔離環境と専門確認へ送ります。
安全に開始する7手順
- Claude Codeのversionを確認し、2.1.248以降の対応を公式changelogと照合します。
- 対象repoを本番資格情報のない検証用ディレクトリへ複製し、commit SHAと入手元を記録します。
claude --restrictedで起動し、wrapperやaliasが追加引数を入れていないか確認します。- 最初の依頼を「構成、言語、依存、実行候補を読み取り、変更も実行もしない」に固定します。
- 提示された必要操作を、読取、変更、実行、network、secret利用へ分類します。
- 必要性、対象、想定結果、rollback、承認者がそろった操作だけを別の通常セッションへ移します。
- 終了時に差分、外部接続、生成物、logを確認し、例外権限を次回へ持ち越しません。
--toolsで例外を足す場合は一度に一つにします。便利だからBash全体を戻すのではなく、必要な結果を人が取得して安全なtextとして渡せないか検討します。制限中に設定が反映されないことで、社内proxy、監査、model固定などの統制が外れるなら、組織管理された隔離環境を優先します。
公開・企業導入チェックリスト
- 対応versionを確認した
- 入手元とSHAを保存した
- 本番secretを外した
- 起動引数を保存した
- 追加toolsが空か確認した
- 作業directory境界を確認した
- 変更禁止をpromptにも書いた
- 必要操作を分類した
- 承認者を決めた
- 通常sessionを分離した
- network境界を確認した
- 終了時diffを確認した
- 例外に期限を付けた
- 事故時停止先がある
HOLD条件は、対応versionが不明、未知binaryの実行が前提、本番secretが同じ環境にある、wrapperの引数を確認できない、組織統制を無視する影響が評価できない場合です。制限モードで目的を達成できないことは失敗ではありません。追加権限の必要性を見える化し、誰がどのriskを受け入れるか決めるための入口です。
導入後は、制限起動で見つかった本当に必要な操作を月次で集計します。読取だけで完了した割合、通常モードへ移した理由、拒否操作、調査時間、incident件数を見れば、restrictedを既定にする対象を増やすか判断できます。教育では未知repo、既知repo、疑わしいbinaryの三つを演習し、境界を説明できることを合格条件にします。端末管理者はClaude Code更新時に同じfixtureで回帰testし、組み込みtoolや設定優先順位の変更を確認します。正式仕様はClaude Code settings公式文書でも照合してください。
運用開始後は四半期ごとに例外toolを棚卸しし、使われない許可を削除します。調査担当と承認担当を分け、急ぎの案件でも本番資格情報を持ち込まないことを共通規則にします。
よくある質問と次の行動
環境変数とflagはどちらがよいですか?
一回の調査はflag、組織wrapperは環境変数が候補です。どちらも実際の値をlogへ残します。
restrictedなら秘密ファイルを読ませてよいですか?
いいえ。作業ディレクトリ内のファイルを扱えるため、secretは先に除外し、必要ならmaskしたfixtureを使います。
いつ通常モードへ切り替えますか?
必要操作、対象範囲、rollback、承認者が決まり、隔離または最小権限を用意できた時です。
一次情報はClaude Code公式changelog 2.1.248とClaude Code security公式文書です。関連するworkspace trust、権限設定、無人実行の安全設計も確認してください。Miraigentの無料診断では、初期調査の権限境界を60秒で整理します。
