Deepseek ArtifactsDeepseek Artifacts
GitHub 공식 샌드박스 데모 기반

Copilot 샌드박스 모드: 그림으로 보는 실전 가이드

로컬 샌드박스는 GitHub Copilot의 셸 명령, 파일 도구, 네트워크 접근을 OS 수준의 격리 공간 안에 가둡니다. 공식 데모를 따라 /sandbox로 활성화하고, 정책을 조정하고, 끄고, 세션 전체를 클라우드로 넘기는 과정을 다룹니다.

핵심 요약

  • 샌드박스 모드는 Copilot의 셸 명령, 파일 도구, MCP·LSP 서버를 OS 샌드박스 안에서 실행합니다. VM이나 컨테이너 없이(macOS는 Seatbelt, Linux는 bubblewrap, Windows는 ProcessContainer) 파일·네트워크·자격 증명 접근을 제한합니다.
  • Copilot 앱에서는 샌드박스가 기본적으로 꺼져 있습니다. 앱 설정을 열고 프로젝트를 선택한 뒤 "Sandbox new sessions"를 켜세요. CLI에서는 /sandbox enable(실험적 기능)을 실행합니다.
  • /sandbox로 정책을 다듬습니다. CLI에는 General·Filesystem·Network 탭이, 앱에는 추가 읽기/쓰기·읽기 전용·거부 경로와 네트워크·자격 증명 스위치가 있습니다. 변경 사항은 새 세션에 적용되거나 /restart-session으로 반영하세요.
  • copilot --cloud는 세션 전체를 GitHub가 호스팅하는 클라우드 샌드박스로 옮깁니다. github.com/copilot/tasks 링크나 저장소의 Agents 탭에서 다시 참여할 수 있으며, 로컬 샌드박스 설정은 클라우드 세션에는 적용되지 않습니다.

How to run GitHub Copilot in local and cloud sandboxes | demo

채널:GitHub (official channel)1:31

보기

GitHub Copilot Sandboxes are SO COOL

채널:Gwyneth Peña-Siguenza1:50

보기

Local sandboxing in the GitHub Copilot app (public preview)

문서:github.blog/changelog

보기

Configuring local sandboxing in the GitHub Copilot app

문서:docs.github.com

보기

About cloud and local sandboxes for GitHub Copilot

문서:docs.github.com

보기

이 가이드의 스크린샷은 모두 GitHub 공식 샌드박스 데모(깔끔한 터미널 녹화)에서 가져왔습니다. 본문은 영상과 GitHub 공식 문서를 바탕으로 작성했으며 설정 이름은 원문 그대로 인용했습니다.

스크린샷의 저작권은 원저작자에게 있으며, 시각적 참고 자료로 출처를 밝혀 사용했습니다. 로컬 샌드박스는 공개 프리뷰 단계이므로 이름과 동작이 바뀔 수 있습니다.

워크스루: 12단계

1 · 로컬 샌드박스 켜기

  1. 1

    저장소에서 Copilot 시작

    프로젝트에서 Copilot CLI를 실행합니다. 샌드박스는 실험적 CLI 기능이라 배너에 /experimental 배지가 붙고, 상태 표시줄에는 앞으로 읽는 법을 익히게 될 샌드박스 표시가 나타납니다.

    Copilot CLI v1.0.56 session start in a repo showing the yellow /experimental badge with the sandbox enabled indicator lit in the status bar
    Copilot CLI 시작 화면. /experimental 배지와 상태 표시줄의 샌드박스 표시.0:08에 보기
  2. 2

    /sandbox enable 실행

    /sandbox를 입력하면 명령 팔레트에 enable과 disable, 딱 두 개의 스위치가 나옵니다. enable을 고르면 이 Copilot 세션과 여기서 실행하는 모든 셸 명령에 샌드박스가 적용됩니다.

    Copilot CLI slash-command menu listing /sandbox enable and /sandbox disable above the /sandbox [enable|disable] prompt hint
    /sandbox 자동 완성이 enable과 disable을 제안하는 모습.0:24에 보기
  3. 3

    세션이 샌드박스화됐는지 확인

    Copilot이 "Sandboxing has been enabled."을 출력하고 상태 표시줄에는 AI Credits 옆에 "sandbox enabled"가 표시됩니다. 이 순간부터 에이전트가 실행하는 명령은 샌드박스 안에서 동작합니다.

    Copilot CLI printing Sandboxing has been enabled with the status bar reading sandbox enabled next to AI Credits 0
    "Sandboxing has been enabled." — 확인하고 싶었던 그 메시지.0:12에 보기

