보안 모델

보안 모델 (Security model)

Docker Sandboxes가 마이크로VM으로 AI 에이전트를 격리하는 보안 모델을 알아볼게요.

출처: 문서

본문

이 페이지는 로컬 샌드박스를 설명해요. 클라우드 동작과 제한 사항은 로컬 및 클라우드 샌드박스 비교를 참고하세요.

Docker Sandboxes는 AI 에이전트를 마이크로VM에서 실행해, 여러분이 공유한 것 외에는 호스트 리소스에 접근하지 않고 코드를 실행하고, 패키지를 설치하고, 도구를 사용할 수 있게 해요. 여러 격리 계층이 호스트 시스템을 보호해요.

신뢰 경계 (Trust boundaries)

주요 신뢰 경계는 마이크로VM이에요. 에이전트는 VM 안에서 sudo 접근을 포함해 완전한 제어를 가져요. VM 경계는 명시적으로 공유한 것 외에는 에이전트가 호스트의 어떤 것에도 도달하지 못하게 해요.

VM 경계를 안으로 가로지르는 것:

  • 호스트 워크스페이스 디렉터리: 워크스페이스 경로를 전달하거나 기본적으로 현재 디렉터리를 사용하는 sbx run을 사용할 때 공유돼요. 직접 마운트는 읽기-쓰기라 에이전트가 여러분의 작업 트리를 그 자리에서 편집해요. --clone으로 저장소가 읽기 전용으로 마운트되고 에이전트가 개인 클론에서 작업해요. 마운트 없는 샌드박스는 호스트 워크스페이스를 공유하지 않아요.
  • 자격 증명: 호스트 측 프록시가 인증 헤더를 아웃바운드 HTTP 요청에 주입해요. 원시 자격 증명 값은 VM에 들어가지 않아요.
  • 네트워크 접근: 네트워크 정책이 허용하는 대상으로의 아웃바운드 TCP 연결이 호스트를 통해 프록시돼요.
  • 공유 에이전트 스킬: 지원 에이전트를 위해 생성된 샌드박스는 에이전트의 스킬 디렉터리에 호스트 측 영구 저장소를 기본적으로 읽기 전용으로 마운트해요. 생성 시 다른 모드를 선택하려면 --skills 또는 skills.defaultMode를 사용하세요. 기존 샌드박스는 다시 생성할 때까지 마운트를 유지해요.
  • MCP 게이트웨이 트래픽: 지원 에이전트는 호스트 측 MCP 게이트웨이 엔드포인트에 연결해요. 게이트웨이가 등록된 MCP 서버에 대한 접근을 중개해요.

호스트로 다시 가로지르는 것:

  • 워크스페이스 파일 변경: 직접 마운트를 사용하면 실시간으로 호스트에 보여요.
  • 아웃바운드 TCP 연결: 호스트 프록시를 통해 허용된 대상으로 전송돼요.
  • 공유 스킬 변경: readwrite 접근이 있는 샌드박스는 호스트 측 저장소에 쓸 수 있어요. 이 변경은 그것을 공유하는 다른 샌드박스에도 보여요.

워크스페이스와 공유 스킬 저장소 밖에서 에이전트는 여러분의 호스트 파일시스템에 접근할 수 없어요. 또한 호스트 Docker 데몬, 호스트 네트워크에 직접, 네트워크 정책이 허용하지 않는 대상에도 접근할 수 없어요. 샌드박스는 네트워크로 직접 통신할 수 없어요. 실험적 UDP 기능을 켜고 네트워크 정책으로 허용하지 않는 한 아웃바운드 UDP는 차단돼요. ICMP는 차단돼요.

MCP 서버는 명시적 통합 지점이에요. 원격 MCP 서버는 Docker Sandboxes 밖에서 실행되고, 로컬 stdio MCP 서버는 샌드박스 VM 안이 아니라 호스트에서 실행돼요. 에이전트는 organization 거버넌스가 활성화되면 MCP 정책의 적용을 받아 MCP 게이트웨이를 통해 그 서버들이 노출하는 도구를 호출할 수 있어요. 로컬 MCP 서버를 신뢰하는 호스트 통합으로 취급하세요.

마이크로VM 격리 (MicroVM isolation)

이 토폴로지는 마이크로VM에 사적인 것, 명시적으로 마운트된 것, 에이전트의 손이 닿지 않는 호스트 리소스를 보여줘요.

마이크로VM 격리 경계 탐색

사적인지, 마운트된지, 도달 불가한지 확인하려면 구성 요소 또는 라벨이 붙은 연결을 선택하세요.

네트워크 정책과 자격 증명 주입을 통해 아웃바운드 요청을 따라가려면 아키텍처를 참고하세요.

격리 계층 (Isolation layers)

