새소식

300x250
AI/Claude Code Doc(공식문서) 번역본

Claude Code 공식문서 리뷰-Administration[3] : Claude Code 설정 - 보안(Security)

  • -
728x90

안녕하세요! 갓대희입니다. 

Claude Code Docs 공식 문서 >> [관리] 섹션의 내용 중 [Claude Code 설정 - 보안(Security)]를 살펴 보려고 합니다.

이번 섹션 부터는 영문, 한글번역본이 모두 공식문서로 존재하는 섹션이니 한글 문서를 편하게 참고 하셔도 될 것 같습니다.

https://code.claude.com/docs/ko/security

 

보안 - Claude Code Docs

Claude Code의 보안 보호 기능과 안전한 사용을 위한 모범 사례에 대해 알아보세요.

code.claude.com

 

이 카테고리의 글은 편하게 공식 문서 위주의 내용을 눈으로 쭉 살펴 보고 넘어가는 목적을 갖고 시작 하게 되었습니다.

저도 초심으로 돌아가 기초적읜 글을 살펴보다보니, 지금와서 클로드에서 강조 하고자 하는 원칙이 어떤건지 되돌아볼 수 있는 계기가 되기도 하는 것 같아, 다른 분들도 꼭 한번 눈으로라도 이해 하고 넘어가는것이 좋다고 생각하여 공식 문서의 내용을 억지로 리뷰해보게 되었습니다.

 

 

Claude Code 보안

보안 아키텍처, 내장 보호 기능, 모범 사례

보안 모델: Claude Code는 "명시적 승인" 원칙을 따른다. 기본적으로 읽기 전용이며, 파일 수정이나 명령어 실행 같은 민감한 작업은 사용자의 명시적 승인이 필요하다.

 

보안 설정 시작하기

Claude Code를 처음 사용하거나 보안 설정을 점검하려는 경우, 다음 단계를 따른다.

Step 1: 현재 권한 설정 확인

먼저 현재 설정된 권한을 확인한다:

# Claude Code 내에서 실행
/permissions
# 출력 예시:
# Allowed tools:
# - Read (always allowed)
# - Glob (always allowed)
# - Grep (always allowed)
#
# Allowed commands:
# - npm test
# - npm run build
# - git status

 

Step 2: 샌드박스 모드 활성화 (권장)

자율 작업 시 파일 시스템과 네트워크를 격리하려면 샌드박스를 활성화한다:

# 샌드박스 모드 활성화
/sandbox # 특정 디렉토리로 작업 범위 제한
/sandbox /path/to/project

 

Step 3: 프로젝트별 설정 구성

민감한 프로젝트는 .claude/settings.json으로 별도 권한을 설정할 수 있다:

// .claude/settings.json
{
  "permissions": {
    "allow": [ "npm test", "npm run lint" ],
    "deny": [ "rm -rf", "curl", "wget" ]
  }
}

 

Step 4: 정기적인 권한 감사

허용된 명령어 목록이 너무 많아지지 않도록 정기적으로 점검한다:

# 현재 권한 목록 확인
/permissions
# 불필요한 권한이 있다면 설정 파일에서 제거
# ~/.claude/settings.json 또는 .claude/settings.json 수정

 

핵심 보안 아키텍처

권한 기반 모델

Claude Code의 권한 시스템은 다음 원칙을 따른다:

원칙 설명
기본 읽기 전용 기본적으로 엄격한 읽기 전용 권한만 부여
명시적 승인 필요 파일 편집, 테스트 실행, 명령어 실행은 사용자 승인 필요
사용자 제어 작업을 한 번 승인하거나 자동 승인 설정 가능
투명한 설계 bash 명령어 실행 전 승인 요청 등 예측 가능한 동작
사용자 책임: Claude Code는 사용자가 부여한 권한만 가진다. 제안된 코드와 명령어가 안전한지 승인 전에 반드시 검토해야 한다.

 

상황별 보안 설정 가이드

상황 1: 개인 프로젝트에서 사용

개인 학습이나 사이드 프로젝트에서는 기본 설정으로 충분하다.

설정 항목 권장 값
자주 쓰는 명령어 허용 npm test, npm run build, git status
샌드박스 선택 사항
Accept Edits 모드 리팩토링 시 사용 가능

 

상황 2: 팀 프로젝트에서 사용

팀원 간 일관된 보안 정책이 필요하다.

설정 항목 권장 값
프로젝트 설정 파일 .claude/settings.json을 Git에 커밋
엔터프라이즈 설정 조직 표준 적용 (Enterprise 플랜)
모니터링 OpenTelemetry 메트릭으로 사용량 추적
교육 팀원에게 보안 모범 사례 공유

 

상황 3: 민감한 프로덕션 코드 작업

프로덕션 환경이나 보안이 중요한 코드는 더 엄격한 설정이 필요하다.

