topic난이도 · 약 12

권한 관리 — 안전하게 도구를 허용하는 법

ask / auto / deny 모드로 AI 도구 실행을 통제하는 보안 체계.

#권한#보안#allowedTools#ask#auto
왜 배우는가

AI가 터미널 명령을 자유롭게 실행하면 위험할 수 있다. 권한 관리를 이해하면 안전하게 자동화하면서도 실수를 방지할 수 있다.

Claude Code는 도구를 실행하기 전에 사용자에게 허가를 요청한다. 이 동작을 권한 모드로 세밀하게 조절할 수 있다.

권한 플로우 — ask/auto/deny 모드가 도구 실행 전 체크포인트 역할을 한다
모드동작사용 시점
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로 열어두는 것이 권장 패턴이다.

세션별 권한 — 대화 중에 "이 세션에서는 허용해줘"라고 하면 현재 세션에서만 허용된다. 세션이 끝나면 원래 설정으로 돌아간다. 이 방식은 일회성 작업에 편리하다.