샌드박스 보안 모델에는 다섯 계층이 있어요. 각각의 기술적 세부 사항은 격리 계층을 참고하세요.

  • 하이퍼바이저 격리: 샌드박스마다 별도 커널. 호스트와 공유 메모리나 프로세스가 없어요.
  • 네트워크 격리: 아웃바운드 TCP 트래픽은 호스트를 통해 프록시되고 기본 차단 정책이 적용돼요. 실험적 UDP 이그레스도 네트워크 정책을 따릅니다. ICMP는 차단돼요.
  • Docker Engine 격리: 각 샌드박스는 호스트 데몬으로의 경로가 없는 자체 Docker Engine을 가져요.
  • 워크스페이스 격리: 마운트 없는 샌드박스는 호스트 워크스페이스 마운트가 없어요. 클론 모드는 에이전트에게 VM 안의 개인 클론을 주고 저장소를 읽기 전용으로 마운트해요. 직접 모드는 작업 트리를 읽기-쓰기로 공유해요.
  • 자격 증명 격리: API 키는 호스트 측 프록시가 HTTP 헤더에 주입해요. 자격 증명 값은 VM에 들어가지 않아요.

에이전트가 샌드박스 안에서 할 수 있는 일

VM 안에서 에이전트는 완전한 권한을 가져요: sudo 접근, 패키지 설치, 개인 Docker Engine, 인샌드박스 파일시스템과 구성된 워크스페이스에 대한 읽기-쓰기 접근. 설치된 패키지, Docker 이미지, 기타 VM 상태는 재시작에도 유지돼요. 허용되는 것과 차단되는 것의 전체 목록은 기본 보안 자세를 참고하세요.

보안 고려 사항 (Security considerations)

샌드박스는 에이전트를 호스트 시스템에서 격리하지만, 에이전트의 행동은 명시적으로 공유된 리소스와 허용된 네트워크 채널을 통해 여전히 여러분에게 영향을 줄 수 있어요.

직접 모드에서 워크스페이스 변경은 호스트에서 실시간으로 이뤄져요. 에이전트는 여러분이 호스트에서 보는 같은 파일을 편집해요. 여기에는 정상 개발 중 암묵적으로 실행되는 파일(Git 훅, CI 구성, IDE 작업 구성, AI 프로젝트 구성과 설정, Makefile, package.json 스크립트, 유사 빌드 파일)이 포함돼요. 수정된 코드를 실행하기 전에 변경을 검토하세요. Git 훅은 .git/ 안에 있어 git diff 출력에 나타나지 않으므로 별도로 확인하세요. 전체 목록과 대안인 클론 모드 경계는 워크스페이스 격리를 참고하세요.

기본 허용 도메인에는 광범위한 와일드카드가 포함돼요. *.googleapis.com 같은 일부 기본값은 AI API 너머의 많은 서비스를 포함해요. sbx policy ls를 실행해 활성 규칙 전체 목록을 보고 필요 없는 항목을 제거하세요. 기본 보안 자세를 참고하세요.

kit는 샌드박스 안에서 root 권한으로 설치 명령을 실행해요. 공급망 위험을 제한하기 위해 sbx는 kit 설치를 기본적으로 Docker Hub만으로 구성된 소스 허용목록으로 제한해요. kit 소스 제한을 참고하세요.

공유 에이전트 스킬은 교차 샌드박스 격리에 대한 좁은 예외를 만들어요. 저장소는 readwrite 접근으로 마운트될 수 있어, 한 샌드박스가 다른 샌드박스(읽기 전용 접근을 포함)에서 에이전트가 나중에 사용하는 지침이나 스크립트를 수정할 수 있어요. 이는 호스트 파일시스템의 나머지를 노출하거나 샌드박스 간 직접 네트워크 경로를 만들지는 않지만, 참여하는 샌드박스들을 같은 신뢰 경계에 두어요. 자세한 내용과 샌드박스별 옵트아웃은 에이전트 스킬 공유를 참고하세요.

로컬 stdio MCP 서버는 샌드박스 VM 밖에서 실행돼요. 호스트 프로세스나 호스트 Docker 컨테이너를 시작하는 로컬 MCP 서버를 등록하면, 그 프로세스나 컨테이너는 샌드박스 격리가 아니라 호스트 권한과 호스트 격리를 사용해요. MCP 게이트웨이를 참고하세요.

조직 전체 제어 (Organization-wide control)

단일 개발자 머신에서 보안과 정책은 로컬로 구성돼요 — 예를 들어 sbx policy로 설정한 네트워크·파일시스템 규칙. 관리자는 이 제어를 조직 수준으로 옮겨, 로컬 구성에 의존하는 대신 보안·정책·접근이 모든 개발자의 샌드박스에 일관되게 적용되게 할 수 있어요.

조직 관리자에게 제공되는 제어는 거버넌스를 참고하세요.

더 알아보기 (Learn more)

  • 격리 계층: 하이퍼바이저, 네트워크, Docker, 워크스페이스, 자격 증명 격리가 어떻게 동작하는지
  • 기본 보안 자세: 새 샌드박스가 허용하고 차단하는 것
  • 자격 증명 관리: 값은 샌드박스 밖에 두면서 API 키를 제공·관리
  • 거버넌스: 네트워크, 파일시스템, MCP 접근 제어를 로컬 또는 조직 전반에 구성

더 알아보기 (Learn more)