View a markdown version of this page

使用 Lambda MicroVMs做為 Claude Managed Agents 的沙盒 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Lambda MicroVMs做為 Claude Managed Agents 的沙盒

AWS Lambda MicroVMs 是自我託管沙盒中的受管沙盒供應商,適用於 Claude Managed Agents;在您控制的基礎設施中保留敏感檔案、套件和服務。人類託管代理程式迴圈和 Claude 模型,而 Lambda MicroVM 是工具呼叫執行的位置。透過此模式,您可以控制執行環境 – 安裝的內容、可用的網路存取,以及代理程式可以存取的資源。

每個 MicroVM 都是 Firecracker 隔離的虛擬機器,具有快照型次秒啟動,執行時間長達 8 小時,並且可以在工作階段結束時終止。工作階段永遠不會共用狀態。您可以取得 VM 的安全界限,其操作模型為無伺服器 – 無需管理叢集,無需支付閒置容量。您可以使用 AWS 服務協調 MicroVMs以實作自我託管沙盒規格,如下所述。如需詳細資訊,請參閱 Lambda MicroVMs 上的 Claude Managed Agents 自我託管沙盒參考範例。

運作方式

控制平面會為每個 Claude 工作階段啟動一個 MicroVM:

  1. 工作階段達到執行中狀態,而 Anthropic 會將 session.status_run_started Webhook 傳送至您帳戶中的端點。

  2. 啟動器 Lambda 函數會驗證 Webhook 簽章,然後呼叫 RunMicroVM

  3. MicroVM 上的程式碼會宣告工作階段、在 中執行工具呼叫 (bash、read、 write、 edit、glob、grep)/workspace,並將結果發佈回 Anthropic。

  4. 工作階段結束時,MicroVM 會暫停或終止。

您的 Anthropic 組織 API 金鑰永遠不會達到 AWS 運算。啟動器只會將 AWS Secrets Manager 參考傳遞至您的 Anthropic 環境金鑰;MicroVM 的執行角色允許程式碼在執行時間讀取。

金鑰屬性

屬性 優勢
Firecracker 隔離 每個工作階段的硬體虛擬化界限
快照型開機 從 Firecracker 快照以次秒到單位數秒為單位繼續
透過 IMDSv2 的 IAM 使用短期最低權限登入資料
狀態持續時間 可使用完整磁碟和記憶體存取執行長達 8 小時
Pay-per-session 工作階段完成時會終止 MicroVMs,這會結束計費

先決條件

  • 具有 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 Console 的環境金鑰和 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 輸出連接器。請參閱 使用輸出網路連接器

閒置政策

autoResumeEnabled: false 為每個工作階段 MicroVMs設定 suspendedDurationSeconds: 0和 。maximumDurationInSeconds 設定為停滯工作階段的上限 (最多 28,800 秒)。

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

監控

應用程式日誌 – 檢閱 CloudWatch Logs 中的應用程式日誌:

aws logs tail /aws/lambda-microvms/claude-worker --follow

執行MicroVMs – 列出您帳戶中執行MicroVMs:

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
工作者立即結束 將 HTTPS 傳出至api.anthropic.com封鎖
映像建置失敗 S3_* 建置角色或儲存貯體組態錯誤