Home / Strands 확장과 안전 / Sandbox (Strands Shell)
Note

Sandbox (Strands Shell)

Docker/SSH 격리 실행 환경, sandbox_bash, MCP 서버

⏱ 30분 96 / 189

Sandbox

Docker/SSH 격리 실행 환경, sandbox_bash, MCP 서버

에이전트를 안전하게 제어한다

Hooks에서 Sandbox까지 — 4계층 제어 체계

Sandbox

Docker · SSH · Strands Shell

PART 5 · Sandbox

Sandbox

격리 계층 — 실행 환경 자체를 분리하는 최후의 방어선

Sandbox

에이전트의 파일·셸 작업을 호스트에서 분리된 환경에서 실행합니다.

  • Docker — 컨테이너 격리
  • SSH — 별도 서버 물리 분리
  • Strands Shell — 격리 백엔드 셸
  • 위 계층이 뚫려도 여기서 멈춤
takeaway

모든 제어가 실패해도 피해 반경은 샌드박스 안입니다.

PART 5 · Sandbox

격리 실행 3가지 방식

컨테이너 경계(Docker) · 물리 분리(SSH) · 도구형 셸(Strands Shell) — 격리 수준과 운영 부담의 트레이드오프

Docker 컨테이너

파일시스템·네트워크·프로세스를 컨테이너 경계로 격리

  • ✓ 환경 재현성 높음
  • ✓ 네트워크 정책 세밀 제어
  • ✓ 이미지 기반 빠른 프로비저닝
  • ✗ Docker 데몬 필요
  • ✗ GPU 패스스루 설정 복잡

SSH 원격 실행

별도 서버에서 명령 실행 — 호스트와 물리적 분리

  • ✓ 완전한 환경 분리
  • ✓ 기존 인프라 활용 가능
  • ✓ 멀티 테넌트 지원
  • ✗ 네트워크 지연 발생
  • ✗ 서버 관리 오버헤드

Strands Shell

Docker·SSH 격리 백엔드 안에서 실행되는 셸 환경

  • ✓ 셸 실행을 도구로 바로 제공
  • ✓ 백엔드 선택으로 격리 수준 조절
  • ✓ 빠른 시작
  • ✗ 격리 백엔드 별도 구성 필요
  • ✗ 복잡한 워크플로우에 한계
takeaway

세 방식은 배타적이지 않습니다 — Strands Shell이 Docker·SSH 백엔드 위에서 도구를 제공하는 조합이 기본형입니다.

PART 5 · Sandbox

Docker Sandbox 연결

Agent 생성 시 sandbox=로 실행 중 컨테이너에 연결 — 파일·셸 작업 격리

python
from strands import Agent
from strands.sandbox.docker import DockerSandbox

# 사전에 실행 중인 컨테이너에 연결
sandbox = DockerSandbox(container="agent-workspace")

agent = Agent(
    model="us.anthropic.claude-sonnet-4-6",
    sandbox=sandbox,
    # sandbox_bash, sandbox_file_editor 도구가 자동 등록됨
)

# 에이전트의 모든 파일/셸 작업이 컨테이너 내부에서 실행
result = agent("프로젝트의 테스트를 실행하고 결과를 요약해줘")
PART 5 · Sandbox

격리 수준 선택

보안 요구사항에 따라 선택하는 3단계 격리 수준

Level 1: Strands Shell

격리 백엔드(Docker·SSH) 안에서 실행되는 셸 도구

Level 2: Docker

컨테이너 격리 — 파일·네트워크·자원 경계 설정

Level 3: SSH + 전용 서버

물리 분리 — 호스트와 완전히 다른 머신에서 실행

takeaway

격리 수준은 도구의 파괴력에 비례해 올립니다 — 대부분의 프로덕션은 Level 2(Docker)가 출발점입니다.

제어 없는 자율은 위험합니다.

Hooks · Plugins · Interventions · Sandbox — 4계층으로 에이전트를 통제