한국어

Windows 샌드박스

Windows에서 네이티브 Codex 샌드박스 구성 및 문제 해결

Windows에서 네이티브 ChatGPT 데스크톱 앱, CLI 또는 IDE 확장 프로그램으로 Codex를 사용하세요.

Windows용 ChatGPT 데스크톱 앱은 병렬 채팅, worktree, 예약 작업, Git 기능, 내장 브라우저, 파일 미리 보기, 플러그인, 스킬과 같은 핵심 워크플로를 지원합니다.

이 앱은 WSL이나 가상 머신 없이 Windows 샌드박스를 사용하여 PowerShell에서 네이티브로 실행할 수 있습니다. 따라서 파일 시스템 및 네트워크 권한을 제한하면서도 Windows 네이티브 워크플로에서 Codex를 사용할 수 있습니다.

메시지 작성기 위에 표시된 ChatGPT 데스크톱 앱의 Windows 샌드박스 설정 프롬프트

Windows에서 ChatGPT 데스크톱 앱 사용하기: 네이티브 Windows 앱 하나에서 여러 프로젝트를 오가며 작업하고, 병렬 채팅을 실행하고, 결과를 검토하세요.

네이티브 Windows 샌드박스에는 두 가지 모드가 있습니다.

  • Windows에서 더 강력한 elevated 샌드박스로 네이티브 실행,
  • Windows에서 대체용 unelevated 샌드박스로 네이티브 실행.

Windows 샌드박스 구성

Windows에서 Codex를 네이티브로 실행하면 에이전트 모드는 Windows 샌드박스를 사용하여 작업 폴더 외부에 파일을 쓰지 못하게 하고, 명시적인 승인 없이는 네트워크에 액세스하지 못하게 합니다.

네이티브 Windows 샌드박스는 config.toml에서 구성할 수 있는 두 가지 모드를 지원합니다.

[windows]
sandbox = "elevated" # or "unelevated"

elevated은 권장되는 네이티브 Windows 샌드박스입니다. 전용 저권한 샌드박스 사용자, 파일 시스템 권한 경계, 방화벽 규칙 및 샌드박스에서 실행되는 명령에 필요한 로컬 정책 변경 사항을 사용합니다.

unelevated은 대체용 네이티브 Windows 샌드박스입니다. 현재 사용자를 기반으로 생성된 제한된 Windows 토큰으로 명령을 실행하고, ACL 기반 파일 시스템 경계를 적용하며, 전용 오프라인 사용자 방화벽 규칙 대신 환경 수준의 오프라인 제어를 사용합니다. elevated보다 보호 수준이 낮지만, 로컬 또는 엔터프라이즈 정책으로 인해 관리자가 승인하는 설정이 차단된 경우에도 유용합니다.

두 모드를 모두 사용할 수 있다면 elevated을 사용하세요. 기본 네이티브 샌드박스가 현재 환경에서 작동하지 않는다면 설정 문제를 해결하는 동안 unelevated을 대체 수단으로 사용하세요.

엔터프라이즈 관리자는 requirements.toml을 통해 Codex에서 사용할 수 있는 네이티브 샌드박스 구현을 제한할 수 있습니다.

[windows]
allowed_sandbox_implementations = ["elevated"]

이 예에서는 elevated 샌드박스를 필수로 지정하고 사용자가 unelevated으로 대체하지 못하게 합니다. 어느 구현이든 허용하려면 두 값을 모두 포함하세요. 모드를 선택하지 않으면 Codex는 elevated을 우선 사용합니다. 지원되는 값은 requirements.toml 참조 문서에서 확인하세요.

기본적으로 두 샌드박스 모드는 더 강력한 UI 격리를 위해 비공개 데스크톱도 사용합니다. 호환성을 위해 이전 Winsta0\\Default 동작이 필요한 경우에만 windows.sandbox_private_desktop = false을 설정하세요.

샌드박스 권한

Windows 버전 표

Windows 버전 지원 수준 참고
Windows 11 권장 Windows에서 Codex를 사용하기 위한 가장 적합한 기준 환경입니다. 엔터프라이즈 배포 환경을 표준화한다면 이 버전을 사용하세요.
최신 업데이트가 모두 적용된 Windows 10 최선의 노력으로 지원 작동할 수 있지만 Windows 11보다 안정성이 낮습니다. Windows 10에서 Codex는 ConPTY를 비롯한 최신 콘솔 지원에 의존합니다. 실제로는 Windows 10 버전 1809 이상이 필요합니다.
이전 Windows 10 빌드 권장하지 않음 ConPTY와 같은 필수 콘솔 구성 요소가 없을 가능성이 크며 엔터프라이즈 환경에서 실패할 가능성도 높습니다.

