Claude Code 보안 설정 가이드
Claude wiped my friend's production .env (definitely not mine). I wrote him a guide.
·2026.08.26 14:23
핵심 내용
Claude Code의 권한 규칙 한계와 PreToolUse 훅을 활용한 .env 파일 보호 방법을 제시했다.
자세히 보기
Claude Code에 셸 접근 권한과 프로덕션 자격 증명이 담긴 .env 파일을 제공한 후, '다시 묻지 않기'를 선택한 사용자가 권한 규칙을 우회하여 파일이 삭제되는 사고가 발생했다.
기존의 Bash(rm .env*) 같은 거부(deny) 규칙은 명령어 텍스트를 왼쪽부터 매칭하기 때문에 rm -f ./apps/api/.env.production처럼 경로가 포함된 명령어는 차단하지 못한다. 또한 echo "" > .env처럼 rm 명령어가 아닌 방식으로 파일을 비우는 경우나, 파일 경로가 아닌 콘텐츠(예: AWS 키)를 다루는 경우를 막을 수 없다.
이를 해결하기 위해 두 가지 계층의 보안 설정을 제안한다.
1. 정확한 Deny 규칙 설정
settings.json의 permissions에서 deny 규칙을 사용해야 한다. Deny 규칙은 bypassPermissions 모드 포함 모든 권한 모드에서 적용되어, 사용자가 권한 확인을 건너뛰어도 파일을 보호한다.
Read(./.env),Read(./**/.env.*)등 경로 패턴을 명시적으로 지정한다.Read거부 규칙은 해당 경로에 대한Edit및Write도 차단하며, Claude Code가 인식하는 Bash 파일 명령어(cat등)에도 적용된다.
2. PreToolUse 훅 활용
권한 규칙이 평가되기 전에 도구 호출을 JSON으로 받아 검증하는 PreToolUse 훅을 설치한다.
- 훅은
exit 2를 반환하여 도구 호출을 거부(veto)할 수 있어,allow규칙보다 우선한다. - 이는 권한 규칙이 놓치는 실제 사고 시나리오(경로가 아닌 콘텐츠 기반 위험 등)를 차단하는 데 효과적이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.