For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme

샌드박스

ChatGPT와 Codex 클라이언트에서 샌드박스가 작동하는 방식

샌드박스는 에이전트가 컴퓨터에 접근할 수 있는 범위를 제한하면서 그 안에서는 자율적으로 작업할 수 있게 합니다. ChatGPT 데스크톱 앱, Codex CLI 또는 IDE 확장 프로그램의 로컬 채팅에서 실행하는 명령어에는 기본적으로 전체 권한이 주어지지 않습니다. 명령어는 샌드박스가 제한하는 환경에서 실행됩니다.

이 환경은 에이전트가 어떤 파일을 수정할 수 있는지, 실행하는 명령어가 네트워크를 사용할 수 있는지 등 에이전트가 스스로 할 수 있는 일의 범위를 정합니다. 이 범위 안에서는 확인을 기다리지 않고 작업을 계속할 수 있습니다. 범위를 벗어나야 할 때는 승인 플로우를 따릅니다.

샌드박스와 승인은 서로 보완하는 두 가지 제어 수단입니다. 샌드박스는 기술적으로 작업 범위를 제한합니다. 승인 정책은 에이전트가 그 범위를 벗어나기 전에 언제 멈추고 승인을 요청해야 하는지 정합니다.

샌드박스의 역할

샌드박스는 기본 제공 파일 작업뿐 아니라 에이전트가 별도 프로세스로 실행하는 명령어에도 적용됩니다. 에이전트가 git, 패키지 관리자, 테스트 실행기 같은 도구를 실행하면 해당 명령어에도 동일한 샌드박스 제한이 적용됩니다.

Codex는 각 운영 체제에 내장된 기능으로 샌드박스 제한을 적용합니다. macOS, Linux, WSL2, 네이티브 Windows에서 구현 방식은 다르지만 모든 클라이언트에서 원리는 같습니다. 에이전트가 작업할 수 있는 범위를 명확하게 정하고, 그 안에서는 일상적인 작업을 자율적으로 수행하게 합니다.

샌드박스가 중요한 이유

샌드박스를 사용하면 반복되는 승인 요청의 부담을 줄일 수 있습니다. 에이전트는 위험이 낮은 명령어를 실행할 때마다 확인을 요청할 필요 없이, 사용자가 이미 승인한 범위 안에서 파일을 읽고 수정하거나 프로젝트에서 일상적으로 사용하는 명령어를 실행할 수 있습니다.

에이전트에 작업을 맡길 때 무엇을 신뢰할 수 있는지도 명확해집니다. 에이전트의 의도에만 의존하지 않아도 됩니다. 샌드박스가 에이전트의 작업 범위를 기술적으로 제한하기 때문입니다. 따라서 에이전트가 언제 멈추고 도움을 요청할지 예측하면서 그 범위 안의 작업은 안심하고 맡길 수 있습니다.

시작하기

기본 권한 모드에서는 샌드박스가 자동으로 적용됩니다.

사전 요구 사항

macOS에서는 내장 Seatbelt 프레임워크를 사용하므로 별도 설정 없이 샌드박스를 사용할 수 있습니다.

Windows에서는 Codex를 PowerShell에서 실행하면 네이티브 Windows 샌드박스를 사용하고, WSL2에서 실행하면 Linux 샌드박스를 사용합니다.

Linux와 WSL2에서는 먼저 패키지 관리자로 bubblewrap을 설치하세요.

Choose an option
sudo apt install bubblewrap

Codex는 bwrap 실행 파일을 PATH에서 검색해 처음 찾은 파일을 사용합니다. 사용할 수 있는 bwrap 실행 파일이 없으면 Codex에 포함된 보조 프로그램을 사용합니다. 이 프로그램이 작동하려면 일반 사용자가 별도 권한 없이 사용자 네임스페이스를 생성할 수 있어야 합니다. bwrap을 제공하는 배포판 패키지를 설치하면 샌드박스를 안정적으로 사용할 수 있습니다.

Codex는 bwrap이 없거나 보조 프로그램이 필요한 사용자 네임스페이스를 생성할 수 없으면 시작할 때 경고를 표시합니다. AppArmor로 네임스페이스 생성을 제한하는 배포판에서는 bwrap용 AppArmor 프로필을 로드하는 것이 좋습니다. 그러면 시스템 전체에서 제한을 해제하지 않고도 bwrap을 계속 사용할 수 있습니다.

Ubuntu의 AppArmor 설정 참고 사항: Ubuntu 25.04에서는 Ubuntu 패키지 저장소에서 bubblewrap을 설치하면 일반적으로 별도의 AppArmor 설정 없이 작동합니다. bwrap-userns-restrict 프로필은 apparmor 패키지에 포함되어 있으며 /etc/apparmor.d/bwrap-userns-restrict에 설치됩니다.

