Claude Codeのサンドボックスは、デフォルトでエージェントがあなたのSSHキーやAWS認証情報を読み取ることを許可します。Aegisはそれを許可しません。
2つのレイヤーがあり、どちらも実機で検証済みです。
カーネルサンドボックス — エージェント自身のシェルは拒否されたパスに到達できません:
$ ! cat ~/.ssh/id_rsa
cat: /Users/you/.ssh/id_rsa: Operation not permitted
$ ! cat ~/.aws/credentials
cat: /Users/you/.aws/credentials: Operation not permitted
$ tail ~/Library/Application\ Support/Aegis/denials.log
kernel denied file-read-data /Users/you/.ssh/id_rsa to cat(pid 41560)
kernel denied file-read-data /Users/you/.aws/credentials to cat(pid 42180)
MCPプロキシ — 同じツール、同じファイルで、Aegisを前段に置いた場合と置かない場合:
direct to the server: allowed: TOKEN=proof-env-secret
through aegis proxy: AEGIS DENIED: read_text_file
Reason: path matches deny rule '.env'
Rule: deny_paths
各行はこのリリースに対して実行されたテストによって裏付けられています。まだテストされていない項目については、その旨が明記されています。
aegis workspace add / remove / list — policy.json を編集せずに、エージェントが作業できるフォルダーを変更します。追加には常に --confirm-grant が必要で、削除には不要です。add は、ホームディレクトリ、Aegis 自身のファイルを含むもの、.. を含むパス、存在しないフォルダー、ワークスペース内にあるシンボリックリンク、および別のワークスペースの内側または周囲にあるワークスペースを拒否します。すべての変更は監査ログに記録され、サンドボックスプロファイルが再生成されます。すでに実行中のセッションは、開始時に持っていたワークスペースを保持します — たとえ削除したばかりのものでも — これは実際に稼働中のサンドボックスセッションに対して測定されています。aegis policy set-folder で新しいワークスペースに変えられ、リンクの指す先にアクセス権が付与されていました。また、別のワークスペース内に作成されたワークスペースは、後からシンボリックリンクに差し替えられ、次回起動時に追跡される可能性がありました。どちらも 0.8.1 で再現され、現在はそこで失敗することが証明された恒久的な回帰テストとなっています。policy.json 内の相対パスは拒否されます。 相対パスは Aegis の起動元フォルダーを基準に解決されていたため、aegis run と起動ラッパーが同じポリシーから異なるサンドボックスを適用する可能性がありました(測定済み: プロファイルダイジェストが異なる)。パスは絶対パスであるか、~/ で始まる必要があります。aegis doctor は編集内容と次回起動の間の不一致を報告しなくなりました。aegis run と aegis doctor は、実際の Claude Code のパス(Aegis が書き込んだラッパーから読み取ったもの)と、サンドボックス外で実行するための /login を表示します。未修正: 失効または期限切れのトークンは、最初のメッセージが失敗するまでログイン済みとして読み取られます(Claude Code のステータスは有効期限を報告しません)。また、ログインは依然としてサンドボックス内では実行できません。これにはまだ存在しない資格情報ブローカーが必要です。aegis init はまだログインしていない新規ユーザーを保護します。 クリーンな環境でウォークスルーを実行して発見: 0.8.1 では、一度もログインしたことのない Claude Code は、ドキュメントに記載のない質問の背後で、デフォルトではラップされないままにされていたため、claude はサンドボックスの外に留まっていました。現在では、サンドボックス化に「はい」と答えるとラップされ、サンドボックス外で一度ログインするよう大きな警告が表示されます(実際の Claude Code のパス、次に /login)。aegis init の終了ステップではこれが最初に来るようになり、実行するまで aegis doctor は失敗します。同じ実行では、init の開始テキストと終了テキストも修正され、aegis init、aegis run、aegis doctor に1つのログイン手順が与えられ、何も変更しない操作が nothing to change (nothing to change) と表示される問題も修正されました。0.9.0 ではまだテストされていないもの: Linux、Claude Code 以外のクライアント、/login フローのエンドツーエンド、再ビルドされたデスクトップアプリ。
AI コーディングエージェントとマシンの間に位置します:
cat .env ではバイパスできませんaegis doctor によって整合性がチェックされ、サンドボックスが読み書きできないキーの下でサンドボックス外からチェックポイント化されます初めての方は docs/getting-started.md がステップバイステップの手順です。デフォルトで「いいえ」になる2つの質問も含まれています。
以前の手順に従って aegis-mcp を導入しましたか? そのパッケージは Aegis ではありません。同じインポート名 aegis でインストールされる無関係なプロジェクトです。まず削除してください:
python3 -m pip uninstall aegis-mcp
aegis-sandbox がすでにインストールされている場合、このアンインストールでそのファイルのうち 2 つも削除されるため、その後で再インストールしてください: python3 -m pip install --force-reinstall aegis-sandbox。
python3 -m pip install aegis-sandbox
aegis init # Claude Code / Cursor を検出し、いくつか質問します
aegis doctor # 境界が実際に設定されていることを確認します
アップグレードですか? aegis init を再実行してください。policy.json はあなたのものであり、勝手に書き換えられることはありません。そのため、新しいサンドボックスドメインが自動的に追加されることはありません。また、OAuth トークンエンドポイントがないと、サンドボックス化されたクライアントはトークンの有効期限が切れた時点で動作しなくなります。aegis init は新しいホストを提示します。承諾はキー 1 回で完了します。
aegis init の前に Claude Code にログインしてください。ラップされたクライアントがログインしていない場合、aegis doctor は失敗します完全な脅威モデル: THREAT-MODEL.md
MIT