Deepseek ArtifactsDeepseek Artifacts
그림 가이드 · v0.61.0 기준

Gemini CLI 샌드박스 모드: 활성화, 백엔드, YOLO 안전장치

그림과 함께 빠짐없이 설명하는 Gemini CLI 샌드박스 가이드. -s로 실행하고, 상시 활성화하고, OS에 맞는 백엔드를 고르고, YOLO 모드에 안전장치까지 갖추세요.

핵심 요약

  • gemini -s를 실행하면 셸 명령, 파일 수정, 네트워크 요청을 포함한 세션 전체가 격리된 샌드박스 안에서 실행됩니다. 푸터에 샌드박스 표시가 나타나므로 활성 여부를 바로 확인할 수 있습니다.
  • 활성화 방법은 세 가지이며 우선순위대로 적용됩니다: -s / --sandbox 플래그, GEMINI_SANDBOX 환경 변수, settings.json tools 객체의 "sandbox": true.
  • 백엔드는 OS별로 선택합니다: macOS는 Seatbelt 프로파일(기본 permissive-open), Linux는 가장 강한 gVisor runsc, 그 외 플랫폼은 Docker 또는 Podman 컨테이너.
  • YOLO 모드(--yolo)는 모든 권한 확인을 건너뜁니다 - 샌드박스와 함께 쓰세요. v0.61.0(2026년 9월 23일)에서 샌드박스 파일시스템 경계가 강화되고 런타임 상태가 분리되었습니다.

Gemini CLI Essentials – Full Course (sandboxing chapter)

채널: freeCodeCamp.org3:49:40

YouTube에서 열기

Gemini CLI: Everything You Need To Know (Full Tutorial)

채널: lustoykov42:54

YouTube에서 열기

Sandboxing in Gemini CLI — official documentation

공식 문서: google-gemini/gemini-cli (GitHub)

YouTube에서 열기

스크린샷은 freeCodeCamp 코스의 샌드박스 챕터에서 가져왔습니다. 플래그명·설정·프로파일 이름은 공식 샌드박스 문서와 v0.61.0 릴리스 노트로 이중 확인했습니다.

스크린샷 출처: freeCodeCamp.org 및 lustoykov - 출처를 밝혀 시각 참고자료로 사용했으며, 모든 단계 텍스트는 본 사이트의 자작입니다.

단계별로 Gemini CLI 샌드박스 만들기

첫 샌드박스 세션 실행하기

  1. 1

    샌드박스가 실제로 무엇을 격리하는지 알기

    샌드박스는 AI 에이전트를 위험하게 만드는 작업 - 셸 명령, 파일 쓰기, 네트워크 접근 - 을 호스트 시스템으로부터 분리합니다. Gemini CLI v0.61.0(2026년 9월 23일)은 샌드박스 파일시스템 경계를 강화하고 런타임 상태를 분리해, 빌드 파일과 신뢰할 수 없는 플래그를 통한 간접 프롬프트 인젝션 경로를 막았습니다.

    Course slide explaining that Gemini CLI sandboxing relies on OS-level sandboxing libraries — gVisor and runsc or LXC/LXD on Linux WSL2, Seatbelt on macOS, and Docker or Podman containers
    샌드박스의 실체: 플랫폼마다 선택되는 OS 수준 격리 라이브러리.140:00에 보기
  2. 2

    플래그로 바로 샌드박스 실행

    가장 빠른 방법은 커맨드 플래그입니다: gemini -s(전체 형태 --sandbox)를 실행하세요. 첫 실행은 샌드박스 이미지를 받아오느라 시간이 걸릴 수 있습니다. 일회성 작업은 프롬프트와 함께: gemini -s -p "analyze the code structure".

    Gemini CLI course slide showing the gemini --sandbox launch command next to a terminal footer where a sandbox version chip confirms the session is sandboxed
    플래그 켜고, 푸터 표시 확인 - 2초짜리 점검.140:50에 보기
  3. 3

    세 가지 활성화 방법과 우선순위 이해하기

    Gemini CLI는 샌드박스 설정을 우선순위로 해석합니다: 먼저 -s / --sandbox 커맨드 플래그, 다음 GEMINI_SANDBOX 환경 변수(true, docker, podman, sandbox-exec, runsc, lxc), 마지막으로 settings.json tools 객체의 "sandbox" 항목.

    Official Gemini CLI documentation Sandboxing section listing the three ways to enable the sandbox: the -s flag, the GEMINI_SANDBOX environment variable, or the sandbox setting in settings.json
    공식 문서가 세 가지 방법을 우선순위와 함께 나열합니다.145:45에 보기
  4. 4

    푸터에서 샌드박스 활성화 확인

    CLI가 뜨면 상태 푸터에 샌드박스 버전 표시가 모델 선택기 바로 옆에 나타납니다. 표시가 없으면 샌드박스가 꺼진 것 - 활성화됐다고 믿었던 플래그나 설정을 다시 확인하세요.

    Gemini CLI session footer showing the sandbox version chip next to the Auto Gemini 3 model selector while the agent thinks inside the sandbox
    실제 샌드박스 세션: 표시가 Auto (Gemini 3) 바로 옆에 있습니다.146:40에 보기

