Claude Managed Agents의 샌드박스로 Lambda MicroVM 사용
AWS Lambda MicroVM은 Claude Managed Agents를 위한 자체 호스팅 샌드박스의 관리형 샌드박스 제공자로, 사용자가 제어하는 인프라에 민감한 파일, 패키지 및 서비스를 보관합니다. Anthropic에서는 에이전트 루프와 Claude 모델을 호스팅하고, Lambda MicroVM에서는 도구 직접 호출이 실행됩니다. 이 패턴을 사용하면 설치된 항목, 사용 가능한 네트워크 액세스, 에이전트가 접근할 수 있는 리소스 등 실행 환경을 제어할 수 있습니다.
각 MicroVM은 Firecracker로 격리된 가상 머신으로, 스냅샷 기반의 1초 미만 시작을 제공하며 최대 8시간 동안 실행되고 세션 종료 시 종료 가능합니다. 세션은 상태를 공유하지 않습니다. 서버리스의 운영 모델로 VM의 보안 경계를 유지할 수 있습니다. 관리해야 할 클러스터도 없고, 비용을 지불해야 할 유휴 용량도 없습니다. 아래 설명된 대로 AWS 서비스로 MicroVM을 오케스트레이션하여 자체 호스팅 샌드박스 사양을 구현할 수 있습니다. 자세한 내용은 Claude Managed Agents Self-Hosted Sandboxes on Lambda MicroVMs
작동 방식
컨트롤 플레인은 Claude 세션당 하나의 MicroVM을 시작합니다.
-
세션이 실행 상태에 도달하고 Anthropic이 계정의 엔드포인트로
session.status_run_started웹후크를 전송합니다. -
런처 Lambda 함수가 웹후크 서명을 확인한 다음
RunMicroVM을 직접적으로 호출합니다. -
MicroVM의 코드가 세션을 클레임하고,
/workspace에서 도구 직접 호출(bash, read, write, edit, glob, grep)을 실행하고, Anthropic에 결과를 다시 게시합니다. -
세션이 종료되면 MicroVM이 일시 중지되거나 종료됩니다.
Anthropic 조직 API 키는 AWS 컴퓨팅에 도달하지 않습니다. 런처는 Anthropic 환경 키에 대한 AWS Secrets Manager 참조만 전달합니다. MicroVM의 실행 역할을 통해 코드가 런타임에 해당 키를 읽을 수 있습니다.
키 속성
| 속성 | 혜택 |
|---|---|
| Firecracker 격리 | 세션당 하드웨어 가상화 경계 |
| 스냅샷 기반 부팅 | 1초 미만에서 10초 미만 내에 Firecracker 스냅샷에서 재개 |
| IMDSv2를 통한 IAM | 단기 최소 권한 자격 증명 사용 |
| 상태 저장 지속 시간 | 디스크 및 메모리에 대한 전체 액세스로 최대 8시간 실행 가능 |
| 세션당 과금 | 세션 완료 시 MicroVM 종료, 과금 중단 |
사전 조건
-
Amazon Simple Storage Service(Amazon S3), AWS Identity and Access Management(IAM), Secrets Manager, AWS WAF, Lambda 및 Lambda MicroVM에 대한 권한이 있는 AWS 계정
-
self_hosted환경을 갖춘 Claude Managed Agents 에이전트 -
Claude 콘솔에서 발급받은 환경 키 및 웹후크 서명 시크릿
참조 구현 배포
Lambda MicroVM에서 실행되는 Claude Managed Agents 자체 호스팅 샌드박스
-
CloudFormation 스택(Amazon API Gateway, 런처 Lambda 함수, Secrets Manager 시크릿, Amazon S3 버킷, IAM 역할)
-
MicroVM 이미지(
Dockerfile, Node.js EnvironmentWorker, 수명 주기 후크) -
배포 스크립트 및 확인 스크립트
배포 단계:
-
CloudFormation 스택을 배포합니다.
-
생성된 Secrets Manager 시크릿에 환경 키와 서명 시크릿을 저장합니다.
-
MicroVM 이미지를 빌드합니다.
-
Claude 콘솔에 스택의 웹후크 URL을 등록합니다.
-
세션을 생성하여 확인합니다.
자세한 지침은 리포지토리 README를 참조하세요.
네트워킹
Lambda MicroVM은 기본적으로 퍼블릭 인터넷에 액세스할 수 있으므로 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
문제 해결
| 증상 | 원인 |
|---|---|
| 웹후크에서 401 반환 | 서명 시크릿 불일치 또는 기한 경과 전송 |
| MicroVM 시작 안 됨 | session.status_run_started에 대한 웹후크 등록되지 않음 또는 런처 Lambda 함수 실행 역할에 RunMicroVM 권한 없음 |
| MicroVM 즉시 종료 | /run 후크 시간 초과 - runTimeoutInSeconds 증가 |
| 워커 즉시 종료 | api.anthropic.com으로의 아웃바운드 HTTPS 차단됨 |
S3_*에서 이미지 빌드 실패 |
빌드 역할 또는 버킷 구성 오류 |