
agent-vault-proxy v1.1.1
AI 에이전트 및 이를 통해 라우팅하는 다른 모든 프로세스를 위한 Just-in-time API 키: 호출자는 항상 플레이스홀더만 볼 수 있습니다.
Keys on the Wire
당신의 AI 에이전트는 API 키를 절대 보유하지 않습니다. 플레이스홀더를 보내고, 실제 비밀값은 전송 중에 교체됩니다.
자격 증명 탈취 도구(Shai-Hulud 및 유사 도구)와 프롬프트 인젝션 에이전트가 당신의 비밀을 유출하는 것을 차단합니다. 손상된 에이전트는 가져갈 것이 없습니다.
작동 방식
- 에이전트가 플레이스홀더를 포함한 요청을 보냅니다. 실제 키가 아닙니다.
- Keys on the Wire가 전송 중에 볼트에서 실제 비밀값을 교체합니다.
- 에이전트는 키를 절대 볼 수 없습니다. 유출할 것도, 훔칠 것도 없습니다.
내부적으로는 루프백 HTTPS 프록시입니다. 각 자격 증명을 볼트에서 적시에 가져와 나가는 요청에 주입하므로, 호출 프로세스(에이전트 또는 이를 통해 라우팅하는 모든 것)는 실제 바이트를 절대 보유하지 않습니다.
볼트 백엔드: macOS Keychain, Bitwarden Secrets Manager, Google Secret Manager, AWS Secrets Manager, static(볼트 없이 테스트용) 및 env. Mac에서 Keychain 백엔드는 클라우드 볼트 계정과 추가 의존성이 필요 없습니다. 비밀은 이미 있는 곳에 그대로 유지됩니다. (kow setup은 여전히 기본적으로 Bitwarden을 사용합니다. 원하는 백엔드를 전달하세요.) 어댑터 아키텍처를 참조하세요.
직접 확인하기
빠른 시작
1. 설치 (Linux pipx, macOS brew):
pipx install 'keys-on-the-wire[bitwarden]'
# macOS: brew install inflightsec/keys-on-the-wire/keys-on-the-wire
sudo kow setup --bws
2. 스킬 설치 — 에이전트가 바인딩을 작성하도록 합니다:
/plugin marketplace add inflightsec/keys-on-the-wire
/plugin install kow@keys-on-the-wire
3. 서비스 브로커링. *"Stripe API를 Keys on the Wire로 라우팅해줘"*라고 말하세요. 스킬이 플레이스홀더를 생성하고 볼트에 붙여넣을 정확한 메모를 출력합니다. 키는 절대 볼 수 없습니다.
4. 실제 키 추가 — 해당 메모와 함께 볼트에 추가한 다음, 에이전트를 프록시로 라우팅하세요:
kow env && kow run claude
완료. 에이전트는 플레이스홀더만 보내고, Keys on the Wire가 전송 중에 실제 키를 교체합니다.
처음이신가요? 빠른 시작 가이드가 첫 실행을 전체적으로 안내하며, 사전 요구 사항이 볼트 설정을 다룹니다. kow run 대신 셸 환경 변수를 선호하시나요? 사용법을 참조하세요.
프로덕션 키에 적용하기 전에
- 단일 프로세스 뒤에서 시험하세요.
kow run -- <command>는 해당 프로세스에만 프록시와 CA 변수를 설정합니다. 로그인 셸은 이를 상속하지 않습니다. 단일 프로세스로 범위 제한. - Fail-closed가 유일한 모드입니다. kow가 다운되면 라우팅된 호출은 실패합니다. 거부하는 바인딩은 요청을 그대로 통과시키지 않고 503을 반환합니다.
- 도난은 막지만 오용은 막지 않습니다. kow는 에이전트의 컨텍스트에서 키를 제거합니다. API가 호출되는 이유를 판단하지는 않습니다.
methods:및paths:로 바인딩을 좁히는 것이 수단이며, 이는 강제됩니다. 당신에게 적합한가요?가 전체 경계를 설명합니다. - 정적 헤더를 넘어선 인증 지원: OAuth2 리프레시 및 클라이언트 자격 증명, JWT bearer, GitHub App, HMAC 및 AWS SigV4, Google, Microsoft, Auth0, Slack, Atlassian 및 Okta용 프리셋 포함.
MCP 서버 브로커링
각 MCP 서버는 클라이언트 구성에 장기 토큰을 평문으로 유지하며, 클라이언트가 로드하는 다른 모든 서버가 이를 읽을 수 있습니다. kow mcp install은 해당 상시 비밀을 플레이스홀더로 교체하고 서버의 외부 트래픽을 프록시로 라우팅합니다:
kow mcp install github --host api.github.com --env-var GITHUB_PERSONAL_ACCESS_TOKEN \
--server-cmd "npx -y @modelcontextprotocol/server-github"
볼트 메모와 정확한 claude mcp add --env 명령을 출력합니다. 설계 및 위협 모델: ADR-0040.
바인딩은 한 줄입니다
자격 증명 온보딩은 수동으로 작성하는 YAML이 아닙니다. 번들된 kow 스킬이 인증 형태와 호스트를 묻고, 비밀의 Notes 필드에 붙여넣을 내용을 정확히 알려줍니다:
# kow-binding
api.acme.com
해당 마커 줄이 바인딩으로 만드는 요소입니다. 이 줄이 없으면 메모는 일반 사람이 읽는 설명으로 남아 절대 파싱되지 않습니다 (ADR-0025). 어시스턴트가 제안하고, 당신이 적용합니다. 비밀을 보거나 저장하지 않습니다.
문서
여기서 시작 — 평가 중이라면 당신에게 적합한가요? · 볼트 설정은 사전 요구 사항 · 10분 첫 실행은 빠른 시작.
이해하기 — 플레이스홀더, 바인딩, CA 및 fail-closed를 쉬운 용어로 설명하는 개념 · 위협 모델, G1~G9 불변 조건 및 잔여 위험을 다루는 아키텍처.
설치 및 운영 — Linux · Docker · macOS · 사용법 · 단일 프로세스 · Linux 격리 · macOS 격리 · Google Secret Manager
참조 — bindings.example.yaml은 전체 구성 스키마 · 볼트 백엔드 및 추가 방법은 어댑터 아키텍처 · Vault Agent, Doppler, op run 등과의 비교 · CHANGELOG · SECURITY · CONTRIBUTING · CREDITS
오픈 소스, 락인 없음
모든 기능은 Apache-2.0 라이선스로 이 저장소에 있습니다. 유료 티어, 호스팅 서비스, 텔레메트리가 없습니다. 프록시는 절대 외부로 통신하지 않습니다. 유일한 외부 연결은 당신의 볼트와 에이전트가 호출하는 업스트림 API뿐입니다. 대안이 당신의 환경에 더 적합하다면 그것을 사용하세요.
선택적 의존성 하나는 오픈 소스가 아닙니다. Bitwarden 백엔드의 bitwarden-sdk로, 해당 백엔드를 사용할 때만 설치합니다. LICENSE 및 NOTICE를 참조하세요.