ChatGPT와 Claude가 컴퓨터의 어떤 파일에 접근할지 제어하는 방법
요약
본 글은 ChatGPT와 Claude 같은 LLM 에이전트가 사용자 파일 시스템에 접근할 때, 단순히 권한을 부여하는 방법을 넘어 실제 어떤 범위의 파일을 읽고 변경할 수 있는지 그 경계를 분석합니다. 핵심적으로 AI 도구들은 폴더 단위로 접근 범위를 제한하며, '읽기 전용' 기능은 관리자 설정이나 특정 환경에서만 부분적으로 적용되는 한계가 있습니다.
핵심 포인트
- AI 에이전트의 파일 접근 권한은 주로 폴더(workspace) 단위로 결정됩니다.
- ChatGPT는 `sandbox_workspace_write`와 같은 샌드박스를 사용하며, '읽기 전용' 기능에 대한 언급이 부족합니다.
- Claude는 조직 설정(`allowedWorkspaceFolders`)을 통해 범위를 제한할 수 있으나, 셸 명령어에는 한계가 있습니다.
- 파일 시스템 서버를 통한 보호는 클라이언트 설정이나 OS 레벨의 마운트(mount) 등 우회적인 방법으로만 가능합니다.
대부분의 가이드는 'ChatGPT에게 내 파일에 대한 접근 권한을 어떻게 부여하나요?'라는 질문에 답합니다. 반대의 질문, 즉 일단 접근 권한을 얻은 후 실제로 어떤 파일을 읽고 변경할 수 있는지, 그리고 그 범위를 어떻게 좁힐 수 있는지에 대해서는 관심도가 낮습니다.
저는 현재 일반적인 설정들이 이 경계를 어떻게 긋는지 살펴보았습니다. 요약하자면: 그 경계는 거의 항상 폴더이며, 그 폴더 안에서는 어시스턴트가 보통 모든 작업을 수행할 수 있습니다.
ChatGPT 데스크톱 및 Codex
ChatGPT의 데스크톱 앱과 Codex는 동일한 권한 모드를 공유합니다. 기본값인 '승인 요청(Ask for approval)'은 workspace-write 샌드박스를 사용합니다: 에이전트는 현재 작업 공간 내에서 파일을 읽고 편집하며, 그 경계를 벗어나기 전에는 사용자에게 승인을 요청합니다. '전체 접근(Full access)'은 이 경계를 완전히 제거합니다. 또한 에이전트가 검사만 하고 승인 없이는 수정할 수 없는 read-only 샌드박스 모드도 있습니다.
여러 폴더가 필요한 경우, sandbox_workspace_write.writable_roots를 추가하여 에이전트가 수정할 수 있는 추가 위치를 지정할 수 있습니다.
한 가지 주목할 점은: 문서에서는 에이전트가 어디에 쓸 수 있고 명령을 실행할 수 있는지에 대해서는 정확하게 설명하지만, 어디에서 읽을 수 있는지에 대해서는 훨씬 적게 언급한다는 것입니다. 만약 어떤 파일이 개인적으로 남아 있어야 한다면, 쓰기 경계에 의존하여 보호할 수는 없습니다.
Claude 데스크톱
Claude의 데스크톱 앱에서는 작업 공간 폴더를 세션에 연결합니다. 연결된 폴더 안에서 에이전트는 사용자의 계정이 접근할 수 있는 모든 파일을 읽고, 생성하고, 변경할 수 있습니다.
조직(Organizations)은 allowedWorkspaceFolders라는 관리 설정을 통해 이를 좁힐 수 있습니다. 각 항목에는 ro로 표시될 수 있으며, 이는 Cowork에서 해당 폴더를 에이전트에게 읽기 전용으로 만듭니다. Anthropic의 관리 배포에 대한 문서는 한계점에 대해 솔직합니다: Code 세션에서 읽기 전용은 Claude의 파일 도구에만 적용되며 셸 명령어(shell commands)는 이를 강제하지 않습니다. 또한 이는 관리자 설정이므로, 개인 노트북을 사용하는 단일 사용자에게는 일반적으로 제공되지 않을 것입니다.
MCP 파일 시스템 서버
만약 참조 파일 시스템(reference filesystem) MCP 서버를 연결한다면, 허용된 디렉터리 목록을 제공하게 됩니다. 그 안의 모든 것이 도구들에게 열려 있습니다. 이 서버 자체에는 읽기 전용 스위치가 없습니다. modelcontextprotocol/servers의 Issue #632에서는 오랫동안 이를 요청해 왔습니다. 사람들이 사용하는 임시방편은 클라이언트에서 쓰기 도구를 끄는 것(클라이언트 설정일 뿐 보장은 아님)이거나, OS가 실제로 강제하는 Docker의 읽기 전용 마운트(read-only mount)로 서버를 실행하는 것입니다.
패턴
이러한 도구들은 나란히 놓여 있어 비슷해 보입니다:
- 권한의 단위는 폴더입니다.
- 폴더 안에서는 일반적으로 읽기 및 쓰기가 가능합니다.
- 읽기 전용(read-only)은 존재하지만, 종종 관리자에게만, 컨테이너에서만, 또는 특정 도구에 대해서만 적용됩니다.
- 나중에 실제로 어떤 파일이 열렸는지 알려주는 것이 없습니다.
레포지토리(repo)에서 작업하는 개발자에게는 괜찮습니다. 폴더가 프로젝트이고 git이 되돌리기 버튼 역할을 하니까요. 하지만 그 사람의 폴더가 송장, 계약서, 가족 사진 등이 나란히 있는 '문서'라면, 이는 들리는 것보다 훨씬 거친 문제입니다.
추가 소프트웨어 없이 오늘 할 수 있는 일
- AI 작업을 위한 전용 폴더를 만드세요. 파일을 복사해 넣고, 비서가 그 안에서 작업하게 한 다음, 결과를 다시 복사해 내보내세요. 지루하지만, 위에 언급된 모든 도구와 작동합니다.
- 홈 폴더나 전체 드라이브를 절대 연결하지 마세요. 작업을 수행하는 가장 작은 폴더만 연결하세요.
- 에이전트가 무언가를 편집하기 전에 백업을 하세요. 코드는 Git으로, 나머지는 파일 기록(File History)이나 Time Machine으로요.
- 읽기 전용 기능이 있는 곳에서는 사용하세요: Codex의
read-only샌드박스, 관리자가 Claude를 사용하는 경우의ro폴더, MCP 파일 시스템 서버의 읽기 전용 Docker 마운트 등을 활용하세요. - 세션을 시작하기 전에 무엇이 연결되었는지 확인하세요. 폴더들은 필요한 작업이 끝난 후에도 오랫동안 계속 연결되어 있는 경향이 있습니다.
공개: 저는 Kobel을 만들었으니 이 점을 고려해 주세요. 이것은 Windows 및 macOS용 데스크톱 앱으로, AI 앱과 사용자의 파일 사이에 위치하는 로컬 MCP 서버입니다. 사용자별 또는 폴더별로 권한을 설정할 수 있으며, 다섯 가지 레벨(숨김, 읽기 전용, 복사본 편집, 백업 포함 편집, 자유 편집)이 있습니다. 폴더의 새 파일은 해당 폴더의 레벨을 따르며, 모든 접근 기록은 활동 로그에 표시됩니다.
이는 위의 단계를 대체하는 것이 아니며, 이미 공유된 데이터에 대해서는 아무것도 할 수 없습니다. 그저 경계를 폴더보다 더 세밀하게 만드는 것뿐입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기