샌드박스 모드: YOLO 속도와 실제 보안
Source: Dev.to
번역할 텍스트를 제공해 주시면 한국어로 번역해 드리겠습니다.
샌드박스 모드: YOLO 속도와 실제 보안의 만남
한 번만 경계선을 정의하면 됩니다. 클로드는 그 안에서 자유롭게 동작합니다.
권한 문제
Claude Code를 진지하게 사용해 본 사람이라면 권한 요청 절차를 잘 알고 있을 겁니다. 클로드는 위험할 수 있는 작업을 수행하기 전에 허가를 구하는데, 이는 여러분이 제어권을 유지하게 해 주지만, 끊임없는 방해는 생산성을 크게 저해합니다.
“Can I run npm install?” [Allow]
“Can I read this file?” [Allow]
세션당 Allow를 백 번 클릭하는 것은 안전을 보장하는 것이 아니라 연극에 불과합니다. 진정한 보안은 사전에 명확한 경계선을 정의하는 데서 나오며, 근육 기억에 의존해 클릭하는 것이 아닙니다.
샌드박스 모드란
샌드박스 모드는 보안 경계선을 한 번만 정의하도록 해 줍니다. 그 경계 안에서는 클로드가 자유롭게 동작하고, 경계 밖에서는 차단됩니다.
- 파일 쓰기, 명령 실행, 시스템 상호작용마다 나타나는 권한 팝업이 더 이상 없습니다.
- 외부 세계는 안전하게 보호하면서 클로드는 전속력으로 작업합니다.
샌드박스 모드 활성화
# Start a sandbox session
/sandbox
또는 클로드 코드를 바로 샌드박스 모드로 실행합니다:
claude --sandbox
경계 설정을 위한 프롬프트가 표시됩니다:
🔒 Sandbox Configuration
Allowed directories (read/write):
> ./src, ./tests, ./docs
Allowed commands:
> npm *, yarn *, pnpm *, git status, git diff
Blocked paths:
> .env*, **/secrets/*, ~/.ssh
Maximum file size: 1 MB
Network access: disabled
사전 설정 프로파일
기본 제공되는 일반적인 샌드박스 프로파일을 사용할 수 있습니다:
/sandbox --preset frontend
프론트엔드 개발에 흔히 필요한 권한을 활성화합니다: npm/yarn 명령, src 디렉터리 접근, 빌드 도구 등.
/sandbox --preset conservative
최소 권한: 대부분의 파일을 읽기 전용으로 두고, 쓰기 작업은 명시적인 승인 필요.
/sandbox --preset project
프로젝트의 .claude/sandbox.json 파일에 정의된 샌드박스 구성을 사용합니다.
프로젝트 수준 샌드박스 구성
.claude/sandbox.json에 샌드박스 설정을 저장하면 팀원 모두가 동일한 안전 기본값을 공유할 수 있습니다.
{
"allowedPaths": ["./src", "./tests", "./scripts"],
"blockedPaths": [".env*", "**/*.key", "**/credentials*"],
"allowedCommands": ["npm test", "npm run build", "npm run lint"],
"blockedCommands": ["rm -rf", "curl", "wget"],
"networkAccess": false
}
읽기와 쓰기 권한 구분
{
"readPaths": ["./**"],
"writePaths": ["./src", "./tests"]
}
샌드박스 활동 감사
/sandbox --log
샌드박스 내에서 클로드가 수행한 모든 작업을 보여줍니다—보안 검토와 AI 행동 이해에 유용합니다.
일시적 확장
샌드박스 밖의 작업을 잠깐 허용해야 할 때는 전체 재구성 대신 일회성 허용을 사용합니다:
/allow-once npm publish
실제 사용 사례
“컴포넌트 라이브러리를 업데이트하려고 클로드에게 요청했어요. 15개의 패키지에 걸쳐 파일을 수정하고, 테스트를 실행하고, 스냅샷을 업데이트하고, 타입을 확인하고, 린팅을 고쳐야 했죠. 모든 작업마다 권한을 물어봤고, 하나의 리팩터링 작업에만 73번의 권한 프롬프트가 나타났습니다. 저는 그냥 Allow만 눌렀어요.”
샌드박스 모드에서 개발자는 다음과 같이 설정했습니다:
{
"allowedPaths": ["./packages/ui/**", "./packages/shared/**"],
"allowedCommands": [
"npm test -- --updateSnapshot",
"npm run typecheck",
"npm run lint -- --fix"
],
"blockedPaths": ["**/package.json", "**/tsconfig.json"]
}
이제 세션 시작 시 한 번만 샌드박스를 설정하면, 클로드는 경계 내에서 자유롭게 리팩터링하고, 개발자는 권한 대화창 대신 실제 코드 변경을 검토합니다. 또한 설정을 통해 실수로 위험한 작업이 수행되는 것을 방지합니다.
결론
샌드박스 모드는 올바른 보안을 제공합니다. 수백 개의 사소하고 쉽게 무시되는 권한 요청 대신, 몇 가지 의도적인 경계 설정만 하면 됩니다. 클로드는 효율적으로 작업하고, 여러분은 안심할 수 있으며, 워크플로는 끊김 없이 진행됩니다.
경계를 정의하고, 그 안에서 클로드가 구축하도록 하세요.