OpenSource-Hub
O

OpenShell

SHA-256
16.7k stars·AI 생산성·SHA-256 체크섬 확인됨

NVIDIA가 오픈소스로 공개한 AI 에이전트 보안 런타임: 커널 수준 샌드박스가 파일과 네트워크를 제어하고, 자격 증명 프록시 주입을 통해 에이전트가 실제 키에 접근할 수 없습니다.

스마트 다운로드

Download 버전 다운로드

v0.1.4 · 72.5 MB

AI 에이전트에 보안 샌드박스를 씌우는 런타임.

주요 기능

  • 커널 수준 샌드박스 격리, 파일 접근, 시스템 콜 및 네트워크 연결에 대해 정책을 건별로 실행
  • 정책 변경은 먼저 형식 검증을 거치며, 고위험 권한 부여를 자동으로 표시하고 수동 승인을 대기
  • 자격 증명은 게이트웨이 프록시를 통해 주입되며, 에이전트는 실제 키에 절대 접근할 수 없음
  • GPU 샌드박스, Python/TypeScript/Go/Rust SDK 및 Kubernetes Helm 배포 지원

할 수 없는 것

  • •Windows는 WSL2만 지원하며 실험적인 단계이고, 네이티브 Windows 버전은 없습니다. 이는 바로 사용할 수 있는 독립 애플리케이션이 아니며, 반드시 Docker, Podman 또는 호스트 가상화에 의존해야 합니다. 기본 샌드박스는 최소화된 Ubuntu로 어떠한 에이전트도 포함되어 있지 않으며, 직접 모델을 연결하고 정책을 구성해야 합니다. 익명 텔레메트리는 기본적으로 활성화되어 있으며, OPENSHELL_TELEMETRY_ENABLED=false로 끌 수 있습니다. 이는 만능이 아니며, 정책을 너무 느슨하게 구성하면 여전히 에이전트가 과도한 권한을 얻을 수 있고, Kubernetes 배포는 CNI가 NetworkPolicy를 지원해야 합니다.

사용 사례

  • OpenCode 등 AI 코딩 에이전트를 로컬에서 안전하게 실행하고, 파일 읽기·쓰기와 패키지 설치를 안심하고 맡기기
  • 기업에서 자율 에이전트를 대량 배포하고, 각 에이전트의 권한을 중앙에서 승인 및 감사
  • 에이전트가 서드파티 API를 호출하도록 하되, 실제 자격 증명은 항상 게이트웨이가 관리하여 외부에 유출되지 않음

상세 설명

OpenShell은 NVIDIA가 오픈 소스로 공개한 자율 AI 에이전트 보안 런타임입니다. 일반적인 Docker 샌드박스나 E2B가 격리만 제공하는 것과 달리, 두 가지 독특한 장점이 있습니다. 커널 계층에서 모든 파일 접근, 시스템 콜 및 네트워크 연결에 대해 정책 제어를 수행하고, 정책 변경 전에 형식적 검증을 통해 고위험 권한 부여를 표시하여 사람의 승인을 기다립니다. 또한 게이트웨이를 통해 자격 증명을 프록시하여 승인된 엔드포인트로 향하는 요청에만 키를 주입하므로, 에이전트는 실제 자격 증명에 절대 접근할 수 없습니다. 이 프로젝트는 명령줄 도구, 선언적 파일/네트워크/프로세스 정책, GPU 샌드박스, Python/TypeScript/Go/Rust SDK 및 Kubernetes Helm 배포를 제공하며, 개인이 로컬에서 프로그래밍 에이전트를 안전하게 실행하기에도 적합하고 기업이 대규모 에이전트 클러스터를 통합 관리하기에도 적합합니다. 익명 텔레메트리는 기본적으로 활성화되어 있으며, 원클릭으로 끄거나 컴파일 시 완전히 제거할 수 있습니다.

문제 해결 & FAQ (2)

설정
OpenShift에서 OpenShell 샌드박스 서비스 계정에 privileged SCC가 필요합니까?