OS에 맞는 백엔드 고르기

  1. 5

    macOS는 내장 Seatbelt 활용

    macOS는 컨테이너가 필요 없습니다. Gemini CLI가 Seatbelt(sandbox-exec)로 프로세스를 감쌉니다. 기본 프로파일 permissive-open은 쓰기를 프로젝트 디렉터리로 제한하고 읽기와 네트워크는 열어둡니다. 더 엄격하게는 SEATBELT_PROFILE 환경 변수로 permissive-proxied, restrictive-open, restrictive-proxied, strict-open, strict-proxied를 고르세요.

  2. 6

    Linux / WSL2는 gVisor runsc

    Google의 gVisor(runsc 런타임)는 가장 강한 격리를 제공합니다: 컨테이너가 모든 시스템 콜을 가로채는 사용자 공간 커널 위에서 동작합니다. GEMINI_SANDBOX=runsc 또는 "sandbox": "runsc"로 명시적으로 선택(자동 감지 안 됨)하면 Gemini CLI가 docker run --runtime=runsc를 대신 실행해 줍니다.

    Gemini CLI documentation page for the gVisor runsc sandbox backend, the strongest Linux-only isolation that runs containers inside a user-space kernel
    문서는 runsc를 가장 강한 Linux 전용 백엔드로 소개합니다.141:20에 보기
  3. 7

    runsc 런타임 설치

    Ubuntu(네이티브든 WSL2든)에서는 apt 한 줄이면 됩니다: sudo apt get install runsc. Gemini CLI는 runsc를 독립 도구가 아니라 Docker 런타임으로 구동하므로 Docker도 미리 설치해 실행 상태여야 합니다.

    WSL2 Ubuntu terminal in VS Code running sudo apt get install runsc to set up the gVisor runtime for Gemini CLI sandbox mode
    WSL2 Ubuntu 터미널에 설치 명령 입력.143:35에 보기
  4. 8

    설치 결과 확인

    apt는 runsc를 Ubuntu 보안 업데이트 저장소에서 바로 풀어줍니다. 별도 PPA는 불필요. 이 단계를 건너뛰면 이후 Linux의 gemini -s가 실패하거나 조용히 컨테이너 백엔드로 폴백하므로, 첫 샌드박스 실행 전에 패키지를 확인하세요.

    apt output finishing the runsc package install on Ubuntu 24.04, the gVisor runtime that backs Gemini CLI sandbox containers on Linux
    Ubuntu 24.04에서 runsc 언팩이 끝난 장면.144:15에 보기
  5. 9

    컨테이너 선호? 어떤 OS든 Docker 또는 Podman

    컨테이너 기반 샌드박스는 Docker나 Podman이 도는 곳이라면 어디서든 동작하며, 시작 전 두 가지 모두 설치·실행 상태여야 합니다 - docker를 한 번 실행해 응답을 확인하세요. 샌드박스는 기본으로 ghcr.io/google/gemini-cli:latest 이미지를 쓰고, 작업 디렉터리를 호스트와 완전히 같은 절대 경로로 컨테이너에 마운트합니다.

    Docker CLI global options printed in a VS Code terminal to confirm the Docker engine is installed and answering before enabling container-based Gemini CLI sandboxing
    docker를 한 번 실행해 엔진 응답 확인.145:30에 보기

YOLO 모드 안심하고 돌리기

  1. 10

    샌드박스와 YOLO 모드 결합

    gemini --yolo(--approval-mode=yolo의 약칭)는 모든 권한 확인을 위험할 정도로 건너뜁니다 - 자율 실행에 필요한 동작이자, 샌드박스가 존재하는 이유입니다. 샌드박스 플래그와 함께 YOLO 세션을 실행하면 건너뛴 확인들도 격리 환경 안에 머뭅니다.

    Slide introducing Gemini CLI YOLO mode where the --yolo or --approval-mode=yolo flag dangerously skips every permission prompt
    한 장으로 보는 YOLO 모드: 중단 없음, 모든 권한 즉시 통과.148:20에 보기
  2. 11

    자율 실행이 샌드박스 안에 있었는지 검증

    YOLO 세션 동안 푸터에는 파란 YOLO Mode 배지가 표시됩니다 - 확인이 건너뛰어지고 있다는 신호입니다. 실행 후 /stats 상호작용 요약이 어떤 도구가 동작했는지 보여주고, 샌드박스 표시는 작업이 상자 안에서 이뤄졌다는 증거로 남습니다.

    Gemini CLI interaction summary in VS Code with the blue YOLO Mode badge glowing in the status footer after an autonomous session
    자율 세션 종료 후 푸터의 YOLO Mode 배지.147:40에 보기

