{"meta":{"title":"에서 로컬 샌드박싱에 대한 파일 시스템 정책 이해 GitHub Copilot CLI","intro":"로컬 샌드박싱을 사용하도록 설정 Copilot CLI 하면 읽고 쓸 수 있는 파일 및 디렉터리를 제어하는 파일 시스템 정책에 따라 각 샌드박스 처리 또는 작업을 실행합니다. 해당 정책을 빌드하는 방법과 해당 정책이 부여하는 액세스 권한을 확인하는 방법을 알아봅니다.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ko/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/ko/enterprise-cloud@latest/copilot/concepts","title":"개념"},{"href":"/ko/enterprise-cloud@latest/copilot/concepts/agents","title":"배포"},{"href":"/ko/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli","title":"Copilot CLI"},{"href":"/ko/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/understanding-local-sandboxing","title":"로컬 샌드박싱 이해"}],"documentType":"article"},"body":"# 에서 로컬 샌드박싱에 대한 파일 시스템 정책 이해 GitHub Copilot CLI\n\n로컬 샌드박싱을 사용하도록 설정 Copilot CLI 하면 읽고 쓸 수 있는 파일 및 디렉터리를 제어하는 파일 시스템 정책에 따라 각 샌드박스 처리 또는 작업을 실행합니다. 해당 정책을 빌드하는 방법과 해당 정책이 부여하는 액세스 권한을 확인하는 방법을 알아봅니다.\n\n> \\[!NOTE]\n> 로컬 샌드박스가 GitHub Copilot 있으며 공개 미리 보기 변경될 수 있습니다.\n\n> \\[!IMPORTANT]\n> Windows 로컬 샌드박싱에는 Windows 참가자 빌드가 필요합니다.\n\n## Introduction\n\n로컬 샌드박싱을 Copilot CLI 사용하도록 설정하면 운영 체제 샌드박스 내에서 사용자 대신 호출하는 명령을 실행합니다. 샌드박스는 샌드박스 프로세스 또는 작업에서 읽을 수 있는 경로, 쓸 수 있는 경로 및 전혀 건드리지 못하는 경로를 결정하는 규칙 집합인 **파일 시스템 정책을** 적용합니다.\n\n이 정책의 대부분은 자동으로 어셈블되므로 일상적인 명령이 설정 없이 계속 작동합니다. 이 문서에서는 정책에 도착하는 방법과 Copilot 특정 디렉터리에서 부여하는 액세스를 확인하는 방법을 설명합니다.\n\n로컬 샌드박싱을 켜고 끄는 방법을 포함하여 로컬 샌드박싱에 대한 개요는 [AUTOTITLE 및 AUTOTITLE](/ko/enterprise-cloud@latest/copilot/concepts/about-cloud-and-local-sandboxes) 을 참조 [하세요](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing).\n\n## 정책이 적용되는 대상\n\n파일 시스템 정책은 사용자 대신 수행하는 작업을 Copilot 다루지만 작업 종류에 따라 다른 방식으로 적용됩니다.\n\n* **셸 명령 및 기본 제공 검색** 은 샌드박스 자식 프로세스로 실행되므로 운영 체제에서 정책을 직접 적용합니다. 예를 들어 도구 및 `glob` 도구는 `grep` 샌드박스가 있는 자식 프로세스로 ripgrep를 실행합니다.\n* **로컬 MCP 및 LSP(언어 서버 프로세스)** 도 샌드박스 내에서 실행할 수 있으므로 운영 체제에서도 정책을 적용합니다.\n* **기본 제공 파일 읽기 및 파일 편집 도구** 는 샌드박스가 있는 자식 프로세스가 아닌 자체의 Copilot CLI 일부로 실행됩니다. 파일을 읽거나 쓰기 전에 동일한 파일 시스템 정책을 확인하지만 운영 체제 샌드박스에서 이러한 작업을 볼 수 없으므로 확인은 운영 체제에서 적용하는 것이 아니라 소프트웨어 전용 보호 장치입니다.\n* **원격 MCP 서버** 는 컴퓨터 외부에서 실행되므로 샌드박스에 대한 로컬 자식 프로세스가 없으며 파일 시스템 정책이 이를 제한하지 않습니다.\n* **스바겐트는** 직접 행동하지 않습니다. 다른 도구를 오케스트레이션합니다. 정책이 적용되는지 여부와 방법은 스바겐트가 호출하는 도구에 따라 달라집니다.\n\n따라서 샌드박스 **처리 프로세스** 는 운영 체제에 의해 제한되는 반면, In-Process **작업은** 소프트웨어에서 동일한 정책을 적용하므로 이 문서에서는 명령만이 아닌 샌드박스 처리 또는 작업을 참조합니다.\n\n## 권한 수준\n\n샌드박스는 **기본적으로 거부**됩니다. 경로가 명시적으로 부여되지 않는 한 명령은 이를 사용할 수 없습니다. 정책의 모든 경로에는 다음 세 가지 권한 수준 중 하나가 있습니다.\n\n* **읽기/쓰기** - 이 명령은 이 경로에서 파일을 읽고 수정할 수 있습니다.\n* **읽기 전용 -** 명령은 이 경로에서 파일을 읽을 수 있지만 변경할 수는 없습니다.\n* **거부됨** - 이 명령은 더 넓은 규칙이 허용하지 않더라도 이 경로에서 읽거나 쓸 수 없습니다.\n\n권한이 부여되지 않는 한 액세스가 거부되므로 프로젝트 파일, Copilot 실행 도구 및 임시 디렉터리와 같은 지원 위치 등 합법적으로 필요한 모든 것을 명령에 부여해야 합니다.\n\n> \\[!NOTE]\n> 이러한 권한 수준은 모든 샌드박스 프로세스 또는 작업에 적용되지만 다르게 적용됩니다. 샌드박스 자식 프로세스의 경우 운영 체제에서 직접 적용하는 반면 CLI의 기본 제공 파일 읽기 및 파일 편집 도구는 운영 체제 백스톱 없이 소프트웨어에서 동일한 수준을 확인합니다.\n\n## 정책 빌드 방법\n\n샌드박스가 적용된 각 프로세스가 시작되기 전에 현재 작업 디렉터리, Copilot CLI 환경, 설정 및 자동 부여를 사용하여 해당 프로세스에 대한 효과적인 정책을 확인합니다. 이렇게 하면 프로세스가 필요한 액세스로만 제한되며 이러한 공통 위치를 직접 관리할 필요가 없습니다.\n\n### 작업 디렉터리\n\n기본적으로 로컬 샌드박싱에 대한 파일 시스템 설정에서 **작업 디렉터리 포함** 을 사용하도록 설정하면 현재 작업 디렉터리에 읽기/쓰기 권한이 부여됩니다. Git 리포지토리 Copilot 에서 연결된 Git 권한도 추가합니다. 이 설정을 해제하면 모든 자동 부여가 표시되지 않으므로 필요한 프로젝트 및 Git 경로에 대한 허용 규칙을 수동으로 추가해야 합니다.\n[로컬 샌드박스 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을(를) 참조하세요.\n\n> \\[!NOTE]\n> 엔터프라이즈 소유 조직에서 가져오는 Copilot 경우 관리자는 **작업 디렉터리 포함** 설정을 해제하고 잠글 수 있으므로 다시 설정할 수 없습니다.\n> [엔터프라이즈 관리 설정](/ko/enterprise-cloud@latest/copilot/reference/enterprise-administrators/enterprise-managed-settings#sandbox)을(를) 참조하세요.\n\n### PATH의 도구\n\n같은 `python``git`프로그램을 실행하려면 샌드박스에서 프로그램이 있는 디렉터리를 명령에 표시하도록 해야 합니다. 환경 변수는 `PATH` 이러한 디렉터리를 나열하고, 관련 도구 변수(예`CARGO_HOME``GOPATH``PYTHONPATH`: , 및Copilot)에서 명명된 디렉터리와 함께 **읽기 전용** 액세스 권한을 부여합니다. 읽기 전용은 외부 도구에 적합한 수준입니다. 명령을 실행 `git`해야 하며 수정하지 않습니다. 샌드박스에서 `PATH` 검사하는 도구 체인 환경 변수 및 도구 체인 환경 변수의 전체 목록과 각 변수가 해석되는 방법은 [GitHub Copilot CLI 명령 참조](/ko/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-command-reference#sandbox-tool-directory-grants)을 참조하세요.\n\n### 시스템 및 프로필 위치\n\n표준 시스템 위치 및 사용자 프로필(홈) 디렉터리에는 읽기 전용이 부여되므로 명령은 구성 파일 및 공유 라이브러리를 변경할 수 없도록 읽을 수 있습니다.\n\n### 패키지 관리자 캐시\n\n샌드박스 Copilot 내에서 설치 및 빌드가 작동할 수 있도록 하려면 일반적인 패키지 관리자 및 도구 체인에서 사용하는 캐시 및 레지스트리에 대한 액세스 권한도 부여합니다. 레지스트리 및 도구 체인의 경우 읽기 전용이며 빌드 캐시에 대한 읽기/쓰기가 가능합니다.\n`/sandbox policy` 보고서에서는 **개발 도구 액세스**로 표시됩니다.\n\n### Git 리포지토리\n\nGit 리포지 Copilot 토리의 하위 디렉터리에서 작업하는 경우 명령이 전체 프로젝트를 볼 수 있도록 전체 리포지토리에 **대한 읽기** 권한을 부여하고 현재 작업 디렉터리 및 리포지토리의 Git 메타데이터(`.git`해당 디렉터리)에 **대한 쓰기**를 제한합니다. 이렇게 하면 명령이 리포지토리 전체에서 읽을 수 있지만 작업 중인 위치에 초점을 맞춘 변경 내용이 유지됩니다.\n\n읽기 액세스는 전체 리포지토리에 걸쳐 있으므로 샌드박스가 적용된 명령은 프로젝트의 다른 곳에 저장된 중요한 항목을 포함하여 현재 하위 디렉터리 외부의 파일을 읽을 수 있습니다. 특정 경로가 도달할 수 없도록 하려면 거부 규칙을 추가할 수 있습니다.\n[로컬 샌드박스 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을(를) 참조하세요.\n\n## 액세스 규칙이 겹치는 경우\n\n여러 위치를 부여하고 고유한 위치를 추가할 수 있으므로 Copilot 규칙이 겹칠 수 있습니다. 이렇게 하면 **더 구체적인 경로가 우선합니다**. 예를 들어 쓰기 가능하지만 읽기 전용 `/project``/project/secrets`으로 표시하는 `/project/secrets` 경우 `/project` . 중요한 하위 폴더를 보호하는 유용한 방법입니다.\n\n편의 부여가 방해가 될 때 겹침도 확인됩니다. 로컬 가상 환경(`.venv`)이 표시되는 Python 프로젝트를 고려합니다`PATH`. 해당 디렉터리를 일반 읽기 전용 도구 위치로 처리하면 쓰기 가능한 프로젝트 내에 있더라도 읽기 전용이 되며, 환경을 업데이트하려고 할 때와 같은 `pip install` 명령이 실패할 수 있습니다.\nCopilot 는 이를 해결합니다. 자동으로 추가된 권한 부여(예: 도구 디렉터리 `PATH`)는 이미 적용되는 더 광범위한 읽기/쓰기 권한 부여를 제공합니다. 따라서 프로젝트-로컬 `.venv``node_modules/.bin`또는 유사한 디렉터리가 작업 영역의 일부로 쓰기 가능한 상태로 유지됩니다.\n\n**구성하는 규칙은** 항상 유지됩니다. 경로를 읽기 전용으로 표시하거나 거부하면 동일한 경로가 검색되고 자동으로 부여되는 경우에도 해당 결정이 적용됩니다. 이렇게 하면 샌드박스 명령이 비밀을 읽을 수 없도록 파일을 거부하는 `.env` 등 중요한 위치를 안전하게 보호할 수 있습니다.\n\n## 현재 정책에서 허용하는 내용 확인\n\n정책은 각 디렉터리 및 명령에 대해 어셈블되므로 액세스 권한을 확인하는 가장 간단한 방법은 요청하는 Copilot CLI것입니다. 세션에서 다음을 입력합니다.\n\n```shell copy\n/sandbox policy\n```\n\nCopilot 는 현재 디렉터리에 대한 **유효** 정책을 출력합니다. 여기서 시작된 명령이 실제로 수신하는 읽기/쓰기, 읽기 전용 및 거부된 경로와 함께 네트워크 액세스 및 개발 도구 액세스가 적용됩니다. 자동 권한 부여 및 사용자 고유의 설정이 결합되고 저장된 설정의 복사본뿐만 아니라 겹침이 해결된 후에 해결된 결과입니다.\n\n보고서를 읽을 때 유의해야 할 몇 가지 사항은 다음과 같습니다.\n\n* **현재 디렉터리를 반영합니다**. 권한 부여는 디렉터리별로 검색되므로 실행 위치에 따라 동일한 설정이 다른 경로로 확인될 수 있습니다.\n* 구성한 경로가 디스크에 없으면 정책에서 제외되고 **메모** 섹션에 기록됩니다. 이렇게 하면 추가한 규칙이 아무런 영향을 주지 않는 것처럼 보일 수 있는 이유를 설명합니다.\n* 샌드박싱이 꺼져 `/sandbox policy` 있는 경우 제한 사항이 없으므로 정책을 인쇄하는 대신 이를 알려줍니다.\n\n샌드박싱이 현재 켜 `/sandbox status`져 있는지 여부만 확인하려면 . 이러한 명령에 대한 자세한 내용은 [로컬 샌드박싱 사용](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)을 참조하세요.\n\n## 정책 사용자 지정\n\n추가 읽기/쓰기 또는 읽기 전용 경로를 부여하고, 경로를 거부하고, 대화 상자 또는 설정 파일에서 다른 파일 시스템 동작을 `/sandbox config` 변경할 수 있습니다. 변경한 후 실행 `/sandbox policy` 하여 결과를 확인합니다. 단계별 지침은 [로컬 샌드박스 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을 참조하세요.\n\n## 엔터프라이즈 관리 정책\n\n엔터프라이즈 소유 조직을 통해 가져오는 Copilot 경우 관리자는 관리되는 설정을 통해 파일 시스템 정책을 적용할 수 있습니다. 관리되는 설정은 완화할 수 없는 기준 역할을 합니다. 샌드박싱이 필요하고, 거부된 경로를 추가하고, 부여할 수 있는 경로를 제한할 수 있습니다. 관리되는 설정이 `/sandbox config` 적용되는 경우 대화 상자에 잠긴 **(관리형)** 값으로 표시되고 `/sandbox policy` 확인된 정책에 반영됩니다.\n\n단일 원본이 승리하는 대부분의 설정과 달리 샌드박스 정책은 모든 원본에서 한 번에 구성됩니다. 관리되는 설정은 둘 이상의 채널(서버 관리형, MDM 및 파일 기반)을 통해 동시에 도착할 수 있으며, 이러한 설정은 다른 원본을 재정의하는 한 원본이 아닌 **가장 제한적인** 방향으로 서로 결합됩니다. 필수 토글이 유지되고 모든 원본에서 거부된 경로가 추가되고 부여할 수 있는 경로만 좁힐 수 있습니다. 자세한 내용은 [엔터프라이즈 관리 설정](/ko/enterprise-cloud@latest/copilot/reference/enterprise-administrators/enterprise-managed-settings#sandbox)을(를) 참조하세요.\n\n## 추가 읽기\n\n* [클라우드 및 로컬 샌드박스 정보 GitHub Copilot](/ko/enterprise-cloud@latest/copilot/concepts/about-cloud-and-local-sandboxes)\n* [로컬 샌드박싱 사용](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)\n* [로컬 샌드박스 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)"}