OhssiLabs
지식 노트

AFTER-WORK SECURITY NOTE · 2026.10.20

Claude 보안 설정, 누가 무엇을 통제할까?

Settings, Hook, Skill, Gateway. 이름은 모두 “보안” 곁에 놓이지만, 실제로 작동하는 층위는 서로 다릅니다.

오늘의 한 줄

규칙은 프로그램이 집행하고, 지침은 모델이 따르며, 네트워크 통제는 별도 경계에서 이뤄집니다.

권한 정책이벤트 자동화조직 보안

Claude Code를 사내 코드나 데이터와 함께 쓸 때, “보안 설정 하나면 끝”이라고 생각하기 쉽습니다. 하지만 파일 접근을 허용할지, 실행 직전에 검증 코드를 돌릴지, 모델에게 어떤 작업 절차를 알려줄지, 외부 통신을 어디로 보낼지는 각각 다른 문제입니다.

오늘은 이 도구들을 권한 정책, 이벤트 실행, 모델 지침, 네트워크 경계로 나눠서 살펴봅니다. 설정 파일은 단순 참고 자료가 아니라 Claude Code가 실제 도구 권한을 판단할 때 읽는 정책 파일이라는 점부터 짚고 갈게요.

01

네 가지 역할, 한 장으로 보기

Claude Code 보안의 층위

Settings

정책표 · 무엇을 허용할까?

도구 사용을 허용·승인 요청·거부하는 규칙을 Claude Code가 평가합니다.

Hook

현장 검사기 · 언제 검증할까?

지정 이벤트에서 실제 스크립트·HTTP·프롬프트 기반 처리를 실행합니다.

Skill

작업 매뉴얼 · 어떻게 할까?

특정 작업을 수행하는 절차와 맥락을 Claude에게 알려줍니다.

Gateway / 네트워크 통제

출입구 · 어디로 통신할까?

조직이 구성한 프록시·LLM Gateway·DLP가 모델 트래픽을 라우팅하거나 정책 검사할 수 있습니다.

사용자 요청정책 + 도구 실행모델 통신
02

Settings: 실제 권한을 판정하는 정책

settings.json은 Claude가 읽고 “이번엔 허용하자”고 해석하는 안내문이 아닙니다. Claude Code 프로그램이 도구 사용 전에 적용하는 설정입니다. Permission 규칙에서는 대체로 deny가 ask보다 우선하고, ask는 allow보다 우선합니다. 허용 규칙이 있다고 해서 더 제한적인 거부 규칙을 덮어쓰지는 않습니다.

도구를 쓰려는 순간, 권한 정책이 먼저 판단

Claude Code가 도구 호출을 준비
Permission 규칙 확인
Deny → Ask → Allow → 현재 권한 모드에 따른 처리
거부
실행하지 않음
승인 요청
사람이 판단
허용
도구 진행

예를 들어 프로젝트의 .claude/settings.json에 허용·질문·거부 규칙을 두면, 팀에서 공유할 수 있습니다. 반면 조직 전체에 강제하려는 정책이라면 개발자가 고칠 수 있는 프로젝트 파일만 믿어서는 부족합니다. 공식 문서에서 Managed Settings는 개인·프로젝트 설정보다 우선하는 관리 계층으로 설명합니다.

03

Hook: 이벤트가 맞을 때 실행되는 검사 로직

Hook은 특정 시점에 연결한 실제 프로그램입니다. 예를 들어 PreToolUse는 도구 실행 전에 조건에 맞는 Hook을 돌릴 수 있고, Hook은 입력을 검사해 진행·승인 요청·차단 결정을 반환할 수 있습니다. 반면 PostToolUse는 작업이 끝난 뒤이므로 이미 일어난 실행을 되돌리는 사전 차단 장치가 아닙니다.

Hook은 ‘붙였다’가 아니라 ‘조건에 맞아 실행되고, 어떤 결정을 돌려줬나’가 중요

도구 호출 시도
이벤트 + matcher 일치?
해당 Hook 실행
allow / 진행ask / 확인 요청deny / 차단
이벤트가 일어나지 않거나 matcher 조건이 맞지 않으면 Hook도 실행되지 않습니다. Hook이 실행되어도 차단 결정을 내리지 않았다면 평소 권한 흐름이 이어집니다.

또 하나의 함정은 실패 시 동작입니다. 현재 공식 문서에 따르면 대부분 이벤트에서 Hook이 실행되지 않거나 시간 초과되면 기본적으로 작업이 계속될 수 있습니다. 지원되는 버전에서 command/HTTP Hook에 onFailure: "block"을 명시하면 실패 시 차단하는 설정이 가능합니다. 보안 검사를 “실패하면 통과”로 둘지 “실패하면 중단”으로 둘지 의식적으로 결정해야 합니다.

