View a markdown version of this page

Claude Managed Agents のサンドボックスとして Lambda MicroVMs を使用する - AWS Lambda

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 を起動します。

  1. セッションの状態が実行中になり、Anthropic が session.status_run_started Webhook をアカウントのエンドポイントに送信します。

  2. ランチャー Lambda 関数は Webhook 署名を検証し、RunMicroVM を呼び出します。

  3. MicroVM のコードはセッションを要求し、/workspace でツール呼び出し (バッシュ、読み取り、書き込み、編集、glob、grep) を実行し、結果を Anthropic に戻します。

  4. セッションが終了すると、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 セルフホスト型サンドボックスを示すアーキテクチャ図

Lambda MicroVMs リポジトリの Claude Managed Agents セルフホスト型サンドボックスは、最小限の実稼働デプロイを提供します。これには、以下が含まれます。

  • CloudFormation スタック (Amazon API Gateway、ランチャー Lambda 関数、Secrets Manager シークレット、Amazon S3 バケット、IAM ロール)

  • MicroVM イメージ (Dockerfile、Node.js EnvironmentWorker、ライフサイクルフック)

  • デプロイスクリプトと検証スクリプト

デプロイ手順:

  1. CloudFormation スタックをデプロイします。

  2. 作成した Secrets Manager シークレットに環境キーと署名シークレットを保存します。

  3. MicroVM イメージを構築します。

  4. Claude コンソールでスタックの Webhook URL を登録します。

  5. セッションを作成することによって検証します。

詳細な手順については、リポジトリ README を参照してください。

ネットワーク

Lambda MicroVMsにはデフォルトでパブリックインターネットアクセスがあります。api.anthropic.com にアクセスするための設定は必要ありません。

Amazon Aurora データベースや Amazon ElastiCache クラスターなどのプライベートリソースにアクセスする場合、または独自のネットワーク制限を適用する場合は、起動時に VPC 出力コネクタをアタッチします。「出力ネットワークコネクタを操作する」を参照してください。

ロールポリシー

セッションあたりの MicroVM に suspendedDurationSeconds: 0autoResumeEnabled: 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_* が失敗する ビルドロールまたはバケットの設定ミス