GitHub Copilot 로컬 샌드박스 정식 제공: 에이전트의 파일·네트워크 접근을 제한하는 법

코딩 에이전트가 로컬 파일과 네트워크에 접근하는 범위를 직접 제한할 수 있습니다. 기본 꺼짐 상태부터 설치·정책 설정·결과 확인과 운영체제별 한계를 단계별로 살펴봅니다.

GitHub Copilot 로컬 샌드박스 정식 제공: 에이전트의 파일·네트워크 접근을 제한하는 법

GitHub가 2026년 10월 9일 공개한 주간 업데이트에서 Copilot의 로컬 샌드박스 정식 제공을 알렸다. Copilot CLI와 앱, Agent Host를 사용하는 VS Code 세션에서 에이전트의 파일·네트워크·자격증명 접근을 제한할 수 있으며 로컬 샌드박스 자체에 추가 요금은 없다. 다만 기능을 사용할 수 있다는 말과 이미 켜져 있다는 말은 다르다. 공식 문서상 로컬 샌드박스는 기본적으로 꺼져 있어, 직접 활성화하고 유효 정책을 확인해야 한다.

발표일과 적용 범위

공식 RSS의 게시 시각은 10월 9일 22:58:23 UTC, 한국시간으로 10월 10일 07:58:23이다. 10월 10일 밤 원문을 확인했으므로 최근 24시간 안의 개발 소식이다. 아래 절차는 당일 GitHub 공식 문서를 기준으로 작성했으며 실제 Copilot 세션에서 실행 검증한 예시는 아니다. 운영체제별 격리 방식과 지원 기능이 달라 설치 성공만으로 보호 수준이 같다고 판단해서는 안 된다.

CLI와 앱의 로컬 설정은 따로 관리된다. CLI에서 기능을 켜도 앱 프로젝트의 기본값까지 바뀌지 않는다. 또한 정식 제공된 로컬 기능과 공개 프리뷰 상태의 클라우드 샌드박스를 구분해야 한다. 클라우드는 원격의 일시적인 Linux 환경이고 사용량 과금이 적용되므로, 이 글의 무료 로컬 기능과 같은 조건이 아니다.

설치 전 확인

활성 Copilot 구독과 조직이 허용한 CLI 접근이 필요하다. npm 방식은 Node.js 22 이상을 요구한다. macOS의 로컬 격리는 Seatbelt를 사용하며 공식 문서는 macOS 15 이상을 안내한다. 더 오래된 버전에서 CLI가 실행된다고 격리 백엔드까지 검증됐다는 뜻은 아니다. Linux는 bubblewrap 0.5.0 이상이 필요하고 네트워크 허용 시 slirp4netns, util-linux 도구, 방화벽 바이너리와 TUN 접근 등 추가 조건이 있다.

Windows는 최근 Windows 11 업데이트가 필요하며 경로 거부와 프록시 같은 세부 기능도 빌드에 따라 달라진다. 공식 설정 문서는 25H2의 KB5124010 또는 26H1의 KB5124006 이후 조건을 제시한다. 자신의 장비에서는 문서의 지원 링크와 오류 메시지를 함께 확인해야 한다. 이 글의 복사 가능한 시작 예시는 macOS의 npm 설치 경로다. Linux·Windows를 macOS와 같은 보호 수준이라고 가정하지 않는다.

설치와 첫 실행

다음 명령은 셸에 입력한다. 기존 설치가 있다면 먼저 버전을 기록하고 팀의 업데이트 정책을 확인한다. 전역 npm 설치가 실패한다고 관리자 권한을 무조건 추가하지 말고 Node 관리 도구와 npm의 설치 경로를 확인한다.

node --version
npm install -g @github/copilot
copilot --version
mkdir -p "$HOME/copilot-sandbox-demo"
cd "$HOME/copilot-sandbox-demo"
git init
printf "sandbox demonstration\n" > README.md
copilot

Node 버전이 22 미만이면 설치 전에 지원 버전으로 준비한다. 마지막 명령은 대화형 CLI를 연다. 인증이 필요하면 화면 안내에 따라 아래 명령을 Copilot 세션 안에 입력한다. 슬래시 명령은 일반 터미널의 셸 명령이 아니다.

/login
/sandbox enable
/sandbox

로그인은 자신의 GitHub 계정으로 수행하고, 조직 라이선스가 적용되는지 확인한다. /sandbox는 General, Credentials, Filesystem, Network 탭이 있는 설정 화면을 연다. Tab으로 이동하고 Esc로 변경을 저장하고 닫는다. enable은 이후 세션에도 유지되므로 일회성 스위치라고 생각하지 않는다. 기업 관리 설정이 있으면 항목에 managed 표시가 붙고 사용자 변경이 제한될 수 있다.

실무 정책을 좁힌다

데모처럼 로컬 파일만 다루는 작업이라면 General에서 Enable sandbox를 확인하고 Allow sandbox bypass를 끈다. 기본값은 개별 명령의 우회 요청을 허용하므로, 차단된 명령을 승인하면 더 넓은 접근으로 재실행될 수 있다. MCP·LSP 서버의 샌드박스 적용도 유지한다. 원격 MCP 서버는 로컬 격리 대상이 아니라는 점을 별도로 고려한다.

Filesystem에서는 현재 작업 폴더 외에 꼭 필요한 읽기 전용 경로만 허용하고, 불필요한 읽기·쓰기 확장을 추가하지 않는다. 자신의 비밀 파일이나 민감 폴더를 Denied 목록에 넣을 수 있지만 실제 비밀값을 시험 입력으로 사용하지 않는다. Credentials에서는 이번 작업에 필요 없는 Git·GitHub CLI 자격증명 접근을 해제한다. Network에서는 외부 인터넷과 로컬 네트워크 접근을 작업 목적에 맞춰 좁힌다. 설치와 로그인은 먼저 끝내고 에이전트가 수행할 도구의 네트워크를 제한하는 순서가 단순하다.

