/Part 3: 안전성/샌드박스와 격리
🛡️
Part 3고급⏱ 약 40분 · 2개 섹션

샌드박스와 격리

실행 환경의 벽

샌드박스와 격리 대표 이미지
이 챕터에서 배울 것
  • 설정 → FS/네트워크 제한으로 자동 매핑
  • MDM 정책으로 엔터프라이즈 환경 중앙 제어
  • 위반 추적과 사용자 피드백
전체 아키텍처에서 현재 위치
⚙️코어 엔진
🔧도구 시스템
🛡️보안
🧠컨텍스트
🤝멀티 에이전트
🌐생태계
인프라
1

샌드박스 어댑터

설정을 샌드박스 규칙으로 변환

FS 제한네트워크 정책의존성 확인위반 감지|utils/sandbox/sandbox-adapter.ts

샌드박스 어댑터는 Claude Code의 설정을 런타임 격리 규칙으로 변환합니다. @anthropic-ai/sandbox-runtime 패키지를 래핑합니다.

src/utils/sandbox/sandbox-adapter.ts
1// src/utils/sandbox/sandbox-adapter.ts — 설정 → 샌드박스 매핑
2
3import {
4 SandboxManager as BaseSandboxManager,
5 SandboxRuntimeConfigSchema,
6 SandboxViolationStore,
7 type SandboxRuntimeConfig,
8 type FsWriteRestrictionConfig,
9 type NetworkRestrictionConfig,
10} from '@anthropic-ai/sandbox-runtime'
11
12// 권한 규칙 → FS 제한으로 변환
13// allow: ["FileEdit(src/**/*.ts)"] → src/**/*.ts 쓰기 허용
14// deny: ["FileEdit(.env)"] → .env 쓰기 차단💡
15function convertPermissionsToFsRestrictions(
16 settings: SettingsJson
17): FsWriteRestrictionConfig {
18 const allowedPaths: string[] = []
19 const deniedPaths: string[] = []
20
21 for (const rule of settings.permissions?.allow ?? []) {
22 const match = rule.match(/^FileEdit\((.+)\)$/)
23 if (match) allowedPaths.push(match[1])
24 }
25 for (const rule of settings.permissions?.deny ?? []) {
26 const match = rule.match(/^FileEdit\((.+)\)$/)
27 if (match) deniedPaths.push(match[1])
28 }
29
30 return { allowedPaths, deniedPaths }
31}
2

엔터프라이즈 MDM 통합

macOS plist, Windows 레지스트리 기반 정책

MDM 정책plist레지스트리First-Source-Wins|utils/settings/mdm/settings.tsutils/settings/mdm/rawRead.ts

엔터프라이즈 환경에서는 MDM(Mobile Device Management)을 통해 중앙에서 정책을 배포합니다.

MDM 통합 (macOS/Windows)
1// src/utils/settings/mdm/settings.ts
2
3// macOS: plist 파일에서 읽기
4// defaults read com.anthropic.claude-code <key>
5async function readMacOSPlist(): Promise<SettingsJson | null> {💡
6 const result = await execAsync(
7 'defaults read com.anthropic.claude-code AllSettings'
8 )
9 return JSON.parse(result.stdout)
10}
11
12// Windows: 레지스트리에서 읽기
13// HKLM\SOFTWARE\Policies\Anthropic\ClaudeCode
14// HKCU\SOFTWARE\Anthropic\ClaudeCode
15async function readWindowsRegistry(): Promise<SettingsJson | null> {
16 // HKLM (시스템 정책) > managed-settings.json > HKCU (사용자)
17 const hklm = await regQuery('HKLM\\SOFTWARE\\Policies\\Anthropic\\ClaudeCode')💡
18 if (hklm) return hklm // First-Source-Wins
19
20 const managed = await readManagedFile()
21 if (managed) return managed
22
23 return await regQuery('HKCU\\SOFTWARE\\Anthropic\\ClaudeCode')
24}

💡 비유로 이해하기

각 행을 클릭하여 대응 관계를 확인하세요

🌍건물 보안 시스템
🤖Claude Code 권한 시스템
?

이해도 확인 퀴즈

권한 규칙 소스 중 가장 높은 우선순위를 가지는 것은?

학습 체크리스트

이해한 항목을 체크하고 학습 진도를 확인하세요

0/4 완료0%

📋 안전성 파트 요약

이 챕터에서 배운 핵심 개념을 정리합니다

1
다계층 권한
4단계 결정 흐름과 8가지 규칙 소스로 세밀한 접근 제어를 구현합니다.
2
fail-closed
확인할 수 없으면 차단하는 것이 기본입니다. 보안 시스템의 황금률입니다.
3
엔터프라이즈 정책
MDM/Registry를 통해 조직 전체에 일관된 보안 정책을 배포합니다.
4
ML 분류기
자동 모드에서 ML이 위험도를 판단하되, 연속 거부 시 제한을 완화합니다.