Claude Managed Agents のサンドボックスとして Lambda MicroVMs を使用する
AWS Lambda MicroVMs は Claude Managed Agents のセルフホスト型サンドボックス内のマネージドサンドボックスプロバイダーで、機密性の高いファイル、パッケージ、サービスをユーザーが制御するインフラストラクチャに保持します。Anthropic はエージェントループと Claude モデルをホストしますが、Lambda MicroVM はツール呼び出しが実行する場所です。このパターンでは、ユーザーは実行環境 (インストールされるもの、利用可能なネットワークアクセス、エージェントがアクセスできるリソースなど) を制御します。
各 MicroVM は、1 秒未満で起動できるスナップショットベースの Firecracker 分離仮想マシンです。最大 8 時間実行し、セッション終了時に終了できます。セッション間では状態は共有されません。サーバーレスの運用モデルの VM のセキュリティ境界が提供されます。クラスターを管理する必要はなく、アイドル状態の容量に対する請求もありません。以下に示すように MicroVM と AWS サービスのオーケストレーションを行い、セルフホスト型サンドボックス仕様を実装できます。詳細については、Lambda MicroVMs の Claude Managed Agents セルフホスト型サンドボックス
仕組み
コントロールプレーンは Claude セッションごとに 1 つの MicroVM を起動します。
-
セッションの状態が実行中になり、Anthropic が
session.status_run_startedWebhook をアカウントのエンドポイントに送信します。 -
ランチャー Lambda 関数は Webhook 署名を検証し、
RunMicroVMを呼び出します。 -
MicroVM のコードはセッションを要求し、
/workspaceでツール呼び出し (バッシュ、読み取り、書き込み、編集、glob、grep) を実行し、結果を Anthropic に戻します。 -
セッションが終了すると、MicroVM は一時停止または終了します。
Anthropic 組織の API キーが AWS コンピューティングに到達することはありません。ランチャーは、AWS Secrets Manager 参照を Anthropic 環境キーにのみ渡します。MicroVM の実行ロールにより、コードは実行時にキーを読み取ることができます。
主要プロパティ
| プロパティ | Benefit |
|---|---|
| Firecracker の分離 | セッションあたりのハードウェア仮想化境界 |
| スナップショットベースの起動 | Firecracker スナップショットから 1 秒未満から数秒内に再開 |
| IMDSv2 を介した IAM | 短時間有効な最小特権の認証情報を使用 |
| ステートフル期間 | ディスクとメモリのフルアクセスで最大 8 時間実行可能 |
| セッションごとの料金 | MicroVM はセッションが完了すると終了するので、請求も終了します。 |
前提条件
-
Amazon Simple Storage Service (Amazon S3)、AWS Identity and Access Management (IAM)、Secrets Manager、AWS、WAF、Lambda、Lambda MicroVMs のアクセス許可がある AWS アカウント
-
self_hosted環境を含む Claude Managed Agents エージェント -
Claude コンソールからの環境キーと Webhook 署名シークレット
リファレンス実装のデプロイ
Lambda MicroVMs リポジトリの Claude Managed Agents セルフホスト型サンドボックス
-
CloudFormation スタック (Amazon API Gateway、ランチャー Lambda 関数、Secrets Manager シークレット、Amazon S3 バケット、IAM ロール)
-
MicroVM イメージ (
Dockerfile、Node.js EnvironmentWorker、ライフサイクルフック) -
デプロイスクリプトと検証スクリプト
デプロイ手順:
-
CloudFormation スタックをデプロイします。
-
作成した Secrets Manager シークレットに環境キーと署名シークレットを保存します。
-
MicroVM イメージを構築します。
-
Claude コンソールでスタックの Webhook URL を登録します。
-
セッションを作成することによって検証します。
詳細な手順については、リポジトリ README を参照してください。
ネットワーク
Lambda MicroVMsにはデフォルトでパブリックインターネットアクセスがあります。api.anthropic.com にアクセスするための設定は必要ありません。
Amazon Aurora データベースや Amazon ElastiCache クラスターなどのプライベートリソースにアクセスする場合、または独自のネットワーク制限を適用する場合は、起動時に VPC 出力コネクタをアタッチします。「出力ネットワークコネクタを操作する」を参照してください。
ロールポリシー
セッションあたりの MicroVM に suspendedDurationSeconds: 0と autoResumeEnabled: false を設定します。スタックセッションの上限として maximumDurationInSeconds を設定します (最大 28,800 秒)。
{ "maxIdleDurationSeconds": 120, "suspendedDurationSeconds": 0, "autoResumeEnabled": false }
モニタリング
アプリケーションログ – CloudWatch Logs でアプリケーションログを確認します。
aws logs tail /aws/lambda-microvms/claude-worker --follow
実行中の MicroVM – アカウントで実行中の MicroVM を一覧表示します。
aws lambda-microvms list-microvms \ --image-identifier claude-worker \ --query 'items[].[microvmId,state,startedAt]' --output table
トラブルシューティング
| 症状 | 原因 |
|---|---|
| Webhook が 401 を返す | 署名シークレットの不一致または古い配信 |
| MicroVM が起動しない | Webhook が session.status_run_started に登録されていない、またはランチャーの Lambda 関数実行ロールに RunMicroVM 許可がない |
| MicroVM が直ちに終了する | /run フックタイムアウト – runTimeoutInSeconds を増やす |
| ワーカーが直ちに終了する | api.anthropic.com へのアウトバウンド HTTPS がブロックされている |
イメージビルドで S3_* が失敗する |
ビルドロールまたはバケットの設定ミス |