OpenShell: 자율 AI 에이전트를 가두는 NVIDIA의 안전한 샌드박스 런타임
OpenShell – A safe, private runtime for fleets of autonomous AI agents
TL;DR Highlight
정책 파일로 에이전트의 파일·네트워크·자격증명 접근을 커널 수준에서 통제한다
Who Should Read
코딩 에이전트에 파일·API·자격증명 권한을 줘야 해서 샌드박스 격리가 고민인 백엔드·플랫폼 개발자
Core Mechanics
- 에이전트 접근 범위를 정책으로 선언
- 파일, 시스템 콜, 네트워크 연결마다 정책 검사를 거친다.
- 에이전트가 읽고 쓰고 부를 수 있는 범위를 정책에 적어 두면 OpenShell이 강제한다.
- 커널 수준 격리 샌드박스
- 에이전트마다 격리된 샌드박스에서 돈다.
- 접근 가능한 파일과 호출 가능한 시스템 콜을 커널 제어로 제한한다.
- 모든 네트워크 연결은 샌드박스를 나가기 전에 정책 검사를 통과해야 한다.
- 에이전트는 진짜 자격증명을 못 본다
- 승인된 엔드포인트로 가는 요청에만 OpenShell이 자격증명을 붙인다.
- Providers 기능이 추론용 자격증명까지 같은 방식으로 다룬다.
- 정책 변경은 형식 검증 후 사람이 승인
- 정책을 바꾸기 전에 형식 검증(formal verification, 수학적으로 허용 범위를 따지는 검증)을 돌린다.
- 자격증명을 들고 새 호스트에 접근하거나 새 API 메서드를 부르는 변경은 사람 리뷰를 기다린다.
- 설치와 연동 방법이 다양하다
- Linux, Apple Silicon macOS, WSL 2(실험적)에서 Docker·Podman·호스트 가상화로 돌린다.
- Python, TypeScript, Go, Rust SDK와 Helm 배포를 제공한다.
- Kubernetes 배포 시 CNI가 NetworkPolicy를 강제해야 한다.
- 기본 텔레메트리가 켜져 있다
- 운영 카테고리와 횟수만 익명으로 수집한다.
- 샌드박스 이름, 파일 경로, 프롬프트, 자격증명, 모델명은 수집하지 않는다고 밝힌다.
- 게이트웨이에 OPENSHELL_TELEMETRY_ENABLED=false를 설정하면 끌 수 있다.
Community Reactions
- 도메인 제한과 자격증명 교체는 iron proxy로 해결했다는 경험
- 남은 문제는 허용된 도메인으로 데이터를 몰래 조금씩 빼내는 유출이라는 의견이다.
- gh 접근은 프록시로 감싸 포크·PR·이슈 생성까지 통제했다고 한다.
- Anthropic sandbox-runtime도 균형이 좋다는 의견
- 설정이 단순하고 파일시스템·네트워크 제한과 자격증명 마스킹이 된다고 한다.
- 덕분에 Pi를 YOLO 모드로 돌려도 안심된다는 경험이다.
- 다만 xcode/swift, Docker 접근 같은 흔한 작업이 막혀 불편하다고 한다.
- 기본 텔레메트리와 과한 세밀함을 지적하는 의견
- 기본값이 텔레메트리 수집이라는 점이 문제라는 반응이다.
- 통제가 너무 세밀해서 까다로운 엔터프라이즈 요구에만 쓸모 있다는 의견이다.
- 홍보 문구와 컨테이너와의 차이를 의심하는 반응
- 접근을 많이 줄수록 에이전트가 유능해지므로 안전하면서 다 할 수 있다는 문구는 모순이라는 의견이다.
- 그냥 컨테이너를 쓰면 되지 않느냐는 질문과 다른 샌드박스와의 차별점을 묻는 댓글이 있었다.
How to Apply
- 샌드박스를 만들어 에이전트 권한 확인하기
- 오늘 install.sh로 CLI를 설치하고 openshell sandbox create --name demo로 샌드박스를 만든다.
- 공식 Run Your First Agent 튜토리얼대로 OpenCode를 무료 OpenRouter 모델로 돌린다.
- 에이전트가 새 접근을 요구할 때 승인하는 흐름을 직접 확인한다.
- 자격증명을 에이전트 밖으로 빼기
- 에이전트에 API 키를 환경변수로 넘기는 구조를 찾아낸다.
- Providers 기능으로 승인된 엔드포인트에서만 자격증명이 붙게 바꾼다.
- 정책 변경에 사람 승인 단계 두기
- 새 호스트나 새 API 메서드를 여는 정책 변경은 리뷰 대상으로 지정한다.
- advisor와 prover로 변경이 허용할 범위를 먼저 확인한다.
- 코딩 에이전트에 OpenShell 스킬 설치하기
- npx skills add NVIDIA/OpenShell을 실행한다.
- 에이전트에게 CLI 사용, 샌드박스 정책 작성, 게이트웨이 디버깅을 맡긴다.
Try It
# Claude Code에 붙여넣기: OpenShell 정책 초안을 만들게 하는 프롬프트 (OpenShell 스킬 설치 후 사용)
우리 에이전트는 {{에이전트가 하는 일}}을 한다. 접근해야 하는 파일 경로는 {{허용 경로}}, 호출해야 하는 외부 호스트는 {{허용 호스트}}다.
OpenShell 샌드박스 정책을 작성해 줘. 파일시스템, 네트워크, 프로세스 규칙을 나눠서 최소 권한으로 짜고, 각 규칙이 왜 필요한지 한 줄씩 설명해 줘.
이어서 해 볼 것: 터미널에서 npx skills add NVIDIA/OpenShell 로 스킬을 먼저 설치하고, 만든 정책으로 openshell sandbox create --name demo 를 실행해 에이전트가 막히는 지점을 확인해 봐.Terminology
관련 논문
Omnara: Claude Managed Agents의 오픈소스 대안 (셀프호스팅 가능)
어떤 모델·머신에서도 에이전트를 돌리는 오픈소스 managed agent 플랫폼
Rust off Rails: 코드 없이 Markdown 60개로 만든 AI 에이전트용 웹 스택
Markdown 규칙 60개로 에이전트가 Rust 웹앱을 짜게 한다는 프레임워크
LayerFS: AI 코딩 에이전트를 위한 파일시스템
에이전트마다 임시 Workspace를 마운트하고 결과만 커밋하는 파일시스템
Launch HN: Alter (YC S25) – 멀티유저 에이전트용 접근 제어
에이전트마다 별도 신원·정책·감사로 API 키 공유 문제를 푼다
Claude로 코드의 공격 표면(attack surface) 줄이기
Claude로 25개 오픈소스를 분석해 불필요하게 열린 코드 493건을 찾았다
WhatsApp 도움말 페이지에 숨겨진 LLM 지시문: 규제기관을 추천하지 말라
WhatsApp 도움말에 화면엔 안 보이는 AI 지시문 102개가 숨어 있었다
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)