커스텀 샌드박스 이미지와 컨테이너 플래그

기본 컨테이너 이미지로 일반 코딩은 충분합니다. 프로젝트 고유의 툴체인이 필요하거나 컨테이너 환경이 발목을 잡을 때는 조정 지점이 네 가지 있습니다.

  • 1이미지 지정: GEMINI_SANDBOX_IMAGE를 설정하거나 settings.json에서 객체 형태 "sandbox": "command": "docker", "image": "..." (a JSON object)를 사용하세요. bash가 들어 있는 Docker / Podman 이미지라면 무엇이든 됩니다.
  • 2직접 빌드: 프로젝트 루트에 .gemini/sandbox.Dockerfile을 두고 BUILD_SANDBOX=1로 실행하면 Gemini CLI가 자동 빌드합니다. 자동 빌드는 소스에서 실행할 때만 가능하며, npm 설치는 사전 빌드 이미지를 참조해야 합니다.
  • 3컨테이너 명령 조정: SANDBOX_FLAGS로 docker/podman에 플래그를 추가합니다 - 예컨대 export SANDBOX_FLAGS="--security-opt label=disable"은 Podman에서 SELinux가 볼륨 마운트를 거부할 때의 표준적인 해결책입니다.
  • 4Linux 파일 소유권 수정: 샌드박스는 사용자 권한을 자동 매핑하지만, 생성 파일의 소유자가 어긋날 때는 SANDBOX_SET_UID_GID=true로 호스트 UID/GID를 강제하세요.

Gemini CLI 자체를 컨테이너 안에서 구동하면서 샌드박스를 더하고 싶다면: /var/run/docker.sock을 마운트해 CLI가 호스트 데몬으로 형제 컨테이너를 띄울 수 있게 하고, 워크스페이스 경로를 호스트 절대 경로와 정확히 일치시키세요. 볼륨 마운트를 해석하는 쪽은 컨테이너가 아니라 호스트 데몬입니다.

문제 해결: 오류, 파일 접근, 비활성화

샌드박스 문제의 대부분은 다섯 가지 유형으로 환원됩니다. 무엇보다 먼저 디버그 출력으로 재현하세요: DEBUG=1 gemini -s -p "your prompt".

  • 1"Operation not permitted" - 명령이 샌드박스 밖 접근을 요구합니다. 더 관대한 프로파일(macOS: SEATBELT_PROFILE)로 바꾸거나 필요한 마운트를 추가하세요.
  • 2샌드박스 안에 명령이 없음 - 커스텀 이미지에 도구를 구워 넣거나 sandbox.bashrc로 설치하세요. BUILD_SANDBOX 자동 빌드는 소스 체크아웃 전용입니다.
  • 3네트워크 실패 - 현재 프로파일이 네트워크를 허용하는지 확인하고 프록시 설정을 점검하세요. -proxied 프로파일은 샌드박스 프록시로 트래픽을 보냅니다.
  • 4Linux에서 생성 파일 소유자가 다름 - SANDBOX_SET_UID_GID를 전환하세요(true는 호스트 UID/GID 강제, false는 매핑 비활성화).
  • 5Windows 파일이 Low 무결성 표시로 남음 - 네이티브 샌드박스는 icacls로 쓰기 가능 경로를 표시합니다. icacls "C:\path\to\dir" /setintegritylevel Medium으로 되돌리세요.

샌드박스가 무엇에 접근 가능한지 보려면 CLI에게 물어보세요: gemini -s -p "run shell command: env | grep SANDBOX"가 샌드박스 환경 변수를, mount | grep workspace가 마운트를 보여줍니다. 파일은 내보내기가 필요 없습니다 - 컨테이너 샌드박스는 프로젝트를 같은 절대 경로로 마운트하므로 편집이 곧바로 폴더에 반영됩니다. 비활성화는: -s 플래그 제거, GEMINI_SANDBOX unset, settings.json의 "sandbox" 항목 삭제. 도구 수준 샌드박스는 별도 스위치 "security": "toolSandboxing": false(재시작 필요)입니다.

Gemini CLI 샌드박스 FAQ

관련 가이드