핵심 요약
Claude Code의 현재 권한 제어 시스템이 가진 일관성 부족 문제를 해결하기 위해 개발된 Rust 기반의 PreToolUse 훅이다. 사용자는 TOML 설정 파일을 통해 허용 및 거부 규칙을 정규표현식으로 정의하여 Bash 명령어 실행이나 파일 접근을 세밀하게 통제할 수 있다. 정적 규칙으로 판단하기 어려운 경우 LLM(GPT-4o-mini)에게 안전성 판단을 위임하는 기능을 포함하며, 모든 결정 과정을 JSON 파일로 기록하여 보안 감사를 지원한다. Anthropic의 훅 가이드라인을 준수하여 제작되었으며, Claude Code 설정에 간단히 추가하여 즉시 적용 가능하다.
배경
Rust 및 cargo 설치, Claude Code 설치 및 기본 설정 지식, 정규표현식(Regex)에 대한 이해, OpenAI API 키 (LLM 위임 기능 사용 시)
대상 독자
Claude Code를 프로덕션이나 민감한 코드베이스에서 사용하는 개발자 및 보안 엔지니어
의미 / 영향
AI 코딩 에이전트의 자율성이 높아짐에 따라 발생할 수 있는 보안 사고를 방지하기 위한 실질적인 제어 계층을 제시한다. 특히 정적 규칙과 LLM 판단을 결합한 하이브리드 보안 모델은 향후 에이전트 보안 프레임워크의 표준적인 접근 방식이 될 가능성이 크다.
섹션별 상세
[[allow]]
tool = "Bash"
command_regex = "^cargo (build|test|check|clippy|fmt|run)"
command_exclude_regex = "&|;|\\||`|\\$\\(" # Block shell injection
[[deny]]
tool = "Bash"
command_regex = "^rm .*-rf"TOML 파일을 사용해 특정 Bash 명령어는 허용하고 위험한 삭제 명령은 거부하는 규칙 설정 예시
{
"hooks": {
"PreToolUse": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "/path/to/claude-code-permissions-hook run --config ~/.config/claude-code-permissions-hook.toml"
}
]
}
]
}
}Claude Code 설정 파일(.claude/settings.json)에 권한 제어 훅을 등록하는 방법
실무 Takeaway
- Claude Code의 기본 권한 설정이 부족한 환경에서 정규표현식 기반의 TOML 규칙을 적용하여 위험한 Bash 명령어나 파일 접근을 사전에 차단할 수 있다.
- 정적 규칙으로 정의하기 어려운 복잡한 보안 판단은 LLM 위임 기능을 활성화하여 gpt-4o-mini가 실시간으로 안전성을 검토하게 함으로써 유연성과 보안성을 동시에 확보한다.
- 보안이 중요한 기업 환경에서는 감사 로그 수준을 'all'로 설정하여 Claude Code가 수행하는 모든 도구 호출과 권한 결정 내역을 JSON으로 추적하고 관리해야 한다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료