将 Lambda MicroVMs 作为 Claude Managed Agents 的沙盒使用
AWS Lambda MicroVMs 是适用于 Claude Managed Agents 的自托管沙盒中的托管式沙盒提供程序;可确保敏感文件、软件包和服务留在您控制的基础设施中。Anthropic 负责托管代理循环和 Claude 模型,而 Lambda MicroVMs 是工具调用运行的场所。这种模式让您能够控制执行环境,包括安装对象、可用的网络访问权限以及代理可以访问的资源。
每个 MicroVM 都是一个 Firecracker 隔离虚拟机,基于快照实现亚秒级启动速度,运行时间最长可达 8 小时,并且可以在会话结束时终止。会话永远不会共享状态。您可以通过无服务器的运营模式获得虚拟机的安全边界,无需管理集群,也无需为空闲容量付费。您可以将 MicroVM 与 AWS 服务进行编排,从而遵循下文所述的自托管沙盒规范。有关更多详细信息,请参阅 Claude Managed Agents Self-Hosted Sandboxes on Lambda MicroVMs
工作原理
控制面板将为每个 Claude 会话启动一个 MicroVM:
-
会话进入正在运行状态后,Anthropic 会向您账户中的某个端点发送一个
session.status_run_startedWebhook。 -
启动器 Lambda 函数用于验证 Webhook 签名,然后调用
RunMicroVM。 -
您在 MicroVM 上的代码会声明会话,在
/workspace中执行工具调用(bash、read、write、edit、glob、grep),并将结果发布回 Anthropic。 -
会话结束时会暂停或终止 MicroVM。
您的 Anthropic 组织 API 密钥永远不会传入 AWS 计算端。启动器仅会将 AWS Secrets Manager 引用传递给您的 Anthropic 环境键;MicroVM 的执行角色允许该代码在运行时读取它。
键属性
| 属性 | Benefit |
|---|---|
| Firecracker 隔离 | 每个会话的硬件虚拟化边界 |
| 基于快照的启动 | 在不到一秒至几秒的时间内从 Firecracker 快照恢复 |
| 通过 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 签名密钥
部署参考实现
Claude Managed Agents Self-Hosted Sandboxes on Lambda MicroVMs
-
一个 CloudFormation 堆栈(Amazon API Gateway、启动器 Lambda 函数、Secrets Manager 密钥、Amazon S3 存储桶、IAM 角色)
-
一个 MicroVM 映像(
Dockerfile、Node.js EnvironmentWorker、生命周期挂钩) -
一个部署脚本和验证脚本
部署步骤:
-
部署 CloudFormation 堆栈。
-
将环境键和签名密钥存储在创建的 Secrets Manager 密钥中。
-
构建 MicroVM 映像。
-
在 Claude 控制台中注册堆栈的 Webhook URL。
-
通过创建会话进行验证。
有关详细说明,请参阅存储库 README 文件。
Networking
Lambda MicroVMs 会默认具有公共互联网访问权限,无需配置即可连接到 api.anthropic.com。
要访问 Amazon Aurora 数据库或 Amazon ElastiCache 集群等私有资源,或者要应用您自己的网络限制,请在启动时附加一个 VPC 出口连接器。请参阅使用出口网络连接器。
空闲策略
为每个会话 MicroVM 设置 suspendedDurationSeconds: 0 和 autoResumeEnabled: false。将 maximumDurationInSeconds 设置为卡滞会话的上限(最大值 28800 秒)。
{ "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 |
| Worker 节点即刻退出 | 至 api.anthropic.com 的出站 HTTPS 被屏蔽 |
映像构建失败 S3_* |
构建角色或存储桶配置错误 |