본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 28. 09:15

Claude Code v2.1.152의 disallowed-tools를 사용하여 Skill을 최소 권한 설계하는 5가지 패턴

요약

Claude Code v2.1.152에 추가된 disallowed-tools 프런트매터를 활용하여 스킬의 권한을 최소화하는 5가지 설계 패턴을 소개합니다. SKILL.md 파일 내에서 특정 툴 사용을 명시적으로 제한함으로써 보안성과 안정성을 높일 수 있습니다.

핵심 포인트

  • disallowed-tools를 통한 스킬별 최소 권한 원칙 적용 가능
  • 읽기 전용, 웹 조사 전용, 로컬 한정 등 5가지 보안 패턴 제공
  • 프롬프트 지시가 아닌 스킬 정의 파일에 제약을 매립하여 확실한 보장
  • 스킬이 활성화된 동안에만 유효하며 일반 조작에는 영향을 주지 않음

Claude Code v2.1.152 (2026-05-27 출시)에서 disallowed-tools 프런트매터 (Frontmatter)가 추가되었습니다.

이를 사용하면, SKILL.md 내에서만 툴 액세스 제한이 완결됩니다. 스킬 실행 중에 사용할 수 있는 툴을 명시적으로 제한할 수 있으므로, 최소 권한의 원칙 (Principle of Least Privilege)을 Claude Code의 스킬 설계에 적용할 수 있습니다.

---
name: my-skill
disallowed-tools:
...

이 프런트매터를 작성하는 것만으로, 스킬 실행 중에는 Write / Bash / WebSearch가 무효화됩니다.

Claude Code의 스킬은 강력한 툴에 액세스할 수 있습니다. 용도에 따라서는 "이 스킬은 파일을 읽기만 하면 된다", "외부 통신은 절대 시키고 싶지 않다"라는 케이스가 있습니다.

disallowed-tools 이전에는 스킬 실행 중의 툴 제한이 사용자의 권한 설정에 의존하거나, 프롬프트로 "Bash를 사용하지 마세요"라고 지시할 수밖에 없었습니다. 둘 다 확실한 보장은 아닙니다.

disallowed-tools를 통해, 스킬 정의 파일 (SKILL.md)에 제약을 매립할 수 있습니다.

모든 패턴을 OSS로서 공개했습니다.

---
name: tmpl-readonly
description: 읽기 전용 스킬. 감사·조사 용도용.
...

용도: 코드베이스 감사, 로그 조사 등. 외부로의 쓰기·통신이 일절 발생하지 않음을 보장.

---
name: tmpl-webresearch
description: Web 조사 전용 스킬. 외부 정보 수집 전용.
...

용도: 외부 정보의 수집·조사에 특화. 로컬 파일의 변경이나 쉘 커맨드 (Shell Command)가 발생하지 않음을 보장.

---
name: tmpl-localwork
description: 로컬 한정 스킬. 외부 통신 없음.
...

용도: 파일 조작·쉘 커맨드는 허가하지만, 외부로의 통신을 금지. 기밀 데이터 처리나 오프라인 환경에 적합.

---
name: tmpl-reporter
description: 리포트 출력 스킬. 파일 읽기/쓰기만 가능.
...

용도: 파일의 읽기와 리포트 출력만 수행. 쉘 커맨드나 외부 통신이 발생하지 않는 안전한 문서 생성에 활용.

---
name: tmpl-sandbox
description: 완전 샌드박스 (Sandbox). Read/Glob/Grep만 허가.
...

용도: 읽기만 허가하는 가장 엄격한 패턴. 코드베이스 열람·질의응답만 수행하며, 부작용(Side Effect) 제로를 보장.

# 리포지토리를 클론
git clone https://github.com/ballondol/claude-skill-templates.git
# 사용하고 싶은 템플릿을 스킬 디렉토리에 복사
...
---
name: my-audit ← 임의의 이름으로 변경
disallowed-tools:
...
/reload-skills
/my-audit
항목내용
Claude Code 버전v2.1.152
...

전 5가지 패턴에 대해, 허가된 툴의 동작과 disallowed-tools의 차단(Block)을 실제로 확인하고 있습니다.

disallowed-tools스킬이 활성화되어 있는 동안에만 유효합니다.

  • ✅ 사용자가 새로운 턴의 시작 부분에서 /skill-name을 입력했을 경우
  • ❌ 어시스턴트가 처리 중에 큐잉(Queuing)된 슬래시 커맨드 (Slash Command)에는 적용되지 않음

disallowed-tools는 스킬 실행 중에만 유효합니다. 일반적인 Claude Code 조작에는 일절 영향을 미치지 않습니다.

disallowed-tools는 v2.1.152에 추가된 신기능입니다. 템플릿 모음은 2026-05-28 시점에서 유사한 OSS가 제로이기 때문에, 선점할 수 있는 동안 공개했습니다.

버그 보고·개선 요청은 GitHub Issues로 부탁드립니다.

이 기사는 Zenn의 동일 기사를 Qiita용으로 개고한 것입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0