설정 항목 권장 값
샌드박스 필수 활성화
Devcontainer 격리된 환경에서 실행 권장
자동 승인 최소화 (매번 수동 확인)
Accept Edits 모드 사용 자제
주의 (-p 플래그): 비대화형 모드(claude -p "...")로 실행하면 Trust verification이 비활성화된다. 자동화 스크립트에서 사용할 때 특히 주의가 필요하다.

 

내장 보호 기능

1. 샌드박스 Bash 도구

  • 파일 시스템과 네트워크 격리
  • 보안을 유지하면서 권한 프롬프트 줄임
  • /sandbox 명령으로 자율 작업 범위 정의

 

2. 쓰기 접근 제한

[쓰기 가능] Claude Code가 시작된 폴더와 하위 폴더

[쓰기 불가] 상위 디렉토리 (명시적 권한 없이)

[읽기 가능] 작업 디렉토리 외부 파일 (시스템 라이브러리/의존성용)

 

3. 권한 피로 완화

자주 사용하는 안전한 명령어를 허용 목록에 추가할 수 있다:

  • 사용자별 설정 (~/.claude/settings.json)
  • 코드베이스별 설정 (.claude/settings.json)
  • 조직별 설정 (Enterprise)

 

4. Accept Edits 모드

  • 여러 편집을 일괄 승인
  • 부작용이 있는 명령어는 여전히 권한 프롬프트 유지
실전 팁: Accept Edits 모드는 리팩토링처럼 많은 파일을 수정할 때 유용하다. 하지만 외부 명령어 실행은 여전히 개별 승인이 필요하므로 안전하다.

 

5. 자연어 명령어 설명

복잡한 bash 명령어의 경우 Claude Code가 자연어로 설명을 제공한다. 예를 들어:

명령어: find . -name "*.log" -mtime +30 -delete

설명: "현재 디렉토리에서 30일 이상 된 .log 파일을 찾아 삭제합니다"

이를 통해 승인 전에 명령어가 어떤 동작을 하는지 이해할 수 있다.

 

프롬프트 인젝션 보호

핵심 보호 기능

기능 설명
권한 시스템 민감한 작업은 명시적 승인 필요
컨텍스트 인식 분석 전체 요청을 분석하여 잠재적으로 유해한 지침 탐지
입력 새니타이제이션 명령어 인젝션 방지
명령어 차단 목록 curl, wget 같은 위험 명령어 기본 차단

 

추가 보호 장치

보호 장치 설명
네트워크 요청 승인 네트워크 요청 도구는 사용자 승인 필요
격리된 컨텍스트 웹 페치는 별도 컨텍스트에서 실행 (악성 프롬프트 인젝션 방지)
신뢰 검증 처음 실행하는 코드베이스와 새 MCP 서버는 신뢰 검증 필요
명령어 인젝션 탐지 의심스러운 bash 명령어는 허용 목록에 있어도 수동 승인 필요
Fail-closed 매칭 매칭되지 않는 명령어는 기본적으로 수동 승인 필요
보안 자격 증명 저장 API 키와 토큰 암호화 저장

 

Privacy Safeguards (개인정보 보호)

Claude Code는 사용자 데이터 보호를 위해 다음 조치를 취한다:

항목 설명
제한된 보존 기간 민감한 정보는 제한된 기간만 보존
세션 데이터 접근 제한 사용자 세션 데이터에 대한 접근 제한
학습 설정 제어 데이터 학습 여부를 사용자가 선택 가능

자세한 내용은 다음 문서를 참조한다:

 

MCP 보안

Model Context Protocol (MCP) 서버 관련 보안 고려사항:

항목 설명
설정 방식 소스 코드를 통해 MCP 서버 설정
허용 서버 Claude Code 설정에서 구성 (소스 컨트롤에 체크인)
권장 사항 신뢰할 수 있는 MCP 서버 사용 또는 직접 작성
권한 구성 MCP 서버별 Claude Code 권한 설정 가능
주의: Anthropic은 MCP 서버를 관리하거나 감사하지 않는다. 신뢰할 수 있는 서버만 사용하거나 직접 작성하는 것을 권장한다.

 

IDE 보안

VS Code 등 IDE에서 Claude Code를 실행할 때의 보안 정보는 VS Code 보안 섹션을 참조한다.

 

클라우드 실행 보안

웹에서 Claude Code를 실행할 때의 보안 기능:

기능 설명
격리된 VM 각 세션은 Anthropic이 관리하는 격리된 가상 머신에서 실행
네트워크 접근 제어 기본적으로 제한, 특정 도메인에 대해 설정 가능
자격 증명 보호 보안 프록시를 통한 인증, 범위가 지정된 샌드박스 자격 증명
브랜치 제한 Git push는 현재 작업 브랜치로 제한
감사 로깅 컴플라이언스를 위한 모든 작업 로깅
자동 정리 세션 완료 후 클라우드 환경 종료

 

