권한 & 권한 모드
- 세 가지 권한 판정(allow / ask / deny)이 무엇을 의미하는지
- 권한 규칙이 도구와 패턴을 어떻게 매칭하는지
- 여섯 가지 권한 모드와 각각 언제 쓰는지
- auto 모드가 어떻게 프롬프트를 안전 분류기로 대체하는지
- 안전을 잃지 않고 프롬프트를 줄이는 합리적 시작 허용목록을 만드는 법
- 프로젝트 vs 개인 권한 규칙을 어디에 저장하는지
권한은 Claude Code가 당신에게 묻기 위해 멈추지 않고 할 수 있는 것을 결정합니다. 잘 조정하면 제어를 잃지 않고 흐름을 얻고, 잘못 조정하면 모든 것을 고무도장 찍거나 프롬프트에 빠져 죽습니다.
세 가지 판정
모든 잠재적 동작은 다음 중 하나로 귀결됩니다:
규칙은 보통 도구와 패턴을 매칭합니다, 예: allow Bash(npm run test:*) 또는 deny Read(./.env).
도구 + 패턴 허용
Bash(npm run test:*)
도구 + 패턴 거부
Read(./.env)
권한 모드
모드는 세션 전체의 자세를 설정합니다. 여섯 가지가 있습니다. 자주 쓰는 것들은 Shift+Tab으로 순환하거나, 설정에서 permissions.defaultMode를 지정하세요.
| 모드 | 묻지 않고 실행하는 것 | 사용 시점 |
|---|---|---|
default (Manual로 표시) | 읽기만 | 일상 작업, 민감한 변경 |
acceptEdits | 읽기, 파일 편집, 일반적인 파일시스템 명령 | 신뢰되고 범위가 잘 잡힌 편집 세션 |
plan | 읽기만; 제안하되 절대 편집 안 함 | 크거나 위험한 작업 — 플랜 모드 참조 |
auto | 모든 것, 단 안전 분류기의 심사를 거침 | 프롬프트 피로가 진짜 위험인 긴 작업 |
dontAsk | 미리 승인된 도구만; 나머지는 전부 거부 | 잠긴 CI와 스크립트 |
bypassPermissions | 모든 것, 검사 없음 | 샌드박스/컨테이너만 — 시크릿이 있는 머신에서는 절대 안 됨 |
Auto 모드
auto는 모든 것을 묻는 것과 안전장치를 끄는 것 사이의 중간 지점입니다. 당신에게 묻는 대신, 별도의 분류기 모델이 각 동작을 실행 전에 검토하여, 당신이 요청한 범위를 넘어 확대되거나, 알아보지 못하는 인프라를 건드리거나, Claude가 방금 읽은 적대적 콘텐츠에 의해 유도된 것처럼 보이는 동작을 차단합니다. 명시적인 ask 규칙은 여전히 멈추고 당신에게 묻습니다.
curl | bash, force push, 프로덕션 배포와 마이그레이션, 시크릿을 외부 엔드포인트로 전송하는 것 같은 일은 차단하고 — 일상적인 작업(로컬 편집, 선언된 의존성 설치, 읽기 전용 HTTP, 자기 브랜치에 push)은 그대로 통과시킵니다. 같은 동작을 반복해서 차단하게 되면, auto 모드는 일시 중지하고 프롬프트 권한을 당신에게 돌려줍니다.
Auto 모드는 안전 보장이 아닙니다 — 프롬프트를 줄여줄 뿐, 민감한 작업을 검토할 필요를 없애주지는 않습니다. 사용 가능 여부는 플랜, 모델, 그리고 (Team/Enterprise에서는) 관리자 토글에 따라 달라집니다.
- bypassPermissions는 샌드박스에 속합니다. 실제 머신에서 모든 프롬프트를 끄고 실행하는 것은 에이전트가 건드리면 안 되는 것을 건드리게 되는 방법입니다. 일회용 환경에만 남겨두세요 — 정말로 원하는 것이 프롬프트를 줄이는 것이라면, 대신 auto 모드를 쓰세요. /docs/security/hardening-autonomous-runs의 자율 실행 강화하기를 참조하세요.
합리적 시작 허용목록
목표: 안전하고 반복적인 것은 미리 허용하고; 파괴적인 것은 ask 또는 deny에 두기.
- 파일 읽기, 테스트/린트/빌드 명령 실행, git status/diff.
- 의존성 설치, 프로젝트 외부 파일 쓰기, 네트워크 호출.
- 시크릿 파일 읽기(.env, 키 파일), force-push, rm -rf.
프로젝트 규칙은 settings.json(공유)에, 개인 오버라이드는 settings.local.json에 저장하세요.
- 프롬프트에서 배우게 하세요: 같은 안전한 명령을 몇 번 승인하면 허용목록에 무엇을 추가할지 정확히 알게 됩니다 — 반복되는 프롬프트를 일회성 규칙으로 바꾸세요.
- 세 판정: allow(프롬프트 없음), ask(기본값 — 멈추고 확인), deny(절대 안 됨).
- 규칙은 도구와 패턴을 매칭합니다, Bash(npm run test:*)나 Read(./.env)처럼.
- 여섯 모드가 세션 자세를 설정합니다: default(Manual), acceptEdits, plan, auto, dontAsk, bypassPermissions.
- auto 모드는 당신에게 묻는 대신 모든 동작을 안전 분류기로 심사합니다 — 프롬프트 피로의 해법은 bypassPermissions가 아니라 이것입니다.
- 허용목록 만들기: 안전 + 반복적인 것 허용, 중간 위험은 묻기, 파괴적인 것 거부.
- 공유 규칙은 settings.json에; 개인 오버라이드는 settings.local.json에.
스스로 점검하기
0/5다음
- settings.json: 설정 시스템
- 훅(Hooks) — allow/deny 너머로 규칙을 결정론적으로 강제
- 보안 & 책임 있는 사용