상태: 이 글은 두 번째 Phase 3 validation sample이다. Grill v2에서 FAIL 0, WEAK 0, PASS 11로 통과했지만 발행 후보가 아니다. 게이트 검증 성공 사례로 보존하며 published로 이동하지 않는다.

코딩 에이전트에게 파일 수정 권한을 줘도 괜찮을까? 이 질문에 답하려면 먼저 샌드박스가 뭔지 알아야 한다.

샌드박스는 에이전트가 일할 수 있는 울타리다. 이 글에서 말하는 [코딩 에이전트 샌드박스](../wiki/concepts/coding-agent-sandbox.md)는 에이전트에게 "이 폴더 안에서는 작업해도 되지만, 다른 곳은 만지지 말고, 인터넷은 허락받기 전까지 쓰지 마"라고 실제로 막아두는 실행 경계에 가깝다.

중요한 건 말투가 아니다. 프롬프트에 "조심해"라고 적는 것과, 운영체제나 실행 도구가 실제로 못 하게 막는 것은 다르다.

왜 코딩 에이전트에는 권한 경계가 필요한가

코딩 에이전트는 일반 챗봇과 다르다. 답변만 하는 게 아니라 파일을 읽고, 코드를 고치고, 테스트를 돌리고, 때로는 명령을 실행한다. 이 능력이 쓸모를 만든다. 동시에 위험도 만든다.

예를 들어 에이전트가 작업 폴더 안의 테스트 파일을 고치는 것은 괜찮을 수 있다. 하지만 사용자의 다른 폴더를 바꾸거나, 승인 없이 네트워크로 데이터를 보내거나, 의도하지 않은 명령을 실행하면 피해 범위가 달라진다.

그래서 샌드박스의 질문은 "에이전트를 믿을 수 있나?"가 아니다. 더 실무적인 질문은 이쪽이다.

  • 어디까지 읽어도 되는가?
  • 어디까지 써도 되는가?
  • 어떤 명령은 실행해도 되는가?
  • 네트워크 접근은 기본 허용인가, 승인 후 허용인가?
  • 실패했을 때 피해가 작업 공간 안에 머무르는가?

OpenAI의 Codex Windows 샌드박스 글이 말하는 것

OpenAI는 Codex의 Windows 샌드박스 설계를 설명하면서 Codex에 샌드박스 환경이 필요하다고 말한다. 핵심은 Codex가 개발자 작업을 하려면 충분한 권한이 필요하지만, 그 권한이 사용자의 전체 환경으로 퍼지면 안 된다는 점이다.

그래서 글은 파일 쓰기 제한, 네트워크 접근 제한, Windows 권한 모델 같은 구현 주제를 다룬다. 다만 이 글에서 중요한 것은 세부 구현 이름을 외우는 게 아니다. AppContainer나 ACL 같은 용어보다 먼저 잡아야 할 것은 하나다.

에이전트의 능력과 권한은 분리해서 봐야 한다.

능력은 "무엇을 할 수 있나"다. 권한은 "어디까지 해도 되나"다. 좋은 코딩 에이전트 운영은 이 둘을 섞지 않는다.

샌드박스는 승인 버튼과 다르다

승인 버튼은 사람이 허락하는 절차다. 샌드박스는 허락되지 않은 행동을 기술적으로 막는 경계다.

둘은 서로 대체재가 아니다. 고위험 로컬 작업에서는 둘이 같이 필요할 수 있다. 사람은 "이 변경을 진행해도 된다"고 승인하고, 샌드박스는 승인된 작업이 정해진 작업 공간 밖으로 나가지 못하게 막는다.

반대로 모든 작업에 같은 수준의 샌드박스가 필요한 것은 아니다. 문서 요약, 코드 설명, 읽기 전용 분석처럼 피해 가능성이 낮은 작업은 더 가벼운 승인 절차로 충분할 수 있다.

그러니 결론은 좁게 잡아야 한다. 모든 코딩 에이전트 작업에 같은 수준의 OS 샌드박스가 필요하다는 말이 아니다. [고위험 로컬 작업일수록 권한 경계가 필요하다](../wiki/claims/coding-agents-need-os-enforced-sandbox-boundaries.md)는 말이다. 특히 로컬 파일 수정, 명령 실행, 네트워크 접근처럼 피해가 생길 수 있는 작업일수록 실행 경계가 중요해진다.

실무 체크리스트

코딩 에이전트에게 작업을 맡기기 전에 아래 질문을 먼저 보면 된다.

  • 이 작업은 읽기만 하는가, 파일을 쓰는가?
  • 쓰기 권한은 작업 폴더 안으로 제한되는가?
  • 명령 실행이 필요한가?
  • 네트워크 접근이 필요한가?
  • 네트워크 접근이 필요하다면 승인 후 허용인가?
  • 실패했을 때 원복할 수 있는가?
  • 사람이 승인해야 할 지점이 명확한가?

이 질문에 답하지 못한 상태에서 "에이전트가 알아서 하겠지"로 넘기면 권한 설계가 비어 있는 것이다.

이 글의 범위

이 글은 Codex Windows 샌드박스 글을 바탕으로 코딩 에이전트 샌드박스의 개념을 설명한 validation sample이다. 특정 제품의 보안성을 평가하거나, 모든 AI 에이전트에 같은 권한 모델을 적용하자는 글이 아니다.

다음에 봐야 할 질문은 따로 있다. 콘텐츠 발행 에이전트에도 이런 권한 경계가 필요하다면, raw 수집, draft 작성, SEO 수정, published 이동은 각각 어디서 막아야 할까?