dev.syw

Codex가 파일 수정·명령 실행을 통제하는 승인 모드와 샌드박스 모델을 이해해 안전하게 작업한다.

승인 모드와 샌드박스

Codex는 파일을 쓰고 명령을 실행하기 때문에, 얼마나 자율적으로 동작할지를 통제하는 장치가 있습니다. 핵심은 서로 별개의 두 레이어, 즉 승인(approval) 정책과 샌드박스(sandbox)입니다.

학습 목표

  • 승인 정책과 샌드박스가 별개의 두 축임을 이해한다.
  • 각 모드의 실제 이름을 안다.
  • 작업 성격에 맞는 조합을 고른다.

승인 정책

승인 정책은 --ask-for-approval 옵션으로 정하며, Codex가 행동(파일 수정·명령 실행·네트워크)을 하기 전에 언제 사용자에게 물어볼지를 결정합니다. 실제 모드 이름은 다음과 같습니다.

  • untrusted: 신뢰된 일부 동작만 자동으로 하고, 나머지는 매번 승인을 요청한다. 가장 신중함.
  • on-request: 평소엔 자동으로 진행하되, 권한이 더 필요할 때(작업 공간 밖, 네트워크 등) 승인을 요청한다. 대화형 작업의 기본.
  • never: 승인을 묻지 않는다. 자동화·비대화형 실행에 사용.

예전의 on-failure 모드는 사용 중단(deprecated)됐습니다.

샌드박스

샌드박스는 --sandbox 옵션으로 정하며, Codex가 무엇에 접근할 수 있는지를 제한합니다. 실제 모드 이름은 다음과 같습니다.

  • read-only: 파일을 읽기만 가능. 수정·쓰기 차단.
  • workspace-write: 현재 프로젝트 폴더 안에서만 파일 변경 허용.
  • danger-full-access: 시스템 전반과 네트워크까지 허용. 신뢰할 때만 사용.

기본적으로는 작업 공간 안에서만(workspace-write) 변경하도록 두어, 실수로 프로젝트 밖 파일을 건드리지 않게 합니다.

승인 × 샌드박스

승인 정책과 샌드박스는 함께 동작하며, 실무에서 자주 쓰는 조합은 다음과 같습니다.

  • 기본(Auto): --sandbox workspace-write --ask-for-approval on-request — 옵션 없이 실행할 때의 기본값. 프로젝트 폴더 안 변경은 빠르게 진행하되, 밖으로 나가거나 네트워크가 필요하면 승인을 요청한다.
  • 신중하게: --sandbox read-only --ask-for-approval on-request — 읽고 답하되, 어떤 변경이든 승인을 받는다.
  • 완전 자동: danger-full-access + never. 한 번에 켜는 단축 플래그는 --dangerously-bypass-approvals-and-sandbox(별칭 --yolo)이며, 신뢰할 수 있는 환경에서만 사용한다.
빠르지만 위험   ←──────────────────────→   느리지만 안전
완전 자동(--yolo)                    read-only + on-request

안전 기준

  • 낯선 프로젝트나 첫 작업은 신중한 모드로 시작한다.
  • 네트워크 접근·시스템 전체 권한은 꼭 필요할 때만 켠다.
  • git으로 작업해 변경을 언제든 되돌릴 수 있게 한다.

모드 이름과 옵션은 버전에 따라 다를 수 있으니, 실제 옵션은 codex --help와 공식 문서로 확인하세요.

요약

Codex는 승인 정책으로 자율성을, 샌드박스로 접근 범위를 통제합니다. 기본은 작업 공간 안에서만 변경하도록 두고, 작업 신뢰도에 따라 자동·수동을 조절하면 속도와 안전성을 함께 잡을 수 있습니다.

댓글 0

Codex” 강좌에 대한 댓글입니다.

댓글을 작성하려면 로그인이 필요합니다.