2 · 샌드박스의 권한 범위 정하기

  1. 4

    /sandbox로 정책 패널 열기

    /sandbox만 실행하면 Configure sandbox 패널이 열리고, 설정은 settings.json의 `sandbox` 아래 저장됩니다. General 탭에서는 무엇을 샌드박스 안에서 실행할지 정합니다. 셸 명령, MCP 서버, LSP 서버, 그리고 git·gh 자격 증명 헬퍼를 위한 macOS 키체인 접근입니다.

    Copilot CLI Configure sandbox panel on the General tab with Sandboxing enabled, Sandbox MCP servers, Sandbox LSP servers and Allow keychain access checkboxes
    General 탭: 셸·MCP·LSP 서버와 키체인 접근.0:30에 보기
  2. 5

    파일 시스템 범위 정하기

    Filesystem 탭은 작업 디렉터리를 읽기/쓰기 경로에 자동 추가하고, 샌드박스 종료 시 권한을 재설정할 수 있습니다. ~/.nvm, ~/.npm 같은 도구 경로는 읽기 전용으로 마운트되므로, 도구 체인에 필요하면 목록을 넓히세요.

    Copilot CLI sandbox Filesystem tab showing Include working directory, Clear policy on exit and the read-only ~/.nvm and ~/.npm path list
    nvm과 npm의 읽기 전용 경로. 작업 디렉터리는 자동 포함.0:32에 보기
  3. 6

    네트워크 범위 정하기

    Network 탭의 조작 지점은 세 가지입니다. 아웃바운드 인터넷 허용, 로컬 네트워크 허용, 호스트별 Access 목록. 다운로드가 필요 없는 작업이라면 여기를 먼저 좁히세요.

    Copilot CLI sandbox Network tab with the Allow outbound connections and Allow local network checkboxes plus an empty Access Host list
    네트워크 정책: 아웃바운드, 로컬 네트워크, 호스트별 허용 목록.0:36에 보기
  4. 7

    평소처럼 코딩 — 명령은 샌드박스 안에

    평소처럼 작업하면 됩니다. 에이전트가 계획·편집·실행하는 동안 상태 표시줄은 계속 "sandbox enabled"를 보여줍니다. 명령이 정책이 거부하는 것을 필요로 하면, Copilot은 조용히 상자를 빠져나가는 게 아니라 크게 실패합니다.

    Copilot CLI agent planning a SQLAlchemy 2.0 migration while the status bar reads sandbox enabled at 61.8 AI Credits
    SQLAlchemy 마이그레이션 계획과 실행. 상태 표시줄에 "sandbox enabled".0:20에 보기

3 · 작업하고, 끄고, 클라우드로

  1. 8

    /sandbox disable로 되돌리기

    한 단계만 상자 밖이 필요하다면? /sandbox disable이 샌드박스를 끕니다. "Sandboxing has been disabled."가 나타나고 상태 표시줄에서 샌드박스 배지가 사라집니다. 작업에 따라 언제든 다시 스위치를 끌 수 있습니다.

    Copilot CLI printing Sandboxing has been disabled after the /sandbox disable command with AI Credits 133 and no sandbox badge left in the status bar
    "Sandboxing has been disabled." — 상태 표시줄에서 샌드박스 배지가 사라졌음에 주목.0:38에 보기
  2. 9

    copilot --cloud로 클라우드 샌드박스 실행

    더 무거운 작업은 --cloud 플래그로 시작하세요(공식 데모는 --yolo와 함께 사용하고, GitHub 문서는 --cloud --experimental을 예시로 듭니다). 세션은 내 머신이 아니라 GitHub가 호스팅하는 임시 환경에서 실행됩니다.

    Terminal launching a Copilot cloud sandbox with the copilot --cloud --yolo command typed at the tailspin-toys git prompt
    copilot --cloud --yolo — 세션 전체가 곧 노트북을 떠납니다.0:50에 보기
  3. 10

    원격 제어 링크 확보

    원격 세션이 프로비저닝되면 Copilot은 원격 제어를 연결하고 github.com/copilot/tasks/... URL을 출력합니다. ctrl+e로 QR 코드를 볼 수 있고, 작업 트리는 클라우드 샌드박스 안의 /workspaces/<repo>에 위치합니다.

    Copilot cloud session showing Remote control connected as GeekTrainer with the github.com/copilot/tasks session URL and the ctrl+e QR code hint
    원격 제어 연결됨. 세션 URL과 QR 코드 단축키.1:00에 보기
  4. 11

    클라우드에서 빌드와 테스트를 맡기기

    에이전트는 클라우드 샌드박스 안에서 파일 생성, 의존성 설치, 테스트 스크립트 실행을 진행합니다. 여기서는 test_auth.py를 만들고 백엔드 테스트 스위트를 실행하는 중입니다. 내 머신은 놀고 있고 상태 표시줄의 크레딧만 움직입니다.

    Copilot cloud sandbox creating test_auth.py and running backend unit tests through the test-runner skill inside /workspaces/tailspin-toys
    클라우드 샌드박스에서 테스트 실행. 지금까지 80.4 AI Credits 소비.1:10에 보기
  5. 12

    GitHub.com에서 모니터링하고 다시 참여하기

    세션은 저장소의 Agents 탭에 Remote CLI session으로 나타납니다. 브라우저에서 진행 상황을 보고 메시지를 보낼 수 있고, 나중에 copilot --resume로 재개하면 로컬과 원격 세션이 모두 목록에 나옵니다.

    GitHub.com Agents tab listing Remote CLI sessions for the tailspin-toys repo while Copilot recommends Flask auth libraries in the session panel
    tailspin-toys의 Agents 탭이 클라우드 세션을 실시간 추적.1:14에 보기