아니요. SCC 인식 UID 확인 기능이 추가된 이후(PR #3110 및 #4054의 annotation-wait 수정 포함), 대부분의 배포에서 openshell-sandbox에 대한 privileged SCC 권한 부여는 더 이상 필요하지 않습니다. Kubernetes 드라이버는 네임스페이스의 sa.scc.uid-range annotation을 읽어 해당 범위에서 샌드박스 pod에 UID를 할당하므로(예: 범위 1001150000/10000에서 runAsUser: 1001150000), pod는 privileged 권한 부여 없이도 기본 restricted-v2 SCC admission을 충족합니다.

권한 부여 없이 배포하려면:
1. values-openshift-scc.yaml overlay를 사용해 Helm chart로 게이트웨이를 설치합니다. 이 overlay는 하드코딩된 runAsUser/fsGroup을 null로 설정하여 restricted-v2가 네임스페이스에 할당된 UID 범위를 주입할 수 있게 합니다.
2. oc adm policy add-scc-to-user privileged -z openshell-sandbox를 실행하지 마세요. oc get scc privileged -o jsonpath='{.users}'로 해당 SA에 대한 항목이 없는지 확인하세요.
3. 샌드박스 생성/실행/삭제는 restricted-v2 하에서 정상적으로 동작하며, 프로세스는 예상되는 SELinux container_t 레이블로 실행됩니다.

대체 방안(명시적 권한 부여가 여전히 필요할 수 있음): 고정 UID에 의존하는 워크로드(예: e2e/python/Dockerfile.workload처럼 파일을 UID 1000으로 소유하는 이미지)는 대신 네임스페이스에 할당된 UID로 실행됩니다. 이러한 경우에는 sandbox_uid를 명시적으로 설정하거나 해당 특정 워크로드에 대해 SCC 권한 부여를 유지하세요. 이전 문서(debug skill skills/debug-openshell-cluster/SKILL.md 및 e2e/with-kube-gateway.sh)는 이 수정 이전에 작성되었으며 여전히 권한 부여가 필요하다고 기술하고 있다는 점에 유의하세요.

원본 Issue #4808
문제 해결
첫 번째 Kubernetes 컨포먼스 테스트가 게스트 부팅 직후 워크로드 Pod를 기다리는 중 타임아웃되는 이유는 무엇이며, 어떻게 해결할 수 있나요?

원인: conformance 플레이북은 각 게스트 부팅 후 게이트웨이 연결만 대기하지만, 게이트웨이 연결과 controller Deployment 가용성만으로는 Agent Sandbox 워크로드 컨트롤러가 Pod를 생성할 수 있음이 증명되지 않습니다. 새로 부팅한 후에는 컨트롤러가 아직 복구 중일 수 있습니다 — Kubernetes API 인증서 검증 오류로 재시작한 후 leader election을 대기하는 동안 — 워크로드 Pod를 reconcile하기 전까지 약 11초의 공백이 남습니다. 그러면 첫 번째 샌드박스 생성이 30초 타임아웃에 걸리는 반면 이후 시나리오들은 통과합니다.

우회 방법: CI lane을 다시 실행합니다. 이 실패는 간헐적이며 변경 없이 재실행하면 대개 통과하지만, CI 리소스를 낭비하게 됩니다.

영구 수정: 각 게스트 부팅 후 어떤 시나리오든 실행하기 전에 컨트롤러 소유 Pod 생성을 확인하는 시간 제한(bounded) readiness check를 추가합니다. probe Pod가 실제로 실행되거나 이미지를 pull할 수 없도록 구성하고(gated 상태 유지), 성공과 실패 양쪽 모두에서 정리합니다. readiness 실패 시 conformance를 건너뛰고 진단 정보를 수집합니다: 컨트롤러 상태, leader leases, 이벤트, 그리고 제한된 시작 로그와 최근 컨트롤러 로그. 프로덕션 프로비저닝 데드라인은 변경하지 마십시오.

로컬 재현 방법: nix run .#tmachine -- test ubuntu-k3s k3s conformance를 실행한 다음, 게이트웨이 연결 타이밍을 컨트롤러 재시작, leader leases, 첫 번째 워크로드 Pod 생성과 비교합니다.

원본 Issue #4675

태그

ai-agentsandboxsecurityllm-runtimenvidiapolicy-enforcement

시작하기

1

설치 프로그램 다운로드

위 버튼을 클릭하여 시스템에 맞는 설치 프로그램을 다운로드

2

소프트웨어 설치

배포판에 맞는 패키지를 설치 (dpkg / rpm / AppImage)

3

시스템이 Linux, Apple Silicon Mac 또는 WSL2가 포함된 Windows인지 확인하고 Docker 또는 Podman을 미리 설치하세요

4

터미널에서 curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh를 실행하여 명령줄 도구와 로컬 게이트웨이를 설치하세요

5

openshell sandbox create --name demo를 실행하여 첫 번째 샌드박스를 생성하세요

설치 가이드
  1. 시스템이 Linux, Apple Silicon Mac 또는 WSL2가 포함된 Windows인지 확인하고 Docker 또는 Podman을 미리 설치하세요
  2. 터미널에서 curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh를 실행하여 명령줄 도구와 로컬 게이트웨이를 설치하세요
  3. openshell sandbox create --name demo를 실행하여 첫 번째 샌드박스를 생성하세요
파일 무결성

SHA-256 체크섬 확인됨

GitHub 공식 Release 페이지에서 추출된 체크섬

SHA256 체크섬

43f43554bcaabff2a8147444410d1ad0b7f51bdae7589c2d249982bc8b260b91

이 체크섬은 GitHub Release 페이지에서 추출되었습니다. 다운로드 후 파일 무결성을 확인하세요.

이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.

오픈소스 투명성

GitHub 소스 보기
환경 가이드

제거 정보

공식 측에서는 원클릭 제거 스크립트를 제공하지 않습니다. 수동 제거 단계: openshell 명령줄 바이너리 파일을 삭제하고, ~/.openshell 설정 디렉터리를 삭제하고, 로컬 게이트웨이 컨테이너를 중지 및 제거한 후, Docker/Podman에서 샌드박스 이미지를 정리합니다. Helm을 통해 배포한 경우 해당 네임스페이스에서 helm uninstall을 실행합니다.

추가 의존성 없음

다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.

프로젝트 정보
라이선스Apache-2.0
마지막 업데이트2026-10-22 17:46:23
GitHub 저장소공식 웹사이트

문제 발생? 아래 FAQ 확인

2 FAQs

유사한 프로젝트