Claude Code는 파일 편집, 명령 실행, 웹 접근 같은 도구 사용을 권한 규칙으로 통제합니다. 무엇을 자동으로 허용하고, 무엇을 매번 확인하며, 무엇을 아예 차단할지를 settings.json과 권한 모드로 정할 수 있습니다. 이 글은 권한 규칙 세 종류와 평가 순서, 설정 파일 레벨, 권한 모드를 공식 문서 기준으로 정리합니다. (기준 시점: 2026년 6월. 세부 옵션은 변동될 수 있으니 공식 권한 문서에서 최신 내용을 확인하세요.)
세 가지 권한 규칙
Claude Code의 권한은 settings.json의 permissions 객체 안에서 세 가지 목록으로 나뉩니다.
- allow — 해당 도구를 확인 없이 자동으로 사용합니다. 매번 승인을 누르는 번거로움을 줄입니다.
- ask — 도구를 사용하려 할 때마다 확인을 묻습니다.
- deny — 해당 도구를 차단합니다. 가장 강력한 규칙입니다.
터미널에서 /permissions 명령을 실행하면 현재 적용된 규칙과 그 규칙이 어떤 settings.json에서 왔는지를 한눈에 볼 수 있습니다.
평가 순서 — deny → ask → allow
규칙은 항상 deny → ask → allow 순서로 검사되며, 처음 매치된 규칙이 결과를 정합니다. 규칙의 구체성(specificity)은 이 순서를 바꾸지 않습니다. 예를 들어 어떤 명령에 매치되는 ask 규칙이 있으면, 같은 명령에 더 구체적인 allow 규칙이 있더라도 확인을 먼저 묻습니다. 또한 deny 규칙은 권한 우회 모드에서도 차단됩니다.
규칙 형식과 와일드카드
규칙은 Tool(도구 전체) 또는 Tool(specifier)(범위 지정) 형식으로 씁니다. * 와일드카드를 쓸 수 있습니다.
{
"permissions": {
"allow": ["Bash(npm run *)", "Bash(git status)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)", "Read(./.env.*)", "Bash(rm -rf *)"]
}
}
한 가지 중요한 차이가 있습니다. deny에 도구 이름만 적으면(예: Bash) 그 도구가 Claude의 컨텍스트에서 통째로 사라져 Claude가 아예 인식하지 못합니다. 반면 범위를 지정하면(예: Bash(rm *)) 도구는 그대로 쓸 수 있되 매치되는 호출만 차단됩니다. MCP 도구는 괄호 없이 더블 언더스코어 형식으로 표기합니다. MCP를 처음 다룬다면 MCP 연결 방법을 참고하세요.
설정 파일은 레벨이 있다
설정은 한 곳이 아니라 여러 레벨에 둘 수 있습니다. 대표적으로 사용자 레벨 ~/.claude/settings.json(모든 프로젝트에 적용), 프로젝트 레벨 .claude/settings.json(레포에 커밋해 팀과 공유), 그리고 조직이 강제하는 관리형(enterprise) 설정이 있습니다. 관리형 설정의 deny는 사용자가 임의로 풀 수 없어, 팀 차원의 안전선을 강제하는 데 쓰입니다. 정확한 우선순위 규칙은 버전에 따라 달라질 수 있으므로 공식 문서를 확인하세요. "무엇을 만들지"는 CLAUDE.md, "어떻게 동작할지"는 settings.json으로 나눠 관리하면 깔끔합니다.
권한 모드
defaultMode로 기본 동작을 정할 수 있습니다. 기본 모드는 허용되지 않은 작업마다 확인을 묻고, acceptEdits는 단순 파일 편집을 자동 승인하며, plan 모드는 실제 변경 없이 계획만 제시합니다. bypassPermissions(CLI의 --dangerously-skip-permissions, 흔히 "YOLO 모드")는 모든 확인을 건너뜁니다. 이 우회 모드는 컨테이너, VM, 일회성 CI 러너처럼 환경 자체가 안전 경계를 제공하는 격리 환경에서만 쓰는 것이 안전합니다. 다만 deny 규칙은 우회 모드에서도 여전히 차단되며, .git/·.claude/ 같은 민감 경로는 우회 모드에서도 확인을 묻도록 보호됩니다.
안전하게 쓰는 기본 원칙
- 비밀 파일은 deny로 보호하세요 — 예:
Read(./.env),Read(./.env.*), SSH 키 경로. - 되돌리기 어려운 명령은 deny에 두세요 — 예:
Bash(rm -rf *), 강제 푸시. - 자주 반복 승인하는 안전한 명령(테스트·린트 등)은 allow로 올려 흐름을 끊지 않게 하세요.
- 우회 모드는 격리 환경에서만. 일상 작업에서는 기본 모드 또는 acceptEdits를 권장합니다.
- 샌드박싱은 권한과 별개의 보완 레이어입니다. 자동화 워크플로를 짠다면 훅(hooks)으로 도구 실행 전후에 검증을 끼워 넣을 수 있습니다.
Claude Code를 처음 쓰는 경우 Claude Code란 무엇인가와 설치 가이드를 먼저 보면 전체 그림이 잡힙니다.
정리한 옵션·동작은 2026년 6월 공식 문서 기준이며 버전에 따라 달라질 수 있습니다. 모드 이름, 파일 우선순위, 샌드박스 설정 등 세부 사항은 공식 권한 문서에서 최신 내용을 확인하세요. 본 사이트는 Anthropic 공식 사이트가 아닙니다.