설정의 위치: Copilot 앱 vs Copilot CLI

로컬 샌드박스는 두 서피스에 존재하며 설정이 별도로 관리됩니다. 한쪽을 바꿔도 다른 쪽은 변하지 않습니다.

  • 1Copilot 앱: 기본적으로 꺼져 있습니다. 앱 설정을 열고 프로젝트를 선택한 뒤 "Sandbox" 아래 "Sandbox new sessions"를 켜세요. 프로젝트 정책은 샌드박스 세션이 요청할 수 있는 권한을 기술합니다.
  • 2앱 정책: 파일 시스템 접근은 워크스페이스와 작업 디렉터리의 읽기/쓰기에서 시작하며, 추가 읽기/쓰기·추가 읽기 전용·거부 경로 목록을 함께 씁니다. 네트워크는 아웃바운드 인터넷과 로컬 네트워크, 자격 증명은 git과 GitHub CLI를 포괄합니다.
  • 3Copilot CLI: 샌드박스는 실험적 기능입니다. --experimental 플래그로 시작하거나 /experimental on을 실행한 뒤 /sandbox enable, /sandbox disable, 또는 /sandbox만 실행해 설정 패널을 여세요. 설정은 settings.json의 `sandbox` 아래 저장됩니다.
  • 4슬래시 명령은 시점에 민감합니다. 진행 중인 세션에서 /sandbox on이나 /sandbox off를 입력하면 그 세션만의 재정의가 되고, 세션 시작 전에 입력하면 프로젝트 기본값을 바꿉니다. /restart-session을 쓰면 기록을 잃지 않고 정책 변경을 적용할 수 있습니다.
  • 5클라우드 세션은 별개의 세계입니다. 로컬 샌드박스 설정은 클라우드 샌드박스나 원격 호스트 세션에 적용되지 않으며, 클라우드 샌드박스는 조직 또는 엔터프라이즈 소유자가 접근 정책을 켜기 전에는 나타나지 않습니다.

이 가이드의 CLI 데모가 가장 빠른 길입니다. 원하는 정책을 정한 뒤에는 앱의 프로젝트별 토글이 지속적인 기본값이 됩니다.

샌드박스가 거부할 때: 설계된 fail-closed

샌드박스는 fail-closed로 설계되었습니다. OS가 요청한 정책을 강제할 수 없으면 명령은 샌드박스 없이 실행되는 대신 오류로 멈춥니다.

  1. 1미지원 플랫폼이나 정책: 요청한 정책을 강제할 수 없으면 샌드박스 셸은 오류로 실패하며, 조용히 샌드박스 없이 실행으로 폴백하는 일은 없습니다.
  2. 2"Sandbox unavailable": 앱이 문제를 표시하고, 원인을 고치면 Retry sandbox 버튼으로 재시도할 수 있습니다.
  3. 3비상 탈출구: "Run outside the sandbox?" 프롬프트에서 취소, 샌드박스 밖에서 한 번 실행, 이 세션의 샌드박스 해제를 고를 수 있고 "Re-enable sandbox"로 되돌립니다. 재시작하면 끝나며 프로젝트 기본값은 절대 바꾸지 않습니다.
  4. 4엔터프라이즈 소유자가 최종 결정권을 가질 수 있습니다. 관리 설정으로 샌드박스 밖 실행 탈출구를 막으면 그쪽 강제 역시 fail-closed입니다.

플랫폼 메모: macOS는 15 이상 권장(Seatbelt). Linux는 PATH의 bubblewrap 0.5.0+에 slirp4netns, util-linux 2.35+, iptables, /dev/net/tun이 필요합니다. Windows는 ProcessContainer의 BaseContainer 계층을 사용하며, 거부 경로를 보장할 수 없으면 unsupported-policy 메시지로 실패합니다.

Copilot 샌드박스 FAQ

관련 가이드