이 설정은 기사에서 제안하는 로컬 문서 정리 작업용 정책이다. 패키지 설치나 API 호출이 필요한 작업에는 필요한 목적지의 접근이 있어야 한다. 전부 허용하기보다 실패한 목적지와 이유를 확인해 최소 범위로 추가한다. macOS의 키체인 접근도 작업에 필요하지 않다면 허용하지 않는 편이 좋다.

작업과 결과 확인

설정을 저장한 다음 CLI 대화에 아래 요청을 입력한다. 새 파일만 만드는 작은 작업부터 시작하면 권한 범위와 결과를 이해하기 쉽다.

현재 디렉터리의 README.md만 읽고 docs/checklist.md를 만들어 주세요.
내용은 제목 하나와 로컬 샌드박스 검토 항목 세 개입니다.
외부 네트워크, 자격증명, 작업 폴더 밖의 파일은 사용하지 마세요.
필요한 도구 실행은 승인 요청으로 보여 주세요.

파일 변경 제안을 검토한 뒤 허용하고, 작업이 끝나면 별도 터미널에서 다음 명령으로 결과를 확인한다. 기대 결과는 지정한 새 문서가 생기고 README가 변경되지 않는 것이다. 모델의 응답 문구만으로 성공을 판정하지 않는다.

cd "$HOME/copilot-sandbox-demo"
git status --short
cat README.md
cat docs/checklist.md

보호 동작도 확인하려면 실제 비밀 대신 무해한 시험 파일을 작업 폴더 밖에 만들어 Denied 경로로 지정하고, 에이전트가 셸 명령으로 그 파일을 읽도록 요청했을 때 차단되는지 확인한다. 우회 승인은 하지 않는다. 이는 개별 경로의 시험이며 모든 접근 경계가 완전하다는 증명은 아니다. 앱의 Configured policy summary도 요청한 설정을 보여 주는 것이지 실행 중 보호가 적용됐다는 증명은 아니라고 공식 문서는 경고한다.

보호의 빈틈

로컬 격리는 별도 가상머신이나 컨테이너가 아니라 운영체제 수준의 가벼운 격리다. 특히 CLI 자체는 샌드박스 밖에서 실행된다. 내장 파일 도구의 파일 작업은 OS 격리가 직접 관찰하지 못하므로 도구가 자체적으로 정책을 검사하는 최선 노력 방식이라는 설명이 있다. 이 차이는 보안 요구가 높은 조직에서 중요한 도입 조건이다.

네트워크 호스트 규칙과 프록시도 운영체제별 차이가 있다. macOS·Linux에서는 샌드박스가 외부 연결을 로컬 프록시로 제한하는 반면, Windows에서는 프로그램이 프록시 설정을 준수하는 데 의존하는 경우가 있어 직접 연결에 대한 보호가 같지 않다. 로컬에서 실행한다는 말도 모델 요청과 관련 데이터가 전부 장비에만 남는다는 뜻은 아니다. Copilot 서비스의 데이터 처리 정책과 조직 설정은 별도로 확인한다.

비용과 권한

추가 요금이 없다는 안내는 로컬 샌드박스 기능에 관한 것이다. Copilot 구독과 모델 사용, 별도 서비스 호출 비용까지 무료라는 뜻은 아니다. 인증 토큰을 문서나 저장소에 넣지 말고 초기 로그인 안내를 사용하는 편이 좋다. PAT를 사용하는 경우에도 공식 문서가 요구하는 Copilot Requests 권한과 저장소 범위를 최소화한다.

승인된 우회는 일반 사용자 계정이 가진 권한을 되돌려 주는 방식이지 관리자 권한을 만드는 기능은 아니다. 그러나 그 계정이 읽을 수 있는 데이터의 범위는 충분히 넓을 수 있다. 격리를 켠 뒤에도 명령과 변경 내용을 검토해야 하며, 프로덕션 자격증명이나 고객 데이터를 데모에 연결하지 않는다.

오류와 되돌리기

설치 오류에서는 Node 버전과 npm 경로부터 확인한다. ignore-scripts=true인 환경에서는 공식 문서가 설치 시 npm_config_ignore_scripts=false를 지정하는 대안을 안내하지만, 조직이 스크립트를 막은 이유를 확인한 뒤 선택해야 한다. 인증 실패는 계정 구독과 조직의 CLI 정책을 점검한다. 샌드박스 오류는 Linux의 bwrap 등 지원 도구와 Windows 빌드, macOS 버전, 거부된 경로·목적지를 순서대로 확인한다.

차단을 해결하려고 전체 격리를 해제하지 않는다. 앱의 설정 변경은 새 세션이나 재시작 후 적용될 수 있고 CLI와 앱은 별도라는 점도 원인 후보다. 제거가 필요하면 CLI를 종료하고 아래 명령으로 npm 설치만 제거한다. 시험 파일 삭제는 내용을 확인한 뒤 별도로 수행하며 기존 프로젝트나 설정 폴더를 일괄 삭제하지 않는다.

npm uninstall -g @github/copilot

/sandbox disable은 기능을 끄는 공식 세션 명령이지만 보호가 사라지는 변경이다. 기업 정책이 허용하는 범위에서만 사용할 수 있다. 일시적으로 문제를 진단했다면 /sandbox enable로 다시 켜고 정책을 재확인한다. 이번 업데이트를 도입할 때의 기준은 단순히 에이전트를 더 빨리 돌리는 것이 아니라, 필요한 작업을 끝내면서 불필요한 접근은 실제로 제한되는지 확인하는 것이다.

출처