Ubuntu 24.04에서는 bubblewrap을 설치한 후에도 Codex가 필요한 사용자 네임스페이스를 생성할 수 없다는 경고를 표시할 수 있습니다. 다음 명령어로 추가 프로필을 복사하고 로드하세요.

sudo apt update
sudo apt install apparmor-profiles apparmor-utils
sudo install -m 0644 \
  /usr/share/apparmor/extra-profiles/bwrap-userns-restrict \
  /etc/apparmor.d/bwrap-userns-restrict
sudo apparmor_parser -r /etc/apparmor.d/bwrap-userns-restrict

apparmor_parser -r은 재부팅 없이 프로필을 커널에 로드합니다. 다음 명령어로 모든 AppArmor 프로필을 다시 로드할 수도 있습니다.

sudo systemctl reload apparmor.service

해당 프로필을 사용할 수 없거나 프로필을 로드해도 문제가 해결되지 않으면, 다음 명령어로 일반 사용자의 사용자 네임스페이스 생성을 제한하는 AppArmor 설정을 해제할 수 있습니다.

sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

Work Cloud에서 로컬 컴퓨터에 접근하기

Work Cloud에서 로컬 컴퓨터에 접근하는 작업에서는 OpenAI 클라우드가 대화 진행을 조율합니다. 샌드박스 제한은 각 단계가 실행되는 위치에 따라 달라집니다.

  • 클라우드 실행: Work 클라우드 컨테이너에는 기존 Work Cloud 정책이 적용됩니다. 데스크톱 브라우저의 사이트 규칙은 클라우드 브라우저에 자동으로 적용되지 않습니다.
  • 로컬 실행: 연결된 컴퓨터에서 실행되는 단계에는 지원되는 로컬 실행 요구 사항이 적용됩니다.

로컬 접근을 사용하는 Work와 dot에서는 관리형 정책을 활성화하면 공유 클라우드 오케스트레이터에 지원되는 전역 정책이 적용됩니다. Work 클라우드 컨테이너와 dot 클라우드 컴퓨터에는 각각 자체 실행 설정과 요구 사항이 적용됩니다. 각 환경에 어떤 제어가 적용되는지 확인하려면 로컬 실행과 클라우드 실행을 따로 테스트하세요. 한 환경의 정책으로 다른 환경에 대한 접근 권한이 부여되지는 않습니다.

정책 내 우선순위는 높은 순서대로 OS별 환경 재정의 → 모든 OS에 공통인 환경 재정의 → 전역 정책입니다. 우선순위가 낮은 정책이 더 구체적이어도 우선순위가 높은 정책이 적용됩니다. 로컬 실행에서는 MDM 및 기존 관리형 기기 요구 사항이 Agent Security보다 우선하며, Agent Security는 기기의 시스템 요구 사항 파일보다 우선합니다.

필드별 병합 규칙과 런타임 제한은 관리형 설정을 참고하세요. 실제로 적용되는 파일 및 네트워크 제한은 Work 로컬 보안과 Work 클라우드 보안에서 확인하세요.

권한이 작동하는 방식

사용 중인 클라이언트의 권한 설정에서 Codex가 로컬 작업을 처리하는 방식을 변경할 수 있습니다.

승인 설정은 Codex가 작업을 수행하기 전에 언제 멈출지 정하고, 샌드박스는 명령어가 접근할 수 있는 파일과 네트워크 리소스를 제한합니다. 한 번만 승인하거나 세션 동안 승인하는 등 범위를 선택할 수 있다면 작업을 계속하는 데 필요한 최소 범위를 선택하세요. 기본 접근 범위는 프로젝트 단위로 유지하세요. 관련 없는 여러 리포지터리에 걸쳐 접근 권한을 확대하는 대신 별도의 프로젝트나 작업 트리를 사용하세요.

ChatGPT 데스크톱 앱에서는 Composer 아래의 권한 설정을 사용하세요. 구성에 따라 메뉴에 승인 요청, 자동 검토 대상인 승인 요청을 처리하는 대신 승인, 전체 권한, 이름이 지정된 권한 프로필 또는 사용자 지정 권한 프로필이 표시될 수 있습니다.

모드를 선택해 문서 예제를 살펴보세요. 여기서 선택해도 ChatGPT 또는 Codex 권한은 변경되지 않습니다.

How should ChatGPT actions be approved?Learn more

Approve for me

Approve for me keeps the same workspace-write sandbox as Ask for approval, but eligible approval requests are routed through automatic review instead of showing a prompt for manual approval. More details about automatic review.

Sandbox
workspace-write
Approvals policy
on-request
Reviewer
auto_review

기본값 설정하기

