

# Claude Managed Agents のサンドボックスとして Lambda MicroVMs を使用する
<a name="microvms-integrations-claude-managed-agents"></a>

AWS Lambda MicroVMs は Claude Managed Agents のセルフホスト型サンドボックス内のマネージドサンドボックスプロバイダーで、機密性の高いファイル、パッケージ、サービスをユーザーが制御するインフラストラクチャに保持します。Anthropic はエージェントループと Claude モデルをホストしますが、Lambda MicroVM はツール呼び出しが実行する場所です。このパターンでは、ユーザーは実行環境 (インストールされるもの、利用可能なネットワークアクセス、エージェントがアクセスできるリソースなど) を制御します。

各 MicroVM は、1 秒未満で起動できるスナップショットベースの Firecracker 分離仮想マシンです。最大 8 時間実行し、セッション終了時に終了できます。セッション間では状態は共有されません。サーバーレスの運用モデルの VM のセキュリティ境界が提供されます。クラスターを管理する必要はなく、アイドル状態の容量に対する請求もありません。以下に示すように MicroVM と AWS サービスのオーケストレーションを行い、セルフホスト型サンドボックス仕様を実装できます。詳細については、[Lambda MicroVMs の Claude Managed Agents セルフホスト型サンドボックス](https://github.com/aws-samples/sample-lambda-microvm-claude-managed-agents)のリファレンスサンプルを参照してください。

## 仕組み
<a name="microvms-integrations-claude-how-it-works"></a>

コントロールプレーンは Claude セッションごとに 1 つの MicroVM を起動します。

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

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

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

1. セッションが終了すると、MicroVM は一時停止または終了します。

Anthropic 組織の API キーが AWS コンピューティングに到達することはありません。ランチャーは、AWS Secrets Manager 参照を Anthropic 環境キーにのみ渡します。MicroVM の実行ロールにより、コードは実行時にキーを読み取ることができます。

## 主要プロパティ
<a name="microvms-integrations-claude-properties"></a>


| プロパティ | Benefit | 
| --- | --- | 
| Firecracker の分離 | セッションあたりのハードウェア仮想化境界 | 
| スナップショットベースの起動 | Firecracker スナップショットから 1 秒未満から数秒内に再開 | 
| IMDSv2 を介した IAM | 短時間有効な最小特権の認証情報を使用 | 
| ステートフル期間 | ディスクとメモリのフルアクセスで最大 8 時間実行可能 | 
| セッションごとの料金 | MicroVM はセッションが完了すると終了するので、請求も終了します。 | 

## 前提条件
<a name="microvms-integrations-claude-prereqs"></a>
+ 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 署名シークレット

## リファレンス実装のデプロイ
<a name="microvms-integrations-claude-deploy"></a>

![Lambda MicroVMs リファレンス実装上の Claude セルフホスト型サンドボックスを示すアーキテクチャ図](http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images/microvms-claude-managed-agents-architecture.png)


[Lambda MicroVMs リポジトリの Claude Managed Agents セルフホスト型サンドボックス](https://github.com/aws-samples/sample-lambda-microvm-claude-managed-agents)は、最小限の実稼働デプロイを提供します。これには、以下が含まれます。
+ CloudFormation スタック (Amazon API Gateway、ランチャー Lambda 関数、Secrets Manager シークレット、Amazon S3 バケット、IAM ロール)
+ MicroVM イメージ (`Dockerfile`、Node.js EnvironmentWorker、ライフサイクルフック)
+ デプロイスクリプトと検証スクリプト

デプロイ手順:

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

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

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

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

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

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

## ネットワーク
<a name="microvms-integrations-claude-networking"></a>

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

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

## ロールポリシー
<a name="microvms-integrations-claude-idle-policy"></a>

セッションあたりの MicroVM に `suspendedDurationSeconds: 0`と `autoResumeEnabled: false` を設定します。スタックセッションの上限として `maximumDurationInSeconds` を設定します (最大 28,800 秒)。

```
{
  "maxIdleDurationSeconds": 120,
  "suspendedDurationSeconds": 0,
  "autoResumeEnabled": false
}
```

## モニタリング
<a name="microvms-integrations-claude-monitoring"></a>

**アプリケーションログ** – 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
```

## トラブルシューティング
<a name="microvms-integrations-claude-troubleshooting"></a>


| 症状 | 原因 | 
| --- | --- | 
| Webhook が 401 を返す | 署名シークレットの不一致または古い配信 | 
| MicroVM が起動しない | Webhook が session.status\_run\_started に登録されていない、またはランチャーの Lambda 関数実行ロールに RunMicroVM 許可がない | 
| MicroVM が直ちに終了する | /run フックタイムアウト – runTimeoutInSeconds を増やす | 
| ワーカーが直ちに終了する | api.anthropic.com へのアウトバウンド HTTPS がブロックされている | 
| イメージビルドで S3\_\* が失敗する | ビルドロールまたはバケットの設定ミス | 