권한 & 권한 모드
권한은 Claude Code가 당신에게 묻기 위해 멈추지 않고 무엇을 할 수 있는지를 결정합니다. 잘 조정하면 통제력을 잃지 않으면서 흐름을 얻고, 잘못 조정하면 모든 것에 도장만 찍거나 프롬프트에 파묻히게 됩니다.
세 가지 판정
모든 잠재적 동작은 다음 중 하나로 결정됩니다:
- allow — 프롬프트 없이 수행.
- ask — 멈추고 묻기(명시적으로 allow/deny되지 않은 모든 것의 기본값).
- deny — 절대 안 됨, 요청받아도 안 됨.
규칙은 보통 도구에 패턴을 더해 매칭합니다. 예: Bash(npm run test:*)를 허용하거나 Read(./.env)를 거부.
권한 모드
모드는 세션의 전반적 태세를 설정합니다:
| 모드 | 동작 | 사용 시점 |
|---|---|---|
| default / ask | 미리 허용되지 않은 모든 것에 대해 묻기 | 일상 작업 |
| plan | 읽기 전용; 제안만 하고 행동하지 않음 | 크거나 위험한 작업 — 플랜 모드 참고 |
| acceptEdits | 파일 편집을 자동 수락 | 신뢰할 수 있고 범위가 잘 잡힌 편집 세션 |
| bypass / yolo | 프롬프트를 전부 건너뜀 | 샌드박스/CI 전용 — 비밀 값이 있는 머신에서는 절대 금지 |
:::warning Bypass는 샌드박스에 속한다 실제 머신에서 모든 프롬프트를 끈 채 실행하는 것은 에이전트가 건드리면 안 되는 것을 건드리게 되는 지름길입니다. 일회용 환경에만 사용하세요. 자율 실행 강화하기를 참고하세요. :::
합리적인 시작 허용 목록
목표: 안전하고 반복적인 것은 미리 허용하고, 파괴적인 것은 ask 또는 deny로 둡니다.
- Allow: 파일 읽기, 테스트/린트/빌드 명령 실행, git status/diff.
- Ask: 의존성 설치, 프로젝트 외부에 파일 쓰기, 네트워크 호출.
- Deny: 비밀 파일 읽기(
.env, 키 파일), force-push,rm -rf.
프로젝트 규칙은 settings.json(공유)에 두고, 개인 오버라이드는 settings.local.json에 두세요.
:::tip 프롬프트에서 배우게 하세요 같은 안전한 명령을 몇 번 승인하다 보면 허용 목록에 무엇을 추가할지 정확히 알게 됩니다 — 반복되는 프롬프트를 일회성 규칙으로 바꾸세요. :::
다음
- settings.json: 설정 시스템
- 훅 — allow/deny를 넘어 규칙을 결정론적으로 강제하기
- 보안 & 책임 있는 사용