추가 환경 전제 조건:

  • winget을 사용할 수 있어야 합니다. 없다면 Codex를 설정하기 전에 Windows를 업데이트하거나 Windows Package Manager를 설치하세요.
  • 권장 네이티브 샌드박스는 관리자가 승인하는 설정에 의존합니다.
  • 일부 엔터프라이즈 관리 기기에서는 OS 버전 자체가 적합하더라도 필수 설정 단계가 차단됩니다.

샌드박스 읽기 액세스 권한 부여

Windows 샌드박스에서 디렉터리를 읽을 수 없어 명령이 실패하면 다음을 사용하세요.

/sandbox-add-read-dir C:\absolute\directory\path

경로는 이미 존재하는 절대 디렉터리여야 합니다. 명령이 성공하면 이후 샌드박스에서 실행되는 명령은 현재 세션 동안 해당 디렉터리를 읽을 수 있습니다.

기본적으로 네이티브 Windows 샌드박스를 사용하세요. Linux 네이티브 도구가 필요하거나, 워크플로가 이미 WSL2에 있거나, 두 네이티브 Windows 샌드박스 모드 모두 요구 사항을 충족하지 못한다면 WSL을 선택하세요.

문제 해결 및 FAQ

관리되는 Windows 컴퓨터의 문제를 해결할 때는 네이티브 샌드박스 모드, Windows 버전, Codex에 표시된 정책 오류부터 확인하세요. 네이티브 Windows 지원 문제는 대부분 편집기 자체가 아니라 샌드박스 설정, 로그온 권한 또는 파일 시스템 권한에서 발생합니다.

네이티브 샌드박스 설정에 실패했습니다

Codex에서 elevated 샌드박스 설정을 완료할 수 없는 경우 가장 일반적인 원인은 다음과 같습니다.

  • Windows UAC 또는 관리자 프롬프트를 거부한 경우,
  • 컴퓨터에서 로컬 사용자 또는 그룹 생성을 허용하지 않는 경우,
  • 컴퓨터에서 방화벽 규칙 변경을 허용하지 않는 경우,
  • 컴퓨터에서 샌드박스 사용자에게 필요한 로그온 권한을 차단하는 경우,
  • 또는 다른 엔터프라이즈 정책에서 설정 과정 일부를 차단하는 경우.

시도할 방법:

  1. elevated 샌드박스 설정을 다시 시도하고, 현재 환경에서 허용된다면 관리자 프롬프트를 승인하세요.
  2. 회사 노트북에서 이 작업이 차단된다면 IT 팀에 로컬 사용자/그룹 생성, 방화벽 구성 및 필수 샌드박스 사용자 로그온 권한을 위한 관리자 승인 설정이 허용되는지 문의하세요.
  3. 기본 설정이 계속 실패한다면 문제를 조사하는 동안 계속 작업할 수 있도록 unelevated 샌드박스를 사용하세요.

Codex가 권한이 상승되지 않은 샌드박스로 전환되었습니다

이는 Codex가 사용 중인 컴퓨터에서 더 강력한 elevated 샌드박스 설정을 완료하지 못했다는 뜻입니다.

  • Codex는 여전히 샌드박스 모드에서 실행할 수 있습니다.
  • ACL 기반 파일 시스템 경계는 계속 적용되지만, elevated의 별도 샌드박스 사용자 경계를 사용하지 않으며 네트워크 격리 수준도 더 낮습니다.
  • 유용한 대체 수단이지만 장기적인 엔터프라이즈 구성으로 권장되지는 않습니다.

관리되는 엔터프라이즈 노트북을 사용한다면 IT 팀의 도움을 받아 elevated 샌드박스가 작동하도록 하는 것이 일반적으로 가장 좋은 장기 해결책입니다.

Windows 오류 1385가 표시됩니다

샌드박스에서 실행된 명령이 오류 1385와 함께 실패한다면 Windows가 명령을 시작하기 위해 샌드박스 사용자에게 필요한 로그온 유형을 거부하고 있는 것입니다.

