승인 계층과 실행 계층은 다른 층이다
파일 시스템·네트워크 경계와 폴백 정책 설계
/sandbox를 퍼미션 모드의 하나로 오해하면 설정이 겹쳐 보입니다. 퍼미션 모드는 도구 호출이 실행될지와 프롬프트가 뜰지를 정하고, 샌드박스는 이미 실행된 Bash 명령이 무엇에 접근할 수 있는지를 제한합니다. macOS는 내장 Seatbelt를, Linux와 WSL2는 bubblewrap을 사용해 파일 시스템과 네트워크 접근을 OS가 대신 막아 줍니다. 그래서 auto-allow 모드로 빌드와 테스트를 프롬프트 없이 돌리면서도 경계는 유지할 수 있습니다.
| 설정 | 무엇을 바꾸나 | 언제 손대나 |
|---|---|---|
sandbox.enabled | 모든 프로젝트에 격리 기본 적용 | 사용자 설정으로 표준을 잡을 때 |
sandbox.filesystem.denyRead | 자격 증명 파일 읽기 차단 | 기본 정책이 ~/.ssh/까지 읽을 때 |
sandbox.filesystem.allowWrite | 작업 디렉터리 밖 쓰기 허용 | terraform이 밖에 써야 할 때 |
sandbox.network.deniedDomains | 넓은 허용 안에서 특정 도메인 차단 | 유출 경로가 될 목적지를 뺄 때 |
sandbox.failIfUnavailable | 격리 불가 시 폴백 대신 실패 | 비격리 실행을 허용할 수 없을 때 |
- 적용값 확인
/sandbox의 Config 탭에서 최종 적용된 정책을 추측 대신 직접 읽습니다. - 자격 증명 차단
sandbox.filesystem.denyRead로~/.ssh/와 클라우드 자격 증명 경로를 뺍니다. - 자동 승인 승격Mode 탭에서 auto-allow를 켜 빌드·테스트를 프롬프트 없이 돌립니다.
- 폴백 정책 결정격리가 불가능할 때 비격리로 내려갈지
failIfUnavailable로 못박습니다.