Deno Sandbox

6 days ago 6

  • Deno Sandbox는 신뢰할 수 없는 코드를 안전하게 실행하기 위한 보안 Linux 마이크로VM 환경을 제공
  • 코드 실행 중 비밀키 보호네트워크 접근 제어를 통해 LLM 생성 코드나 사용자 코드의 데이터 유출 위험을 차단
  • sandbox.deploy() 명령으로 개발 환경에서 Deno Deploy로 직접 배포 가능, 별도 빌드나 인증 과정 불필요
  • 볼륨과 스냅샷 기능으로 캐시, 데이터베이스, 개발 환경을 빠르게 재현 가능
  • AI 에이전트, 플러그인 시스템, CI 러너 등 보안이 필요한 코드 실행 환경에 적합

Deno Sandbox 개요

  • Deno Sandbox는 Deno Deploy 클라우드 상의 경량 Linux microVM에서 신뢰할 수 없는 코드를 실행하는 기능 제공
    • JavaScript 또는 Python SDK를 통해 생성 가능하며, 부팅 시간은 1초 미만
    • SSH, HTTP, VS Code를 통해 직접 상호작용 가능
  • LLM이 생성한 코드나 사용자 제공 코드가 API 키를 포함한 외부 호출을 수행할 때의 보안 문제 해결을 목표로 함
  • 샌드박스 내에서 실행된 코드는 시스템 격리 및 다중 방어(Defense-in-depth) 구조로 보호됨

Secrets That Can’t Be Stolen

  • 샌드박스 환경에서는 비밀키가 실제 환경 변수로 노출되지 않음
    • 코드 내부에서는 플레이스홀더 문자열만 접근 가능
    • 승인된 호스트로의 아웃바운드 요청 시에만 실제 키가 주입
  • 예를 들어 OPENAI_API_KEY는 api.openai.com으로 요청할 때만 활성화되며, 다른 도메인으로 유출 시 무효화됨
  • 이를 통해 프롬프트 인젝션이나 악성 코드의 키 탈취 시도 차단 가능

Network Egress Control

  • 샌드박스는 허용된 호스트 목록(allowNet) 외의 네트워크 요청을 차단
    • 예: ["api.openai.com", "*.anthropic.com"]
  • 모든 네트워크 트래픽은 VM 경계에서 차단되며, coder/httpjail과 유사한 아웃바운드 프록시를 통해 정책 적용
  • 향후 아웃바운드 연결 분석요청 검사·수정용 프로그래밍 훅 추가 예정
  • Deno의 --allow-net 플래그와 결합 시 이중 네트워크 보안 계층 구성 가능

Sandbox to Production

  • sandbox.deploy() 명령으로 샌드박스에서 Deno Deploy로 직접 배포 가능
    • 별도의 CI 빌드나 인증 과정 없이 개발 환경을 즉시 서버리스 프로덕션으로 전환
    • 예시 코드에서는 my-app을 production: true 옵션으로 배포 후 URL 출력
  • 이를 통해 자동 확장 가능한 서버리스 배포를 단일 호출로 수행 가능

Persistence

  • 기본적으로 샌드박스는 휘발성(ephemeral) 이지만, 상태 저장이 필요한 경우 다음 기능 제공
    • Volumes: 캐시, 데이터베이스, 사용자 데이터용 읽기/쓰기 스토리지
    • Snapshots: 도구 체인이나 기본 볼륨을 포함한 읽기 전용 이미지
  • apt-get install 후 스냅샷을 생성하면, 이후 모든 샌드박스가 사전 설치된 환경으로 즉시 부팅 가능
  • 스냅샷 기반 볼륨으로 새 개발 환경을 몇 초 만에 생성 가능

Technical Details

  • 리전: Amsterdam, Chicago
  • vCPU: 2
  • 메모리: 768MB ~ 4GB
  • 수명: 일시적(ephemeral) 또는 타임아웃 기반, 필요 시 연장 가능
  • 최대 수명: 30분
  • 부팅 시간: 1초 미만
  • 적합한 사용 사례: AI 에이전트 코드 실행, 보안 플러그인 시스템, 임시 CI 러너, 사용자 제공 코드 실행 환경

Pricing

  • Deno Deploy 요금제에 포함되며 사용량 기반 과금
    • CPU 시간: $0.05/h (Pro 요금제에 40시간 포함)
    • 메모리: $0.016/GB-h (Pro 요금제에 1000 GB-h 포함)
    • 볼륨 스토리지: $0.20/GiB-month (Pro 요금제에 5 GiB 포함)
  • 엔터프라이즈 요금제는 별도 문의 가능

Get Started

Read Entire Article