# 에서 로컬 샌드박싱에 대한 파일 시스템 정책 이해 GitHub Copilot 명령 줄 인터페이스 (CLI)

로컬 샌드박싱을 사용하도록 설정 코파일럿 CLI 하면 읽고 쓸 수 있는 파일 및 디렉터리를 제어하는 파일 시스템 정책에 따라 각 샌드박스 처리 또는 작업을 실행합니다. 해당 정책을 빌드하는 방법과 해당 정책이 부여하는 액세스 권한을 확인하는 방법을 알아봅니다.

> \[!NOTE]
> 로컬 샌드박스가 GitHub Copilot 있으며 공개 미리 보기 변경될 수 있습니다.

> \[!IMPORTANT]
> Windows 로컬 샌드박싱에는 Windows 참가자 빌드가 필요합니다.

## Introduction

로컬 샌드박싱을 코파일럿 CLI 사용하도록 설정하면 운영 체제 샌드박스 내에서 사용자 대신 호출하는 명령을 실행합니다. 샌드박스는 샌드박스 프로세스 또는 작업에서 읽을 수 있는 경로, 쓸 수 있는 경로 및 전혀 건드리지 못하는 경로를 결정하는 규칙 집합인 **파일 시스템 정책을** 적용합니다.

이 정책의 대부분은 자동으로 어셈블되므로 일상적인 명령이 설정 없이 계속 작동합니다. 이 문서에서는 정책에 도착하는 방법과 Copilot 특정 디렉터리에서 부여하는 액세스를 확인하는 방법을 설명합니다.

로컬 샌드박싱을 켜고 끄는 방법을 포함하여 로컬 샌드박싱에 대한 개요는 [AUTOTITLE 및 AUTOTITLE](/ko/copilot/concepts/about-cloud-and-local-sandboxes) 을 참조 [하세요](/ko/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing).

## 정책이 적용되는 대상

파일 시스템 정책은 사용자 대신 수행하는 작업을 Copilot 다루지만 작업 종류에 따라 다른 방식으로 적용됩니다.

* **셸 명령 및 기본 제공 검색** 은 샌드박스 자식 프로세스로 실행되므로 운영 체제에서 정책을 직접 적용합니다. 예를 들어 도구 및 `glob` 도구는 `grep` 샌드박스가 있는 자식 프로세스로 ripgrep를 실행합니다.
* **로컬 MCP 및 LSP(언어 서버 프로세스)** 도 샌드박스 내에서 실행할 수 있으므로 운영 체제에서도 정책을 적용합니다.
* **기본 제공 파일 읽기 및 파일 편집 도구** 는 샌드박스가 있는 자식 프로세스가 아닌 자체의 코파일럿 CLI 일부로 실행됩니다. 파일을 읽거나 쓰기 전에 동일한 파일 시스템 정책을 확인하지만 운영 체제 샌드박스에서 이러한 작업을 볼 수 없으므로 확인은 운영 체제에서 적용하는 것이 아니라 소프트웨어 전용 보호 장치입니다.
* **원격 MCP 서버** 는 컴퓨터 외부에서 실행되므로 샌드박스에 대한 로컬 자식 프로세스가 없으며 파일 시스템 정책이 이를 제한하지 않습니다.
* **스바겐트는** 직접 행동하지 않습니다. 다른 도구를 오케스트레이션합니다. 정책이 적용되는지 여부와 방법은 스바겐트가 호출하는 도구에 따라 달라집니다.

따라서 샌드박스 **처리 프로세스** 는 운영 체제에 의해 제한되는 반면, In-Process **작업은** 소프트웨어에서 동일한 정책을 적용하므로 이 문서에서는 명령만이 아닌 샌드박스 처리 또는 작업을 참조합니다.

## 권한 수준

샌드박스는 **기본적으로 거부**됩니다. 경로가 명시적으로 부여되지 않는 한 명령은 이를 사용할 수 없습니다. 정책의 모든 경로에는 다음 세 가지 권한 수준 중 하나가 있습니다.

* **읽기/쓰기** - 이 명령은 이 경로에서 파일을 읽고 수정할 수 있습니다.
* **읽기 전용 -** 명령은 이 경로에서 파일을 읽을 수 있지만 변경할 수는 없습니다.
* **거부됨** - 이 명령은 더 넓은 규칙이 허용하지 않더라도 이 경로에서 읽거나 쓸 수 없습니다.

권한이 부여되지 않는 한 액세스가 거부되므로 프로젝트 파일, Copilot 실행 도구 및 임시 디렉터리와 같은 지원 위치 등 합법적으로 필요한 모든 것을 명령에 부여해야 합니다.

> \[!NOTE]
> 이러한 권한 수준은 모든 샌드박스 프로세스 또는 작업에 적용되지만 다르게 적용됩니다. 샌드박스 자식 프로세스의 경우 운영 체제에서 직접 적용하는 반면 CLI의 기본 제공 파일 읽기 및 파일 편집 도구는 운영 체제 백스톱 없이 소프트웨어에서 동일한 수준을 확인합니다.

