直接回答
サンドボックスはコマンドが影響を与えられるリソースを制限し、承認はユーザーに確認するタイミングを決める。両者は異なる制御レイヤーであり、最小権限で組み合わせるべきである。
このガイドで解決できること
Codex CLI サンドボックス、ネットワーク、コマンド承認のセキュア設定
サンドボックスと承認を区別する
サンドボックスはコマンドが読み取り・書き込み・ネットワーク接続できる境界を定義し、承認ポリシーはある種類のアクションに人間の確認を要するかを定義する。承認が never であってもサンドボックスが自動的に拡大することはなく、danger-full-access であってもすべてのアクションが審査されたことを意味しない。
プロンプトと AGENTS.md はモデルの意図にのみ影響し、ランタイムのセキュリティ制御を置き換えることはできない。信頼できないリポジトリを扱う場合は、ファイル、ネットワーク、承認を同時に引き締めるべきである。
タスクに応じてサンドボックスモードを選択する
read-only は調査、コード解釈、方案レビューに適する。workspace-write は大部分のリポジトリ内実装に適する。danger-full-access はより広範なシステムアクセスを許可し、コンテナや仮想マシンにより外部隔離が提供されている環境にのみ適する。
一度のビルドでキャッシュディレクトリが必要だからといって、システム全体を開放してはいけない。--add-dir で最小限の必要ディレクトリを追加するか、ビルドキャッシュの場所を調整することを優先する。
codex -s read-only "分析失败原因,不要修改文件。"
codex -s workspace-write "实现已确认的修复并运行测试。"
# 仅在外部隔离环境中评估是否需要:
codex -s danger-full-access承認ポリシーの選択
untrusted は信頼できる読み取り専用コマンドのみ直接実行させ、他のコマンドは確認を要求する。on-request はモデルが必要と判断した場合にエスカレーションを要求できる。never は承認を発起せず、制限されたアクションは失敗後に直接モデルへ戻る。
ローカルの対話型開発では通常 on-request を使用し、不慣れなリポジトリのレビューには untrusted を使用できる。never は、境界が既に CI サンドボックスで固定されており、かつ人的入力を待てないタスクに適する。
codex -s read-only -a untrusted
codex -s workspace-write -a on-request
codex exec -s workspace-write -a never "运行检查并输出结果;不要修改源文件。"必要なディレクトリとネットワークのみ開放する
タスクが隣接ワークスペースへのアクセスを必要とする場合は、ワークルートディレクトリを共通の親ディレクトリにするのではなく、--add-dir で明示的に追加する。ネットワーク要件についても、依存ダウンロード、API 呼び出し、ウェブ検索を区別する。
--search を有効にすると、モデルにネイティブのウェブ検索ツールが提供される。これはすべてのネットワーク要求に対する汎用スイッチではない。プライベートコードを扱う場合は、組織のデータ越境ポリシーに従う。
codex -C /work/app --add-dir /work/shared -s workspace-write
codex -C /work/app -s read-only --search "只查阅官方来源,核对这个公开 API 的当前参数。"制御を迂回する高リスクオプションを識別する
承認とサンドボックスをバイパスするオプションを使うと、モデルが生成したコマンドが直接ホスト環境に作用します。これは外部コンテナ、仮想マシン、または runner が信頼できる分離を提供する使い捨て環境での自動化にのみ適しています。
個人ワークステーション、本番サーバー、クラウド認証情報を含むホスト、信頼できないリポジトリでは使用しないでください。チュートリアルもこれを「確認不要のテクニック」として扱うべきではありません。
チームの最小権限ベースラインを策定する
チームのベースラインは個人の好みではなく、作業シナリオに基づいて定義すべきです。対話型開発、読み取り専用レビュー、CI の修正、本番診断では異なる組み合わせが必要であり、プロジェクト設定と実行環境の両方で制約します。
承認済みコマンド、追加ディレクトリ、ネットワーク範囲を定期的に見直してください。一時的なトラブルシューティングで付与された広範な権限を共有設定に恒久的に残さないでください。
- 未知のリポジトリではまず read-only を実行してください。
- 日常的な実装では workspace-write + on-request を優先してください。
- CI が非対話型ポリシーを使用する場合、外部の分離が必須です。
- Secret をモデルが読み取れる通常のファイルに格納しないでください。
- 破壊的なコマンドは常に人間または専用プロセスが制御します。
公式情報と検証範囲
本ガイドは公開されている公式ドキュメントを根拠にしています。コマンドや設定はクライアントのバージョンにより変わるため、実行前に参照元も確認してください。
技術検証方法を見る