# 클라우드 및 로컬 샌드박스에 대하여 GitHub Copilot

클라우드 및 로컬 샌드박스는 로컬 컴퓨터 또는 완전히 격리된 클라우드 환경에서 Copilot 코드, 도구, 파일 시스템 및 네트워크 리소스와 안전하게 상호 작용할 수 있는 격리된 실행 환경을 제공합니다.

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

## Introduction

Copilot 클라우드 및 로컬 샌드박스는 로컬 및 클라우드 모두에서 안전한 샌드박스 환경을 GitHub Copilot CLI구동하는 실행 플랫폼입니다.
Copilot 도구를 실행하고, 명령을 실행하고, 파일을 수정하는 등 사용자를 대신하여 더 많은 작업을 수행할 때 샌드박싱은 에이전트 워크플로를 안전하게 채택하는 데 필요한 격리, 이식성 및 정책 제어를 제공합니다.

샌드박싱은 현재 Copilot CLI 세션에 적용됩니다. 에서 새 세션을 시작할 때 클라우드 샌드박싱을 사용하도록 선택할 수도 있습니다 GitHub Copilot app. 자세한 내용은 [GitHub Copilot 앱에서 에이전트 세션 사용하기](/ko/enterprise-cloud@latest/copilot/how-tos/github-copilot-app/agent-sessions#starting-a-session)을(를) 참조하세요.

샌드박싱을 사용하면 실행할 위치를 Copilot 선택할 수 있습니다.

* **로컬 샌드박싱**: 사용자 고유의 컴퓨터에서 안전하게 실행 Copilot 합니다. 실행되는 명령은 Copilot 파일 시스템, 네트워크 및 시스템 기능에 대한 액세스를 제한합니다. 추가 비용 없이 로컬 샌드박싱을 사용할 수 있습니다.
* **클라우드 샌드박싱**: 완전히 격리된 임시 Linux 환경 내에서 전체 Copilot CLI 세션을 원격으로 실행합니다 GitHub. 클라우드 샌드박싱은 사용량에 따라 청구됩니다.

## 로컬 샌드박싱

> \[!NOTE]
> 로컬 샌드박싱은 현재 실험적 기능입니다. 이 기능을 사용하려면 Copilot CLI 명령줄 옵션으로 `‑‑experimental`을 시작하거나, 세션 중에 `/experimental on`를 입력하세요.

로컬 샌드박싱을 사용하면 Copilot 파일 시스템, 네트워크 연결 및 시스템 기능에 대한 액세스가 제한되어 컴퓨터에서 직접 샌드박스로 처리된 환경에서 실행할 수 있습니다.

로컬 샌드박싱은 기본적으로 꺼져 있습니다. 이 명령을 사용하도록 설정할 때까지 실행되는 셸 명령은 Copilot 사용자 계정과 동일한 액세스 권한으로 컴퓨터에서 직접 실행됩니다. 사용자가 할 수 있는 모든 위치에서 읽고, 쓰고, 삭제하고, 컴퓨터가 연결할 수 있는 네트워크에 도달하고, 제한 없이 자격 증명을 사용할 수 있습니다. 로컬 샌드박싱을 사용하도록 설정하면 제어하는 정책에 대한 액세스가 제한됩니다.

### 로컬 샌드박싱 작동 방식

로컬 샌드박싱은 각 운영 체제에서 사용할 수 있는 격리 메커니즘에 공통 인터페이스를 제공하는 플랫폼 간 기술인 Microsoft mXC(eXecution Container)를 통해 구동됩니다.
Copilot CLI 는 적용하려는 샌드박스 정책(읽을 수 있거나 쓰기 가능한 경로, 네트워크 액세스 허용 여부 등)을 선언하고 MXC는 운영 체제에 적절한 격리 백 엔드를 사용하여 해당 정책을 적용합니다.

격리 기술은 전체 하이퍼바이저 또는 컨테이너와 같은 강력한 격리에서 OS 수준 프로세스 및 파일 시스템 포함과 같은 더 가벼운 격리에 이르기까지 스펙트럼에 존재합니다. 로컬 샌드박싱은 현재 이 스펙트럼의 더 가벼운 끝에 위치합니다. 프로세스에서 네트워크에서 읽고 쓰고 연결할 수 있는 것을 제한하지만 별도의 가상 머신 또는 컨테이너 내에서 명령을 실행하지는 않습니다. 이 수준의 격리가 보안 요구 사항을 충족하는지 여부를 평가하려면 구현 세부 정보는 [microsoft/mxc 리포지토리](https://github.com/microsoft/mxc) 를 참조하세요.

자세한 내용은 [에서 로컬 샌드박싱에 대한 파일 시스템 정책 이해 GitHub Copilot CLI](/ko/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/understanding-local-sandboxing)을(를) 참조하세요.

### 로컬 샌드박스 활성화

세션 내에서 로컬 샌드박싱을 사용하도록 설정하려면 다음을 Copilot CLI 실행합니다.

```shell copy
/sandbox enable
```

로컬 샌드박싱을 사용하도록 설정한 후 에이전트가 사용자 대신 실행되는 명령 및 도구(셸 명령, 파일 검색 및 기본적으로 CLI가 시작하는 MCP 및 언어) 서버는 운영 체제 수준 샌드박스 내에서 실행되어 시스템에 대한 액세스를 제한합니다. CLI는 프로그래밍 방식과 대화형 사용 모두에 대해, `/sandbox disable`를 실행하여 비활성화할 때까지 이후에도 CLI를 사용할 때마다 계속 로컬 샌드박싱을 사용합니다. 엔터프라이즈 관리 설정에 샌드박싱, 일반 설정, 시작 옵션이 필요하고 `/sandbox disable` 해제할 수 없는 경우 유효 정책이 샌드박스 바이패스를 허용하는 경우 활성 바이패스 권한 프롬프트에서 현재 세션의 나머지 부분에 대해 샌드박싱을 명시적으로 사용하지 않도록 설정할 수 있습니다.

CLI의 기본 제공 파일 도구(`sed` 같은 셸 명령이 아니라 CLI 자체에 포함된 명령)는 CLI 프로세스 내에서 실행됩니다. CLI 자체는 샌드박스가 아니므로 운영 체제 샌드박스는 이러한 도구가 수행하는 파일 작업을 볼 수 없으며 이를 제한할 수 없습니다. 대신, 샌드박스 정책 자체를 확인하고 구성된 설정을 최대한 활용하기 위해 기본 제공 도구가 코딩됩니다.

자세한 내용은 [로컬 샌드박싱 사용](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)을(를) 참조하세요.

### 로컬 샌드박싱 구성

기본 로컬 샌드박싱 동작을 사용하거나 액세스할 수 있는 항목을 Copilot 수정할 수 있습니다. 로컬 샌드박싱을 구성할 때 여러 차원의 액세스를 제어할 수 있습니다.

* **파일 시스템**: 특정 경로에 대한 읽기 전용 또는 읽기/쓰기 액세스 권한을 부여하거나 경로를 거부합니다.
* **네트워크**: 아웃바운드 인터넷 액세스 및 로컬 네트워크 액세스를 독립적으로 허용하거나 차단합니다.
* **자격 증명**: 샌드박스 내에서 Git 및 GitHub CLI (`gh`) 자격 증명을 사용할 수 있는지 여부를 선택합니다.
* **하위 프로세스**: 로컬 MCP 서버 및 언어 서버도 샌드박스 내에서 실행되는지 여부를 선택합니다. 원격 MCP 서버는 샌드박스가 지정되지 않습니다.
* **키 집합(macOS)**: 샌드박스 내에서 시스템 키 집합에 연결할 수 있는지 여부를 선택합니다.
* **명령별 예외**: 더 광범위한 액세스가 필요한 경우 개별 명령이 샌드박스 외부에서 실행되지 않도록 허용하거나 방지합니다.

자세한 내용은 [로컬 샌드박스 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)을(를) 참조하세요.

### 교차 플랫폼 지원

로컬 샌드박싱은 macOS, Linux 및 최근 Windows 11 빌드에서 사용할 수 있습니다. 각 운영 체제는 서로 다른 격리 백 엔드를 사용하므로 요구 사항은 서로 다릅니다.

* **macOS**는 Seatbelt 백엔드를 사용합니다.
  Copilot CLI 는 프로세스 범위 프로필을 각 샌드박스 명령에 적용합니다. macOS 15(Sequoia) 이상을 사용합니다.
  Copilot CLI 는 이전 macOS를 차단하지 않지만 백 엔드는 테스트되지 않습니다.
* **Linux** 는 bubblewrap 백 엔드를 사용합니다. bubblewrap 0.5.0 이상을 설치하고 `bwrap`이(가) `PATH`에 포함되어 있는지 확인하세요.
  `bwrap`에서 사용 중인 `/sandbox`의 버전이 너무 오래되었다고 보고하면 패키지를 업그레이드하세요.
* **Windows** ProcessContainer 백 엔드의 BaseContainer 계층을 사용합니다.
  Copilot CLI 는 AppContainer 대체 계층을 사용하지 않습니다. Windows 빌드에서 BaseContainer Copilot CLI 를 제공할 수 없는 경우 샌드박싱이 지원되지 않는다고 보고합니다. 지원되는 Windows 버전을 찾으려면 [Copilot 샌드박싱에 대한 Windows OS 지원을 참조하세요](https://aka.ms/ghcp-sandbox-os-support).

#### 프록시 지원

샌드박스 프록시는 각 운영 체제에서 다르게 작동합니다.

* **macOS**: Copilot CLI Seatbelt에 프록시를 제공하지 않습니다. 대신 샌드박스가 지정된 환경에서 설정합니다`HTTP_PROXY``HTTPS_PROXY``ALL_PROXY`. 이러한 변수를 준수하는 프로그램만 프록시를 사용합니다. 이를 무시하는 프로그램은 직접 연결됩니다.
* **Linux**: bubblewrap이 프록시를 적용합니다. 샌드박스는 프라이빗 네트워크 네임스페이스를 가져오고 프록시 엔드포인트만 허용됩니다. 이 모드에는 더 많은 요구 사항이 있습니다. 필요한 것은 다음과 같습니다.

  * `slirp4netns` 을 선택합니다 `PATH`.
  * util-linux 2.35 이상부터 `--map-current-user` 및 `--keep-caps`를 지원하는 `unshare` 및 `nsenter`.
  * `iptables` 및 `ip6tables`.
    `nf_tables` 백엔드를 사용합니다. 레거시 백엔드도 동작하지만, `/run/xtables.lock`에 쓸 수 있는 경우에만 가능합니다.

  Linux에는 두 가지 제한이 더 적용됩니다. IPv6만 연결할 수 있는 프록시를 거부하므로 프록시에는 IPv4 주소 Copilot CLI 가 있어야 합니다. 프록시 URL은 자격 증명을 포함하지 않아야 하므로 프록시 자체에 자격 증명을 제공합니다.

  또한 Linux에서 bubblewrap은 아웃바운드 액세스와 독립적으로 로컬 네트워크 액세스를 제어할 수 없습니다. 따라서 로컬 네트워크 설정에는 별도의 효과가 없습니다.
* **Windows**: 프록시를 사용할 수 없습니다. Windows 거부된 경로도 사용하지 마세요.
  Copilot CLI 에서는 이러한 설정을 적용할 수 없으며 샌드박스 명령이 오류와 함께 실패합니다.

#### 호스트가 로컬 샌드박싱을 지원하지 않는 경우

Copilot CLI 는 세션에 대한 샌드박스를 해제하고 알림을 표시합니다. 셸 명령 및 샌드박스 서비스는 샌드박스 없이 실행되며 `sandbox.enabled` 설정은 변경되지 않습니다. 엔터프라이즈에서 디바이스 관리 설정을 통해 샌드박싱을 적용하는 경우 세션이 닫힌 대신 실패합니다. 샌드박스 명령이 실행되지 않습니다.

### 엔터프라이즈 정책 적용

엔터프라이즈는 로컬 샌드박싱을 요구하고 서버 관리, MDM 관리 또는 파일 기반 관리 설정을 통해 해당 구성을 적용할 수 있습니다.
[엔터프라이즈 관리 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-agents/configure-enterprise-managed-settings)을(를) 참조하세요.

## 클라우드 샌드박싱

클라우드 샌드박싱을 사용하면 Copilot CLI에서 호스팅되는 완전히 격리된 일시적인 Linux 환경 내에서 GitHub 세션을 실행할 수 있습니다. 각 클라우드 샌드박스 세션은 로컬 환경 및 다른 세션에서 격리됩니다.

클라우드 샌드박싱은 id, 정책 및 청구 계층을 제공하는 GitHub Azure Container Apps 샌드박스를 기반으로 합니다.

> \[!NOTE]
> 조직을 통해 Copilot를 사용하는 경우, 클라우드 샌드박싱에 대한 액세스는 조직 또는 엔터프라이즈 설정에서 해당 기능이 사용 설정되어 있는지에 따라 달라지며, 기본적으로는 비활성화되어 있습니다. 자세한 내용은 [조직 또는 엔터프라이즈에 클라우드 샌드박스 사용 또는 사용 안 함](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-sandboxes-for-your-organization)을(를) 참조하세요.

### 클라우드 샌드박스 세션 시작

클라우드 지원 세션을 시작하려면 다음 명령을 실행합니다.

```shell copy
copilot ‑‑cloud ‑‑experimental
```

> \[!NOTE]
> 클라우드 샌드박싱은 현재 실험적 기능입니다. 이를 사용하려면 Copilot CLI에 대해 실험적 기능이 활성화되어 있어야 합니다. 예를 들어, 위에 표시된 대로 CLI 세션을 시작할 때 `‑‑experimental` 명령줄 옵션을 사용하면 됩니다.

`‑‑cloud` 명령줄 옵션은 클라우드 샌드박스 내에서 대화형 Copilot CLI 세션을 시작합니다. 로컬 세션에서 하듯이 Copilot에 작업 수행, 셸 명령 실행, 코드 반복 개선을 지시할 수 있습니다. 실행되는 명령은 Copilot 로컬 컴퓨터가 아닌 클라우드 환경에서 실행됩니다.

`copilot ‑‑cloud`을 실행하면 클라우드 샌드박스에서 단일 Copilot CLI 세션이 시작됩니다. 이후 Copilot 세션에는 영향을 주지 않습니다. 클라우드 샌드박스에서 새 세션을 실행할 때마다 이 옵션을 사용하여 CLI를 `‑‑cloud` 시작해야 합니다.

> \[!NOTE]
> 클라우드 샌드박싱은 대화형 Copilot CLI 세션에만 사용할 수 있습니다. 클라우드 샌드박스에서는 CLI를 프로그래밍 방식으로 실행할 수 없습니다. 즉, `‑‑cloud` 옵션을 `-p` 또는 `-i` 옵션과 함께 사용할 수 없습니다.

### 디바이스에서 세션 계속

클라우드 샌드박스 세션은 GitHub호스팅 인프라에서 실행되므로 세션이 처음 시작된 위치와 관계없이 어느 기기에서나 Copilot 세션을 이어서 사용할 수 있습니다. 이렇게 하면 파일을 복사하거나 종속성을 다시 설치할 필요 없이 보다 유연한 워크플로를 사용할 수 있습니다.

### 계산 집약적 워크플로 오프로드

로컬 리소스를 사용하지 않고 클라우드에서 여러 Copilot 작업을 병렬로 실행할 수 있습니다. 이렇게 하면 에이전트 기반 작업의 크기를 조정하는 동안 로컬 환경이 가볍고 응답성이 유지됩니다.

### 통합 거버넌스

클라우드 샌드박스 정책은 정책과 동일한 구성 Copilot cloud agent 을 공유하며, 추가 설정 없이 기존 보안 제어를 클라우드 샌드박스 실행으로 확장합니다.

### 세션 수명 주기

클라우드 샌드박스 세션에는 세 가지 주요 상태가 있습니다.

* **활성**: 세션이 실행 중이며, Copilot CLI에서 상호 작용하고 있습니다.
* **중지됨**: 세션이 현재 실행되고 있지 않지만 해당 상태가 저장됩니다. 다시 시작하면 파일, 환경 변수 및 진행 중인 작업이 복원됩니다.
* **삭제됨**: 세션 및 저장된 상태가 제거되고 복구할 수 없습니다.

세션을 중지하면 클라우드 샌드박스는 나중에 중단한 위치를 선택할 수 있도록 해당 상태의 스냅샷을 만듭니다. 세션을 삭제하면 실행 중인 환경과 스냅샷이 모두 제거됩니다.

## 인증 및 액세스

샌드박싱은 기존 Copilot CLI 인증을 사용합니다.
Copilot CLI에 로그인하고 Copilot에 액세스할 수 있으면 샌드박싱을 사용할 수 있습니다. 별도의 클라우드 공급자를 구성하거나, API 키를 관리하거나, 인프라를 설정할 필요가 없습니다.

조직 또는 엔터프라이즈 소유자는 구성원이 **클라우드 샌드박스** 를 사용하려면 먼저 조직 또는 엔터프라이즈 설정에서 클라우드 샌드박스 액세스 정책을 사용하도록 설정해야 합니다.

조직의 구성원에 대해 클라우드 샌드박스를 사용하거나 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 [조직 또는 엔터프라이즈에 클라우드 샌드박스 사용 또는 사용 안 함](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/enabling-or-disabling-cloud-sandboxes-for-your-organization)을 참조하세요.

## 결제

추가 비용 없이 표준 GitHub Copilot 좌석에 로컬 샌드박싱이 포함되어 있습니다.

클라우드 샌드박싱은 사용량에 따라 청구됩니다.
GitHub 3미터에 걸쳐 클라우드 샌드박스 사용량을 측정합니다.

| Meter   | Description                       | 단위    | 가격(USD)   |
| ------- | --------------------------------- | ----- | --------- |
| Compute | 클라우드 샌드박스 세션이 실행되는 시간입니다.         | 컴퓨팅 초 | $0.000024 |
| 기억      | 실행되는 동안 클라우드 샌드박스 세션에 할당된 메모리입니다. | GiB 초 | $0.000003 |
| Storage | 중지된 세션에 대한 스냅샷 스토리지입니다.           | GiB 월 | 0.005달러   |

클라우드 샌드박스 사용량을 측정하고 청구하는 방법에 대한 자세한 내용은 [GitHub Copilot에 대한 클라우드 및 로컬 샌드박스 청구](/ko/enterprise-cloud@latest/billing/concepts/product-billing/cloud-and-local-sandboxes)을 참조하세요.

## 추가 읽기

* [GitHub Copilot CLI 정보](/ko/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-copilot-cli)
* [로컬 샌드박싱 사용](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/using-local-sandboxing)
* [로컬 샌드박스 설정 구성](/ko/enterprise-cloud@latest/copilot/how-tos/cloud-and-local-sandboxes/configuring-local-sandbox-settings)