## 정책 빌드 방법

샌드박스가 적용된 각 프로세스가 시작되기 전에 현재 작업 디렉터리, 코파일럿 CLI 환경, 설정 및 자동 부여를 사용하여 해당 프로세스에 대한 효과적인 정책을 확인합니다. 이렇게 하면 프로세스가 필요한 액세스로만 제한되며 이러한 공통 위치를 직접 관리할 필요가 없습니다.

### 작업 디렉터리

기본적으로 로컬 샌드박싱에 대한 파일 시스템 설정에서 **작업 디렉터리 포함** 을 사용하도록 설정하면 현재 작업 디렉터리에 읽기/쓰기 권한이 부여됩니다. Git 리포지토리 Copilot 에서 연결된 Git 권한도 추가합니다. 이 설정을 해제하면 모든 자동 부여가 표시되지 않으므로 필요한 프로젝트 및 Git 경로에 대한 허용 규칙을 수동으로 추가해야 합니다.
[로컬 샌드박스 설정 구성](/ko/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을(를) 참조하세요.

> \[!NOTE]
> 엔터프라이즈 소유 조직에서 가져오는 Copilot 경우 관리자는 **작업 디렉터리 포함** 설정을 해제하고 잠글 수 있으므로 다시 설정할 수 없습니다.
> [엔터프라이즈 관리 설정](/ko/copilot/reference/enterprise-administrators/enterprise-managed-settings#sandbox)을(를) 참조하세요.

### PATH의 도구

같은 `python``git`프로그램을 실행하려면 샌드박스에서 프로그램이 있는 디렉터리를 명령에 표시하도록 해야 합니다. 환경 변수는 `PATH` 이러한 디렉터리를 나열하고, 관련 도구 변수(예`CARGO_HOME``GOPATH``PYTHONPATH`: , 및Copilot)에서 명명된 디렉터리와 함께 **읽기 전용** 액세스 권한을 부여합니다. 읽기 전용은 외부 도구에 적합한 수준입니다. 명령을 실행 `git`해야 하며 수정하지 않습니다. 샌드박스에서 `PATH` 검사하는 도구 체인 환경 변수 및 도구 체인 환경 변수의 전체 목록과 각 변수가 해석되는 방법은 [GitHub Copilot CLI 명령 참조](/ko/copilot/reference/copilot-cli-reference/cli-command-reference#sandbox-tool-directory-grants)을 참조하세요.

### 시스템 및 프로필 위치

표준 시스템 위치 및 사용자 프로필(홈) 디렉터리에는 읽기 전용이 부여되므로 명령은 구성 파일 및 공유 라이브러리를 변경할 수 없도록 읽을 수 있습니다.

### 패키지 관리자 캐시

샌드박스 Copilot 내에서 설치 및 빌드가 작동할 수 있도록 하려면 일반적인 패키지 관리자 및 도구 체인에서 사용하는 캐시 및 레지스트리에 대한 액세스 권한도 부여합니다. 레지스트리 및 도구 체인의 경우 읽기 전용이며 빌드 캐시에 대한 읽기/쓰기가 가능합니다.
`/sandbox policy` 보고서에서는 **개발 도구 액세스**로 표시됩니다.

### Git 리포지토리

Git 리포지 Copilot 토리의 하위 디렉터리에서 작업하는 경우 명령이 전체 프로젝트를 볼 수 있도록 전체 리포지토리에 **대한 읽기** 권한을 부여하고 현재 작업 디렉터리 및 리포지토리의 Git 메타데이터(`.git`해당 디렉터리)에 **대한 쓰기**를 제한합니다. 이렇게 하면 명령이 리포지토리 전체에서 읽을 수 있지만 작업 중인 위치에 초점을 맞춘 변경 내용이 유지됩니다.

읽기 액세스는 전체 리포지토리에 걸쳐 있으므로 샌드박스가 적용된 명령은 프로젝트의 다른 곳에 저장된 중요한 항목을 포함하여 현재 하위 디렉터리 외부의 파일을 읽을 수 있습니다. 특정 경로가 도달할 수 없도록 하려면 거부 규칙을 추가할 수 있습니다.
[로컬 샌드박스 설정 구성](/ko/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을(를) 참조하세요.

## 액세스 규칙이 겹치는 경우

여러 위치를 부여하고 고유한 위치를 추가할 수 있으므로 Copilot 규칙이 겹칠 수 있습니다. 이렇게 하면 **더 구체적인 경로가 우선합니다**. 예를 들어 쓰기 가능하지만 읽기 전용 `/project``/project/secrets`으로 표시하는 `/project/secrets` 경우 `/project` . 중요한 하위 폴더를 보호하는 유용한 방법입니다.

편의 부여가 방해가 될 때 겹침도 확인됩니다. 로컬 가상 환경(`.venv`)이 표시되는 Python 프로젝트를 고려합니다`PATH`. 해당 디렉터리를 일반 읽기 전용 도구 위치로 처리하면 쓰기 가능한 프로젝트 내에 있더라도 읽기 전용이 되며, 환경을 업데이트하려고 할 때와 같은 `pip install` 명령이 실패할 수 있습니다.
Copilot 는 이를 해결합니다. 자동으로 추가된 권한 부여(예: 도구 디렉터리 `PATH`)는 이미 적용되는 더 광범위한 읽기/쓰기 권한 부여를 제공합니다. 따라서 프로젝트-로컬 `.venv``node_modules/.bin`또는 유사한 디렉터리가 작업 영역의 일부로 쓰기 가능한 상태로 유지됩니다.

**구성하는 규칙은** 항상 유지됩니다. 경로를 읽기 전용으로 표시하거나 거부하면 동일한 경로가 검색되고 자동으로 부여되는 경우에도 해당 결정이 적용됩니다. 이렇게 하면 샌드박스 명령이 비밀을 읽을 수 없도록 파일을 거부하는 `.env` 등 중요한 위치를 안전하게 보호할 수 있습니다.

## 현재 정책에서 허용하는 내용 확인

정책은 각 디렉터리 및 명령에 대해 어셈블되므로 액세스 권한을 확인하는 가장 간단한 방법은 요청하는 코파일럿 CLI것입니다. 세션에서 다음을 입력합니다.

```shell copy
/sandbox policy
```

Copilot 는 현재 디렉터리에 대한 **유효** 정책을 출력합니다. 여기서 시작된 명령이 실제로 수신하는 읽기/쓰기, 읽기 전용 및 거부된 경로와 함께 네트워크 액세스 및 개발 도구 액세스가 적용됩니다. 자동 권한 부여 및 사용자 고유의 설정이 결합되고 저장된 설정의 복사본뿐만 아니라 겹침이 해결된 후에 해결된 결과입니다.

보고서를 읽을 때 유의해야 할 몇 가지 사항은 다음과 같습니다.

* **현재 디렉터리를 반영합니다**. 권한 부여는 디렉터리별로 검색되므로 실행 위치에 따라 동일한 설정이 다른 경로로 확인될 수 있습니다.
* 구성한 경로가 디스크에 없으면 정책에서 제외되고 **메모** 섹션에 기록됩니다. 이렇게 하면 추가한 규칙이 아무런 영향을 주지 않는 것처럼 보일 수 있는 이유를 설명합니다.
* 샌드박싱이 꺼져 `/sandbox policy` 있는 경우 제한 사항이 없으므로 정책을 인쇄하는 대신 이를 알려줍니다.

샌드박싱이 현재 켜 `/sandbox status`져 있는지 여부만 확인하려면 . 이러한 명령에 대한 자세한 내용은 [로컬 샌드박싱 사용](/ko/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)을 참조하세요.

## 정책 사용자 지정

추가 읽기/쓰기 또는 읽기 전용 경로를 부여하고, 경로를 거부하고, 대화 상자 또는 설정 파일에서 다른 파일 시스템 동작을 `/sandbox config` 변경할 수 있습니다. 변경한 후 실행 `/sandbox policy` 하여 결과를 확인합니다. 단계별 지침은 [로컬 샌드박스 설정 구성](/ko/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을 참조하세요.

## 엔터프라이즈 관리 정책

엔터프라이즈 소유 조직을 통해 가져오는 Copilot 경우 관리자는 관리되는 설정을 통해 파일 시스템 정책을 적용할 수 있습니다. 관리되는 설정은 완화할 수 없는 기준 역할을 합니다. 샌드박싱이 필요하고, 거부된 경로를 추가하고, 부여할 수 있는 경로를 제한할 수 있습니다. 관리되는 설정이 `/sandbox config` 적용되는 경우 대화 상자에 잠긴 **(관리형)** 값으로 표시되고 `/sandbox policy` 확인된 정책에 반영됩니다.

단일 원본이 승리하는 대부분의 설정과 달리 샌드박스 정책은 모든 원본에서 한 번에 구성됩니다. 관리되는 설정은 둘 이상의 채널(서버 관리형, MDM 및 파일 기반)을 통해 동시에 도착할 수 있으며, 이러한 설정은 다른 원본을 재정의하는 한 원본이 아닌 **가장 제한적인** 방향으로 서로 결합됩니다. 필수 토글이 유지되고 모든 원본에서 거부된 경로가 추가되고 부여할 수 있는 경로만 좁힐 수 있습니다. 자세한 내용은 [엔터프라이즈 관리 설정](/ko/copilot/reference/enterprise-administrators/enterprise-managed-settings#sandbox)을(를) 참조하세요.

## 추가 읽기

* [클라우드 및 로컬 샌드박스 정보 GitHub Copilot](/ko/copilot/concepts/about-cloud-and-local-sandboxes)
* [로컬 샌드박싱 사용](/ko/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)
* [로컬 샌드박스 설정 구성](/ko/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)