AI 에이전트에게 API 키를 주지 않고 일 시키는 법 — 오픈소스 게이트웨이 OneCLI
핵심 요약 (TL;DR)
에이전트에게 .env를 통째로 넘기는 대신, 에이전트와 외부 서비스 사이에 '문지기'를 세우는 방법이 있습니다. 오픈소스 크리덴셜 게이트웨이 OneCLI는 에이전트에게 플레이스홀더만 주고, Rust 프록시가 요청을 가로채 권한 검증 후 실제 키로 치환합니다. 2026년 3월 공개 후 GitHub 스타 2,822개(07-26 기준)를 모았습니다.
Claude Code에 .env 파일을 물려주고 배포까지 맡겨본 적 있으신가요? 편하긴 한데 마음 한구석이 찜찜했을 겁니다. 에이전트가 프롬프트 인젝션에 당하면 내 AWS 키는 어디로 갈까 — 이 질문에 구조적인 답을 내놓은 팀이 있습니다. 오픈소스 DB 도구 ChartDB(GitHub 2만+ 스타)를 만들던 Jonathan Fishner와 Guy Ben-Aharon 듀오가 에이전트 보안으로 피벗해 만든 OneCLI입니다(https://github.com/onecli/onecli).
키를 '주는' 순간 왜 이미 진 게임인가요?
에이전트에게 키를 준다는 건, 에이전트가 읽는 모든 텍스트 — 웹페이지, 이슈, 코드 주석 — 가 그 키에 손댈 수 있다는 뜻입니다. 악성 지시 한 줄이 섞여 들어오면 "키를 어딘가로 보내라"는 명령이 되니까요. 금고 비밀번호를 아르바이트생에게 알려주는 것과, 아르바이트생이 요청하면 매니저가 확인 후 금고를 열어주는 것의 차이를 생각해보세요.
OneCLI는 어떻게 작동하나요?
핵심은 에이전트가 진짜 키를 본 적이 아예 없다는 것입니다.
에이전트: {{STRIPE_KEY}} 같은 플레이스홀더로 API 요청
│ (HTTPS_PROXY 경유)
▼
OneCLI 게이트웨이(Rust): 정책 검증 → 실제 키로 치환 → 외부 서비스로 전달
키는 AES-256-GCM으로 암호화돼 저장되고, 민감한 작업에는 네트워크 레이어에서 사람의 승인(human-in-the-loop)을 강제할 수 있습니다. HTTPS_PROXY 환경변수만 잡아주면 Claude Code든 다른 프레임워크든 그대로 동작한다는 게 이 설계의 매력입니다.
"키 하나를 다른 키로 바꾼 것 아니냐"는 반론은요?
HN 스레드(https://news.ycombinator.com/item?id=49023427, 07-26 기준 105포인트)에서 실제로 나온 반론입니다. 맞는 지적입니다. 프록시에 접근할 권한 자체는 여전히 에이전트에게 있으니까요. 다만 달라지는 게 세 가지 있습니다. 유출돼도 진짜 키가 아니라는 점, 모든 요청이 게이트웨이를 지나며 기록된다는 점, 위험한 호출 앞에 사람 승인 게이트를 세울 수 있다는 점. 완벽한 방패가 아니라 유출 반경을 줄이는 구조인 거죠. 스레드에서는 Infisical, Varlock 같은 대안과의 비교도 활발했으니 함께 살펴보세요.
FAQ
Q. .env를 에이전트와 공유하면 왜 위험한가요?
에이전트가 처리하는 외부 텍스트에 악성 지시가 섞이면(프롬프트 인젝션) 키가 그대로 유출될 수 있습니다.
Q. OneCLI는 유료인가요?
오픈소스입니다. 2026년 3월에 공개됐고, 07-26 기준 GitHub 스타 2,822개입니다.
Q. 어떤 에이전트와 같이 쓸 수 있나요?
HTTPS_PROXY를 지원하는 환경이면 프레임워크를 가리지 않고 적용할 수 있다는 게 제작팀의 설명입니다.
에이전트 보안의 방향은 "더 조심히 키 주기"가 아니라 "애초에 안 주기"로 이동하고 있습니다. 다음 액션은 간단합니다. 지금 에이전트에 물려둔 .env에 뭐가 들어 있는지 열어보고, 진짜 프로덕션 키가 있다면 OneCLI 저장소부터 둘러보세요. 문지기를 세우는 건 키를 도둑맞은 다음이 아니라 그 전이어야 하는 거니까요.
댓글 0
아직 댓글이 없습니다