보안 모범 사례

민감한 코드 작업 시

  • 모든 제안된 변경사항을 승인 전 검토
  • 민감한 저장소에는 프로젝트별 권한 설정 사용
  • 격리를 위해 devcontainer 사용 고려
  • /permissions로 정기적으로 권한 감사

팀 보안

  • 엔터프라이즈 관리 설정으로 조직 표준 적용
  • 버전 컨트롤을 통해 승인된 권한 설정 공유
  • 팀원에게 보안 모범 사례 교육
  • OpenTelemetry 메트릭으로 사용량 모니터링

신뢰할 수 없는 콘텐츠 작업 시

  1. 승인 전 제안된 명령어 검토
  2. 신뢰할 수 없는 콘텐츠를 Claude에 직접 파이프하지 않기
  3. 중요 파일에 대한 제안된 변경사항 검증
  4. 외부 웹 서비스가 포함된 스크립트는 가상 머신에서 실행
  5. /bug로 의심스러운 동작 신고

 

트러블슈팅

문제 1: 명령어가 계속 차단됨

증상: 자주 사용하는 안전한 명령어인데도 매번 승인을 요청한다.

해결 방법:

// .claude/settings.json에 허용 명령어 추가 { "permissions": { "allow": [ "npm test", "npm run build", "python -m pytest" ] } }

 

문제 2: curl/wget이 필요한데 차단됨

증상: API 테스트 등을 위해 curl이 필요하지만 기본적으로 차단되어 있다.

해결 방법:

  • 정말 필요한 경우에만 허용 목록에 추가
  • 허용 시 권한 패턴 제한 사항을 이해하고 사용
// 특정 도메인으로 제한된 curl만 허용 (예시) { "permissions": { "allow": [ "curl https://api.example.com/*" ] } }
주의: curl과 wget은 임의의 웹 콘텐츠를 가져올 수 있어 프롬프트 인젝션 위험이 있다. 꼭 필요한 경우에만 허용하고, 가능하면 특정 URL로 범위를 제한한다.

 

문제 3: MCP 서버를 신뢰할 수 있는지 판단이 어려움

증상: 외부 MCP 서버를 사용하고 싶은데 안전한지 확신이 없다.

해결 방법:

  • 공식 또는 검증된 MCP 서버만 사용
  • 소스 코드를 직접 검토
  • 확실하지 않으면 직접 MCP 서버 작성
  • MCP 서버별로 권한을 최소화하여 설정

 

문제 4: 파일 쓰기 권한 오류

증상: 특정 디렉토리에 파일을 쓰려는데 권한이 없다는 오류가 발생한다.

원인: Claude Code는 시작 디렉토리와 그 하위 폴더에만 쓰기 권한이 있다.

해결 방법:

  • 작업할 프로젝트의 루트 디렉토리에서 Claude Code를 시작
  • 상위 디렉토리 접근이 필요한 경우 명시적 권한 부여

 

중요 경고: Windows WebDAV

경고: WebDAV를 활성화하거나 Claude Code가 \\* 경로에 접근하도록 허용하지 않는다. WebDAV는 보안 위험으로 인해 Microsoft에서 사용 중단되었으며, 권한 시스템을 우회하는 네트워크 요청을 트리거할 수 있다.

 

보안 문제 신고

보안 취약점을 발견한 경우:

단계 설명
1 공개적으로 공유하지 않기
2 HackerOne 취약점 공개 프로그램을 통해 신고
3 상세한 재현 단계 포함
4 공개 공시 전 해결 시간 허용

 

보안 점검 체크리스트

프로젝트 시작 전 또는 정기적으로 다음 항목을 확인한다:

점검 항목 확인 방법
현재 권한 설정 확인 /permissions 실행
불필요한 허용 명령어 제거 settings.json 검토
민감 프로젝트는 샌드박스 활성화 /sandbox 실행
MCP 서버 신뢰성 확인 사용 중인 MCP 서버 목록 검토
프로젝트 설정이 Git에 커밋되었는지 .claude/settings.json 확인
팀원 보안 교육 완료 이 문서 공유

 

관련 문서

문서 설명 언제 참조하나
Sandboxing bash 명령어의 파일 시스템/네트워크 격리 자율 작업 범위를 제한하고 싶을 때
Identity and Access Management 권한 및 접근 제어 설정 세부 권한 설정이 필요할 때
Monitoring Usage Claude Code 활동 추적 및 감사 팀 사용량을 모니터링하고 싶을 때
Development Containers 안전하고 격리된 개발 환경 완전한 환경 격리가 필요할 때
Anthropic Trust Center 보안 인증 및 컴플라이언스 SOC 2, ISO 27001 등 인증 정보가 필요할 때
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.

💡 AI 관련 질문이 있나요? 눌러보세요!