Codex 민감 파일 제외 논쟁, .codexignore보다 어려운 권한 경계

OpenAI Codex issue #2847은 단순한 기능 요청처럼 보이지만, 코딩 에이전트 보안의 핵심 난점을 건드린다. 제안은 repo-local .codexignore와 global ignore file처럼, 에이전트가 읽거나 model로 보내면 안 되는 path를 명시하는 방식이다. 예시는 .env, .env.*, *.pem, id_*, .aws/**, .ssh/** 같은 민감 파일이다. issue는 2025년 8월에 열렸고, 2026년 6월 28일 기준 open 상태로 업데이트가 이어지고 있다.

표면적으로는 익숙한 ignore file 문제다. 하지만 HN 댓글의 논점은 “목록을 만들면 충분한가”로 바로 넘어가지 않았다. 에이전트가 shell을 실행하고, grep이나 rg 결과를 model에게 전달할 수 있다면, read_file 도구만 막아도 충분하지 않다는 지적이 많았다. 파일 내용이 command output에 섞이면 model context로 들어갈 수 있기 때문이다.

그래서 댓글은 Unix permission, container, devcontainer, 복사된 low-risk workspace 같은 더 낮은 층의 격리를 반복해서 언급했다. 한 사용자는 Codex process가 애초에 민감 파일을 읽을 수 없도록 해야 한다고 봤고, 다른 댓글은 “agent를 신뢰할 수 없는 사람 계정으로 SSH 접속시킨 것처럼 다루라”는 관점에 가까웠다. .codexignore는 UX와 팀 공유 규칙에는 도움이 되지만, 보안 경계 자체가 되기는 어렵다는 뜻이다.

issue 본문도 두 가지 사용 사례를 분리한다. 하나는 민감 데이터가 model로 전송되는 것을 막는 것이고, 다른 하나는 크거나 관련 없는 파일을 제외해 agent 작업 품질을 높이는 것이다. 두 목적은 겹쳐 보이지만 실패 비용이 다르다. 성능 최적화용 ignore는 누락돼도 불편한 정도지만, secret 보호용 ignore는 우회 경로 하나만 있어도 치명적이다.

코딩 에이전트가 실제 개발 흐름에 들어오면서 “무엇을 보여줄 것인가”는 prompt 문제가 아니라 runtime boundary 문제가 됐다. ignore file은 필요한 UX일 수 있다. 다만 민감 파일 보호를 약속하려면 filesystem permission, sandbox mount, credential proxy 같은 실행 환경 설계와 함께 가야 한다. 이번 논쟁의 값은 기능 하나의 찬반보다, 에이전트 보안의 책임 층위를 분명히 드러낸 데 있다.