04

Skill: 지침이지, 강제 장치는 아니다

Skill은 Claude가 특정 일을 더 일관되게 수행하도록 맥락과 절차를 담은 문서입니다. 예를 들어 “민감한 실적 데이터는 가상 데이터로 대체하고, 외부 공유 전에 사용자에게 알린다” 같은 팀 작업 지침을 적을 수 있습니다. Claude는 Skill의 설명을 보고 적절한 것을 찾고, 호출된 Skill의 본문을 컨텍스트에 불러와 작업에 참고합니다.

Skill이 잘하는 일

검토 순서, 코딩 규칙, 배포 체크리스트처럼 모델이 따라야 할 업무 방식을 재사용 가능하게 설명합니다.

Skill만으로 보장할 수 없는 일

“이 디렉터리는 읽지 마”를 시스템 차원에서 막거나, 데이터 전송을 확실히 차단하는 권한 통제는 아닙니다.

즉 Skill은 행동을 유도하고, Settings와 Hook 같은 Claude Code 기능은 도구 실행 흐름에 규칙을 적용합니다. 실제 데이터 경계는 여기에 운영체제·샌드박스·네트워크 정책까지 더해져야 합니다.

05

Gateway: 모델로 나가는 통신의 경계

여기서 Gateway는 Skill이나 Hook처럼 모든 설치에 기본으로 켜져 있는 단일 보안 스위치라는 뜻이 아닙니다. 조직이 프록시나 LLM Gateway를 구성하면 Claude Code의 모델 요청을 정해진 경로로 보내고, 그 인프라에서 인증·라우팅·로깅·정책 검사를 제공할 수 있습니다. 실제로 어떤 내용을 검사·차단할 수 있는지는 Gateway 제품과 연결 방식, TLS 처리, 조직 정책에 달려 있습니다.

보안은 한 문이 아니라 여러 경계의 조합

사용자 입력
붙여넣기 / 파일
Claude Code
Settings + Hook
조직 Gateway
구성한 경우
모델 서비스
요청 처리

도구로 읽는 파일

PreToolUse가 해당 도구 호출을 검사할 기회가 있습니다.

채팅에 직접 붙인 내용

파일 읽기 도구 호출이 없으므로 그 파일용 Hook은 실행되지 않을 수 있습니다. 입력 자체의 데이터 정책과 네트워크 경계를 따로 봐야 합니다.

이 차이는 중요합니다. 모델에 민감정보가 도달하지 않게 해야 한다면 “파일 읽기 Hook을 만들었다”만으로 충분하지 않습니다. 어떤 입력이 모델 요청에 포함될 수 있는지, Gateway가 실제로 그 요청을 통제하는지, 허용되지 않은 네트워크 경로를 막았는지를 함께 확인해야 합니다.

06

같이 적용하면 이렇게 역할을 나눈다

가령 “사내 생산 실적을 분석해 보고서를 작성해줘”라는 요청을 받았다고 해보겠습니다.

Skill실적 분석 절차와 익명화 원칙을 Claude에게 안내
Settings민감 경로의 도구 접근을 거부하거나 위험 명령은 승인 요청
PreToolUse Hook호출 대상 경로·인자를 검사하고 정책에 따라 진행/요청/차단
Sandbox / OS 권한프로세스가 닿을 수 있는 파일과 네트워크 범위를 제한
Managed Settings / Gateway조직이 관리하는 정책과 모델 통신 경로를 적용
07

오늘의 한 잔 요약

Settings

Claude Code가 도구 권한을 허용·질문·거부하는 정책

Hook

이벤트와 조건에 맞으면 실행되는 실제 검증 로직

Skill

Claude에게 작업 방법을 알려주는 지침서

Managed Settings

조직이 배포하고 사용자 설정보다 우선하는 정책 계층

Gateway

별도 구성된 네트워크·모델 호출 통제 지점

Sandbox / OS 권한

프로세스가 실제로 접근할 수 있는 범위를 제한하는 경계

핵심은 ‘Claude에게 잘 부탁하기’와 ‘실행 경계에서 실제로 막기’를 구분하는 것. 지침·권한·검증·네트워크 통제를 겹쳐야 보안 설계가 됩니다.

공식 문서 더 읽기

용어와 동작은 Claude Code 문서 기준으로 정리했습니다. 기능은 버전에 따라 바뀔 수 있으므로 실제 조직 정책을 적용하기 전에는 사용 중인 버전의 문서와 관리 설정을 확인하세요.