매번 동일한 설정으로 시작하려면 config.toml에 기본값을 지정하세요. 설정 기본 사항에서는 설정 파일의 작동 방식을 설명합니다. 설정 레퍼런스에서는 sandbox_mode, approval_policy, approvals_reviewer, sandbox_workspace_write.writable_roots 각 키의 정확한 사양을 확인할 수 있습니다. 이 설정으로 에이전트가 기본적으로 어디까지 자율적으로 작업할지, 어느 디렉터리에 쓸 수 있는지, 언제 멈추고 승인을 요청할지, 검토 대상인 승인 요청을 누가 검토할지 정하세요.

일반적으로 사용하는 샌드박스 모드는 다음과 같습니다.

  • read-only: 에이전트는 파일 내용을 확인할 수 있지만, 승인 없이 파일을 수정하거나 명령어를 실행할 수 없습니다.
  • workspace-write: 에이전트는 파일을 읽고, 워크스페이스 안에서 파일을 수정하거나 일상적인 로컬 명령어를 실행할 수 있습니다. 로컬 작업에서 승인 요청으로 인한 중단을 줄이는 기본 모드입니다.
  • danger-full-access: 에이전트가 샌드박스 제한 없이 실행됩니다. 파일 시스템과 네트워크 접근 제한이 해제되므로 에이전트에 전체 권한을 부여하려는 경우에만 사용하세요.

일반적으로 사용하는 승인 정책은 다음과 같습니다.

  • on-request: 에이전트는 기본적으로 샌드박스 안에서 작업하고, 그 범위를 벗어나야 할 때 승인을 요청합니다.
  • never: 에이전트가 승인을 요청하기 위해 멈추지 않습니다.

Codex와 ChatGPT Work에서는 더 이상 untrusted를 승인 정책으로 선택할 수 없습니다. 기존 설정에서 이 값을 사용한다면 지원이 종료된 untrusted 승인 정책에서 마이그레이션하기를 참고하세요.

대화형 승인을 사용하는 경우 approvals_reviewer로 승인 요청을 검토할 주체도 선택할 수 있습니다.

  • user: 사용자에게 승인 요청을 표시합니다. 기본값입니다.
  • auto_review: 자동 검토 대상인 승인 요청을 검토 에이전트에 전달합니다(자동 검토 참고).

전체 권한을 사용하려면 sandbox_mode = "danger-full-access"와 approval_policy = "never"를 함께 설정하세요. 위험이 더 낮은 로컬 자동화 사전 설정을 사용하려면 sandbox_mode = "workspace-write"와 approval_policy = "on-request"를 함께 설정하거나, 이에 해당하는 CLI 플래그 --sandbox workspace-write --ask-for-approval on-request를 사용하세요. 이후 직접 승인하려면 approvals_reviewer = "user"를 유지하고, 승인 요청을 자동으로 검토하려면 approvals_reviewer = "auto_review"로 설정하세요.

에이전트가 여러 디렉터리에서 작업해야 한다면 쓰기 가능한 루트 디렉터리를 추가하세요. 샌드박스를 해제하지 않고도 에이전트가 수정할 수 있는 범위를 넓힐 수 있습니다. 신뢰 범위를 넓히거나 좁혀야 한다면 일회성 예외에 의존하지 말고 기본 샌드박스 모드와 승인 정책을 조정하세요.

워크플로우에 특정 예외가 필요할 때는 규칙을 사용하세요. 규칙을 사용하면 샌드박스 밖에서 명령어 접두사별로 실행을 허용하거나 승인을 요청하거나 실행을 금지할 수 있습니다. 접근 권한을 전반적으로 확대하는 것보다 이 방식이 적합한 경우가 많습니다. IDE별 설정을 여는 방법은 Codex IDE 확장 프로그램 설정을 참고하세요.

자동 검토 기능이 제공되는 경우에도 샌드박스의 범위는 바뀌지 않습니다. 자동 검토는 샌드박스 경계에서 발생하는 승인 요청을 처리하기 위해 approvals_reviewer로 선택할 수 있는 방식 중 하나입니다. 샌드박스 권한 확대 요청, 차단된 네트워크 접근 요청, 사이드 이펙트가 있어 여전히 승인이 필요한 도구 호출 등이 여기에 해당합니다. 샌드박스 안에서 이미 허용된 작업은 추가 검토 없이 실행됩니다. 검토 에이전트의 수명 주기, 검토를 시작하는 이벤트 유형, 요청이 거부됐을 때의 동작, 세부 설정은 자동 검토를 참고하세요.

플랫폼별 세부 사항은 각 플랫폼 문서에서 확인할 수 있습니다. 네이티브 Windows 환경의 설정, 동작 및 문제 해결 방법은 Windows를 참고하세요. 샌드박스와 승인에 관한 관리자 요구 사항 및 조직 차원의 제한은 에이전트 승인 및 보안을 참고하세요.