リスクと手間を減らしてくれる、Cursorのサンドボックス機能
この記事の執筆自体にはAIを使用していませんが、調査過程その他でAIを使用している場合があります。
参考文献
- Ani Betts, Yash Gaitonde & Alex Haugland, 2026,「ローカルエージェント向けの安全なサンドボックスの実装」, Cursor公式ブログ, (2026年3月17日取得, https://cursor.com/ja/blog/agent-sandboxing)
- 著者不明, 発行年不明, 「ターミナル」, Cursor公式ドキュメント, (2026年3月17日取得, https://cursor.com/ja/docs/agent/tools/terminal)
はじめに
Cursorを含む、AIエージェントツールにつきまとうのが、「危険なコードや誤ったコードを実行してしまう」リスクです。AIエージェントツールは、あらかじめ決められた処理を行うのではなく、状況に応じて異なる処理を行う、一種の動的コード生成を行うと言えるでしょう。我々はAIエージェントがどのような処理を行うか事前に確認できず、また誤った処理を行うこともあるため、実のところ危険性が高いと言えます。このようなリスクについて、従来のAIエージェントでは「処理実行前にユーザーに確認を求める」ことを行なってきました。これには次のような問題があります:
- ユーザーが処理を確認する手間がある
- 危険な処理かどうかの判断がユーザーの責任となる
この問題に対し、Cursorはサンドボックスを使って対処しています。サンドボックスを使うと、アプリケーションを "管理された箱" に閉じ込め、危険な処理が原理的に実行できないようにすることができます。
サンドボックスとは
サンドボックスは、アプリケーションがシステムの機能を無制限に利用できないようにするための管理された箱です。これを使うと次のようなことができます:
- ネットワークアクセスを制限する
- 特定のファイルへの読み取り操作/書き込み操作を許可/拒否する
- etc
また、オペレーティングシステムによりサンドボックスの提供方法が異なります:
- Mac: App Sandbox, Seatbelt
- Linux: Landlock, seccomp
- Windows: 汎用的なサンドボックス機構は用意されていない
Cursorでサンドボックスを使う
プラットフォーム要件
Cursorでサンドボックスを使うには、プラットフォーム要件を満たしている必要があります。プラットフォーム要件を満たしている場合、Agentはサンドボックスでターミナルコマンドを実行します。プラットフォーム要件をざっくり言うと:
- Mac: 特に気にする点はない
- Linux
- カーネル 6.2 以降 で、
CONFIG_SECURITY_LANDLOCK=yオプション付きでビルドされていることが必要 - 非特権ユーザー名前空間 が有効化されていること
- カーネル 6.2 以降 で、
- Windows
- WSL2が必要
- WSL2で動かすLinuxが、上記のLinuxの要件を満たしていること
サンドボックス機能を有効化する
サンドボックス機能を有効化するには、次の手順に従います:
- Cursorを起動し、ウィンドウ右上のチャットアイコン (Toggle Agents) ボタンをクリックする。

2. チャットタブの3点ボタン (More Actions) をクリックする

3. 「Agent Settings」をクリックする

4. Auto-Run Mode を Auto-Run in Sandbox に変更する
以上の操作により、コマンドがサンドボックスで自動的に実行されるようになります。
サンドボックスの動作
2026/3/17時点では、サンドボックスは次の操作を許可します (公式ドキュメントから引用):
| アクセス種別 | 説明 |
|---|---|
| ファイルアクセス | ファイルシステムへの読み取りアクセス ワークスペースディレクトリへの読み取り・書き込みアクセス |
| ネットワークアクセス | デフォルトではブロックされます。sandbox.json または設定から構成できます。 |
| 一時ファイル | /tmp/ などのシステム一時ディレクトリへのフルアクセス |
サンドボックスの検証
ワークスペース外のディレクトリへの書き込みが拒否されることを確認する
ワークスペースを開いた状態で、ワークスペース外のディレクトリへの書き込みを行おうとすると、サンドボックスによって実行が拒否されます:

この場合、Skip Allow Accept の3つのオプションを選ぶことができます。
- Skip: コマンドを実行しない
- Allow: そのディレクトリへの書き込みを許可する
- Accept: このコマンドに限り、サンドボックス外で実行する
ネットワークアクセスが拒否されることを確認する
許可ドメイン以外へのアクセスは拒否されます。「https://1.1.1.1/ を取得し、内容を要約して」といった指示を出すと:

この場合、Skip Allow Fetch の3つのオプションを選ぶことができます。
- Skip: コマンドを実行しない
- Allow: 1.1.1.1 を許可ドメインに追加する
- Fetch: このコマンドに限り、そのドメインへのネットワークアクセスを許可する
(2026/3/18追記)
デフォルトで許可されているドメインがあります。公式ドキュメントを参照いただき、必要に応じて許可リストを編集してください。
サンドボックスを調整する
sandbox.json というファイルを作成することで、サンドボックスの調整 (アクセスを許可するディレクトリやドメインの変更) ができます。詳細については公式ドキュメントを参考にしてください。
まとめ
本記事では、Cursorのサンドボックス機能の概要について説明いたしました。サンドボックス機能を使うことにより、Agentを使った開発の安全性と効率性を向上させることができます。ぜひ日々の開発にお役立てください。
