권한 및 보안 관리
Claude Code의 권한 시스템, 도구 접근 및 보안 안전장치에 대해 알아보세요.
Claude Code는 권한과 안전성의 균형을 맞추기 위해 계층화된 권한 시스템을 사용합니다:
도구 유형 | 예시 | 승인 필요 여부 | ”예, 다시 묻지 않음” 동작 |
---|---|---|---|
읽기 전용 | 파일 읽기, LS, Grep | 아니오 | 해당 없음 |
Bash 명령어 | 쉘 실행 | 예 | 프로젝트 디렉토리와 명령어별로 영구적 |
파일 수정 | 파일 편집/쓰기 | 예 | 세션 종료까지 |
Claude가 사용 가능한 도구
Claude Code는 코드베이스를 이해하고 수정하는 데 도움이 되는 강력한 도구 세트에 접근할 수 있습니다:
도구 | 설명 | 필요한 권한 |
---|---|---|
Agent | 복잡한 다단계 작업을 처리하기 위한 하위 에이전트 실행 | 아니오 |
Bash | 환경에서 쉘 명령어 실행 | 예 |
Glob | 패턴 매칭을 기반으로 파일 찾기 | 아니오 |
Grep | 파일 내용에서 패턴 검색 | 아니오 |
LS | 파일 및 디렉토리 목록 표시 | 아니오 |
Read | 파일 내용 읽기 | 아니오 |
Edit | 특정 파일에 대한 대상 편집 수행 | 예 |
Write | 파일 생성 또는 덮어쓰기 | 예 |
NotebookEdit | Jupyter 노트북 셀 수정 | 예 |
NotebookRead | Jupyter 노트북 내용 읽기 및 표시 | 아니오 |
WebFetch | 지정된 URL에서 콘텐츠 가져오기 | 예 |
권한 규칙은 /allowed-tools
또는 권한 설정에서 구성할 수 있습니다.
프롬프트 인젝션 방지
프롬프트 인젝션은 공격자가 악의적인 텍스트를 삽입하여 AI 어시스턴트의 지침을 무시하거나 조작하려는 기술입니다. Claude Code는 이러한 공격에 대한 여러 안전장치를 포함하고 있습니다:
- 권한 시스템: 민감한 작업에는 명시적 승인 필요
- 컨텍스트 인식 분석: 전체 요청을 분석하여 잠재적으로 해로운 지침 감지
- 입력 정제: 사용자 입력을 처리하여 명령어 인젝션 방지
- 명령어 블랙리스트:
curl
과wget
같이 웹에서 임의의 콘텐츠를 가져오는 위험한 명령어 차단
신뢰할 수 없는 콘텐츠 작업 시 모범 사례:
- 승인 전 제안된 명령어 검토
- 신뢰할 수 없는 콘텐츠를 Claude에 직접 파이핑하지 않기
- 중요 파일에 대한 제안된 변경사항 확인
/bug
를 사용하여 의심스러운 동작 보고
이러한 보호 기능이 위험을 크게 줄이지만, 어떤 시스템도 모든 공격에 완전히 면역이 되지는 않습니다. AI 도구를 사용할 때는 항상 좋은 보안 관행을 유지하세요.
네트워크 접근 구성
Claude Code는 다음에 대한 접근이 필요합니다:
- api.anthropic.com
- statsig.anthropic.com
- sentry.io
컨테이너화된 환경에서 Claude Code를 사용할 때 이러한 URL을 허용 목록에 추가하세요.
개발 컨테이너 참조 구현
Claude Code는 일관되고 안전한 환경이 필요한 팀을 위한 개발 컨테이너 구성을 제공합니다. 이 사전 구성된 devcontainer 설정은 VS Code의 Remote - Containers 확장 및 유사한 도구와 원활하게 작동합니다.
컨테이너의 향상된 보안 조치(격리 및 방화벽 규칙)를 통해 무인 작업을 위해 권한 프롬프트를 건너뛰는 claude --dangerously-skip-permissions
를 실행할 수 있습니다. 귀하의 필요에 맞게 사용자 지정할 수 있는 참조 구현을 포함했습니다.
devcontainer가 상당한 보호를 제공하지만, 어떤 시스템도 모든 공격에 완전히 면역이 되지는 않습니다. 항상 좋은 보안 관행을 유지하고 Claude의 활동을 모니터링하세요.
주요 기능
- 프로덕션 준비 Node.js: 필수 개발 종속성이 포함된 Node.js 20 기반
- 설계상 보안: 필요한 서비스에만 네트워크 접근을 제한하는 맞춤형 방화벽
- 개발자 친화적 도구: git, 생산성 향상을 위한 ZSH, fzf 등 포함
- VS Code와의 원활한 통합: 사전 구성된 확장 및 최적화된 설정
- 세션 지속성: 컨테이너 재시작 간에 명령어 기록 및 구성 유지
- 어디서나 작동: macOS, Windows 및 Linux 개발 환경과 호환
4단계로 시작하기
- VS Code와 Remote - Containers 확장 설치
- Claude Code 참조 구현 저장소 클론
- VS Code에서 저장소 열기
- 메시지가 표시되면 “컨테이너에서 다시 열기” 클릭(또는 명령 팔레트 사용: Cmd+Shift+P → “Remote-Containers: 컨테이너에서 다시 열기”)
구성 분석
devcontainer 설정은 세 가지 주요 구성 요소로 이루어져 있습니다:
- devcontainer.json: 컨테이너 설정, 확장 및 볼륨 마운트 제어
- Dockerfile: 컨테이너 이미지 및 설치된 도구 정의
- init-firewall.sh: 네트워크 보안 규칙 설정
보안 기능
컨테이너는 방화벽 구성으로 다층적 보안 접근 방식을 구현합니다:
- 정밀한 접근 제어: 허용 목록에 있는 도메인(npm 레지스트리, GitHub, Anthropic API 등)에만 아웃바운드 연결 제한
- 기본 거부 정책: 다른 모든 외부 네트워크 접근 차단
- 시작 시 확인: 컨테이너 초기화 시 방화벽 규칙 검증
- 격리: 메인 시스템과 분리된 안전한 개발 환경 생성
사용자 지정 옵션
devcontainer 구성은 귀하의 필요에 맞게 조정할 수 있도록 설계되었습니다:
- 워크플로우에 따라 VS Code 확장 추가 또는 제거
- 다른 하드웨어 환경에 맞게 리소스 할당 수정
- 네트워크 접근 권한 조정
- 쉘 구성 및 개발자 도구 사용자 지정