실제로는 일반적으로 Codex가 샌드박스 사용자를 정상적으로 생성했지만 Windows 정책이 해당 사용자의 샌드박스 명령 실행을 여전히 차단하고 있다는 뜻입니다.

해결 방법:

  1. 기기 정책이 Codex에서 생성한 샌드박스 사용자에게 필수 로그온 권한을 부여하는지 IT 팀에 문의하세요.
  2. 일부 컴퓨터나 팀에만 문제가 발생한다면 그룹 정책 또는 OU의 차이를 비교하세요.
  3. 즉시 작업을 계속해야 한다면 정책 문제를 조사하는 동안 unelevated 샌드박스를 사용하세요.
  4. Windows 버전 및 실패 상황에 대한 간단한 설명과 함께 CODEX_HOME/.sandbox/sandbox.log을 보내세요.

일부 폴더에 Everyone 쓰기 권한이 있다고 Codex가 경고합니다

Codex에서 일부 폴더에 Everyone 쓰기 권한이 있다고 경고할 수 있습니다.

이 경고가 표시된다면 해당 폴더의 Windows 권한이 너무 광범위하여 샌드박스에서 완전히 보호할 수 없는 상태입니다.

해결 방법:

  1. Codex가 경고에 표시한 폴더를 검토하세요.
  2. 현재 환경에 적절하다면 해당 폴더에서 Everyone 쓰기 권한을 제거하세요.
  3. 해당 권한을 수정한 후 Codex를 다시 시작하거나 샌드박스 설정을 다시 실행하세요.

이 권한을 변경하는 방법을 잘 모르겠다면 IT 팀에 도움을 요청하세요.

샌드박스에서 실행된 명령이 네트워크에 연결할 수 없습니다

사용 중인 권한 모드에 따라 일부 Codex 채팅은 의도적으로 외부 네트워크 액세스 없이 실행됩니다.

네트워크에 연결할 수 없어 작업이 실패한다면 다음을 수행하세요.

  1. 해당 작업이 네트워크가 비활성화된 상태로 실행되도록 되어 있었는지 확인하세요.
  2. 네트워크 액세스를 예상했다면 Codex를 다시 시작한 후 다시 시도하세요.
  3. 문제가 계속 발생한다면 팀에서 컴퓨터의 샌드박스 상태가 불완전하거나 손상되었는지 확인할 수 있도록 샌드박스 로그를 수집하세요.

이전에 작동하던 샌드박스가 더 이상 작동하지 않습니다

다음과 같은 변경 후에 이런 문제가 발생할 수 있습니다.

  • repo 또는 workspace 이동,
  • 컴퓨터 권한 변경,
  • Windows 정책 변경,
  • 또는 기타 시스템 구성 변경.

시도할 방법:

  1. Codex를 다시 시작하세요.
  2. elevated 샌드박스 설정을 다시 시도하세요.
  3. 그래도 해결되지 않으면 unelevated 샌드박스를 임시 대체 수단으로 사용하세요.
  4. 검토를 위해 샌드박스 로그를 수집하세요.

OpenAI에 진단 정보를 보내야 합니다

문제가 계속된다면 다음을 보내세요.

  • CODEX_HOME/.sandbox/sandbox.log

다음 정보도 포함하면 도움이 됩니다.

  • 수행하려던 작업에 대한 간단한 설명,
  • elevated 샌드박스가 실패했는지 또는 unelevated 샌드박스가 사용되었는지,
  • 앱에 표시된 오류 메시지,
  • 1385 또는 다른 Windows나 PowerShell 오류가 표시되었는지,
  • Windows 11 또는 Windows 10 중 어떤 버전을 사용 중인지.

다음은 보내지 마세요.

  • CODEX_HOME/.sandbox-secrets/의 내용

IDE 확장 프로그램이 설치되어 있지만 응답하지 않습니다

일부 네이티브 종속성에 필요한 C++ 개발 도구가 시스템에 없을 수 있습니다.

  • Visual Studio Build Tools(C++ 워크로드)
  • Microsoft Visual C++ Redistributable(x64)
  • winget에서 winget install --id Microsoft.VisualStudio.2022.BuildTools -e 실행

설치 후 VS Code를 완전히 다시 시작하세요.