topic★★★★★난이도 · 약 12분
권한 관리 — 안전하게 도구를 허용하는 법
ask / auto / deny 모드로 AI 도구 실행을 통제하는 보안 체계.
#권한#보안#allowedTools#ask#auto
왜 배우는가
AI가 터미널 명령을 자유롭게 실행하면 위험할 수 있다. 권한 관리를 이해하면 안전하게 자동화하면서도 실수를 방지할 수 있다.
Claude Code는 도구를 실행하기 전에 사용자에게 허가를 요청한다. 이 동작을 권한 모드로 세밀하게 조절할 수 있다.
| 모드 | 동작 | 사용 시점 |
|---|---|---|
| ask (기본) | 매번 사용자에게 허가 요청 | 안전이 중요한 프로덕션 작업 |
| auto | 허가 없이 자동 실행 | 신뢰할 수 있는 반복 작업 |
| deny | 해당 도구 사용 차단 | 절대 실행하면 안 되는 명령 |
bash
# settings.json 또는 .claude/settings.json에서 설정
# allowedTools 예시:
# Bash로 npm/npx 명령은 자동 허용
"allowedTools": [
"Bash(npm *)",
"Bash(npx *)",
"Bash(git status)",
"Bash(git diff *)"
]
# 위험한 명령은 deny 목록에:
# "deniedTools": ["Bash(rm -rf *)"]allowedTools에 패턴을 등록하면 해당 명령은 ask 없이 자동 실행된다. 와일드카드(*)로 범위를 지정할 수 있다.
왜 권한 관리가 중요한가? — AI가 `rm -rf /` 같은 위험한 명령을 실행하면 돌이킬 수 없다. 특히 Bash 도구는 터미널에서 무엇이든 실행할 수 있으므로 반드시 적절한 제한이 필요하다. 기본 ask 모드를 유지하면서, 검증된 안전한 명령만 auto로 열어두는 것이 권장 패턴이다.
세션별 권한 — 대화 중에 "이 세션에서는 허용해줘"라고 하면 현재 세션에서만 허용된다. 세션이 끝나면 원래 설정으로 돌아간다. 이 방식은 일회성 작업에 편리하다.