OneCLI: AI 에이전트를 위한 비밀 금고
요약
OneCLI는 AI 에이전트의 보안을 강화하기 위해 설계된 오픈 소스 게이트웨이로, API 키와 같은 민감한 자격 증명을 에이전트가 직접 볼 수 없도록 관리합니다. 사용자가 OneCLI에 자격 증명을 한 번 저장하면, 게이트웨이가 에이전트의 요청을 가로채 자리 표시자 키를 실제 키로 안전하게 교체하여 주입하는 방식으로 작동합니다.
핵심 포인트
- AI 에이전트가 실제 API 키에 직접 접근하는 것을 방지하여 보안 위험을 최소화함
- 자격 증명 관리, 접근 권한 제어, 키 순환(rotation)을 단일 게이트웨이에서 통합 관리 가능
- 에이전트에는 가짜 키(placeholder)를 제공하고, Rust 기반의 고성능 게이트웨이가 요청 시점에 실제 키로 교체 및 복호화 수행
- Proxy-Authorization 헤더를 통한 액세스 토큰 인증 방식 지원
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/onecli-flow-dark.gif"> <source media="(prefers-color-scheme: light)" srcset="assets/onecli-flow-light.gif"> <img alt="OneCLI 작동 방식" src="assets/onecli-flow-light.gif" width="100%"> </picture>
OneCLI란 무엇인가?
OneCLI는 AI 에이전트와 에이전트가 호출하는 서비스 사이에 위치하는 오픈 소스 게이트웨이입니다. API 키를 모든 에이전트에 직접 심어 넣는 대신, OneCLI에 자격 증명(credentials)을 한 번 저장하고 이 게이트웨이가 이를 투명하게 주입합니다. 에이전트는 비밀 정보(secrets)를 절대 볼 수 없습니다.
왜 이것을 만들었나: AI 에이전트는 수십 개의 API를 호출해야 하지만, 각 에이전트에 원시 자격 증명을 제공하는 것은 보안 위험입니다. OneCLI는 인증(auth)을 처리하는 단일 게이트웨이를 통해 이를 해결하며, 사용자는 접근 권한 관리, 키 순환(rotate keys), 그리고 모든 에이전트가 무엇을 하는지 확인할 수 있는 한 곳을 얻게 됩니다.
작동 방식: 실제 API 자격 증명은 OneCLI에 저장하고 에이전트에게는 자리 표시자 키(placeholder keys) (예: FAKE_KEY)를 제공합니다. 에이전트가 게이트웨이를 통해 HTTP 호출을 하면, OneCLI 게이트웨이가 요청을 올바른 자격 증명과 일치시키고, FAKE_KEY를 REAL_KEY로 교체하며, 이를 복호화(decrypts)하여 아웃바운드 요청에 주입합니다. 에이전트는 실제 비밀 정보에 접근하지 않습니다. 단지 정상적인 HTTP 호출을 수행하고 게이트웨이가 교체를 처리할 뿐입니다.
아키텍처
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/onecli-architecture-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="assets/onecli-architecture-light.svg"> <img alt="OneCLI 아키텍처" src="assets/onecli-architecture-dark.svg" width="100%"> </picture>- Rust Gateway: 외부로 나가는 요청을 가로채고 자격 증명 (Credentials)을 주입하는 빠른 HTTP 게이트웨이 (Gateway)입니다. 에이전트는
Proxy-Authorization헤더를 통해 액세스 토큰 (Access Token)으로 인증합니다. - Web Dashboard: 에이전트, 비밀 정보 (Secrets), 권한 (Permissions)을 관리하기 위한 Next.js 앱입니다. 게이트웨이가 각 요청에 대해 어떤 자격 증명을 주입할지 결정할 때 사용하는 API를 제공합니다.
- Secret Store (비밀 정보 저장소): AES-256-GCM 방식으로 암호화된 자격 증명 저장소입니다. 비밀 정보는 요청 시점에만 복호화되며, 호스트 (Host) 및 경로 (Path) 패턴에 따라 매칭된 후 게이트웨이에 의해 헤더 (Headers) 또는 URL 쿼리 파라미터 (URL Query Parameters)로 주입됩니다.
Quick Start (빠른 시작)
OneCLI를 로컬에서 실행하는 가장 빠른 방법은 다음과 같습니다:
curl -fsSL https://onecli.sh/install | sh
또는, 수동 실행을 선호하는 경우:
git clone https://github.com/onecli/onecli.git
cd onecli
docker compose -f docker/docker-compose.yml up -d --wait
**http://localhost:10254**를 열고, 에이전트를 생성한 뒤, 비밀 정보를 추가하고, 에이전트의 HTTP 게이트웨이를 localhost:10255로 지정하십시오.
Features (주요 기능)
- 투명한 자격 증명 주입 (Transparent credential injection): 에이전트는 일반적인 HTTP 호출을 수행하며, 게이트웨이가 인증 (Auth)을 처리합니다.
- 암호화된 비밀 저장소 (Encrypted secret storage): 저장 시 AES-256-GCM 암호화를 적용하며, 요청 시에만 복호화됩니다.
- 호스트 및 경로 매칭 (Host & path matching): 패턴 매칭을 통해 비밀 정보를 올바른 API 엔드포인트로 라우팅합니다.
- 멀티 에이전트 지원 (Multi-agent support): 각 에이전트는 범위가 지정된 권한 (Scoped permissions)을 가진 고유의 액세스 토큰을 부여받습니다.
- 간편한 설정 (Easy setup):
curl -fsSL https://onecli.sh/install | sh명령으로 모든 것(애플리케이션 + PostgreSQL)을 시작할 수 있습니다. - 두 가지 인증 모드 (Two auth modes): 로컬 사용을 위한 단일 사용자 모드(로그인 없음) 또는 팀을 위한 Google OAuth를 지원합니다.
- Rust 게이트웨이 (Rust gateway): HTTPS에 대한 MITM (Man-in-the-Middle) 가로채기 기능을 갖춘 빠르고 메모리 안전한 (Memory-safe) HTTP 게이트웨이입니다.
- Vault 통합 (Vault integration): Bitwarden(또는 기타 비밀번호 관리자)을 연결하여 서버에 비밀 정보를 저장하지 않고도 온디맨드 (On-demand) 자격 증명 주입이 가능합니다.
프로젝트 구조 (Project Structure)
apps/
web/ # Next.js 앱 (대시보드 + API, 포트 10254)
gateway/ # Rust 게이트웨이 (자격 증명 주입, 포트 10255)
...
로컬 개발 (Local Development)
필수 요구 사항 (Prerequisites)
- mise (Node.js, pnpm 및 기타 도구 설치)
- Rust (게이트웨이용)
- Docker (PostgreSQL용)
설정 (Setup)
mise install
pnpm install
cp .env.example .env
...
대시보드는 **http://localhost:10254**에서, 게이트웨이는 **http://localhost:10255**에서 확인 가능합니다.
명령어 (Commands)
| 명령어 | 설명 |
|---|---|
pnpm dev | 개발 모드에서 웹 + 게이트웨이 시작 |
| ... |
설정 (Configuration)
로컬 개발 시 모든 환경 변수는 선택 사항입니다:
| 변수 | 설명 | 기본값 |
|---|---|---|
DATABASE_URL | PostgreSQL 연결 문자열 (Connection string) | .env.example 참조 |
| ... |
기여하기 (Contributing)
기여하기 (Contributing)
여러분의 기여를 환영합니다! 시작하기 전에 우리의 기여 가이드 (Contributing Guide)와 행동 강령 (Code of Conduct)을 읽어주시기 바랍니다.
라이선스 (License)
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기