---
title: "자격 증명 프록시"
description: "에이전트가 API 호출을 할 때, 키를 직접 가지고 있어서는 안 돼요."
lang: ko
url: https://clavitor.ai/ko/proxy
markdown: https://clavitor.ai/ko/proxy.md
translation_of: https://clavitor.ai/en/proxy.md
authoritative: false
publisher: Clavitor LLC
---

> This is the Korean translation of [Credential Proxy](https://clavitor.ai/en/proxy.md). The original English text is authoritative; where the two differ, the English version prevails.

# 자격 증명 프록시: 에이전트가 API 호출을 할 때, 키를 직접 가지고 있어서는 안 돼요.

Clavitor Proxy는 AI 에이전트와 에이전트가 호출하는 API 사이에 위치해요. 자격 증명은 네트워크 계층에서 주입되므로 에이전트는 실제 시크릿을 보거나, 저장하거나, 로그에 남기지 않아요. 바이너리 하나, 환경 변수 하나, 코드 변경 제로.

## 이미 직면한 문제

### 환경 변수의 시크릿

에이전트는 환경에서 `OPENAI_API_KEY`를 읽어요. 해당 키는 `/proc`, 크래시 덤프, CI 로그, 에이전트가 호출하는 모든 도구에서 볼 수 있어요. 로그 한 줄만 유출되어도 키가 공개되는 거죠.

### 에이전트 메모리의 시크릿

에이전트가 런타임에 키를 가져오더라도 프로세스가 실행되는 동안 메모리에 키를 보유해요. 스킬이 손상되거나, 프롬프트 인젝션이 발생하거나, 디버그 덤프가 유출되면 키를 쉽게 탈취당할 수 있어요.

### 사용 내역에 대한 감사 부재

API 키가 문자열로 공유되면 어떤 에이전트가 언제, 어떤 목적으로 사용했는지 기록이 남지 않아요. 키가 유출되면 교체하고 무사히 넘어가기만 바랄 뿐이죠. 포렌식 추적 경로도 없어요.

## 겪지 않기를 바라는 문제

### 소스 코드의 API 키

구성 파일에 하드코딩되어 git에 커밋되고, 팀의 모든 개발자와 CI 러너가 클론해요. 공개 포크가 하나만 생겨도 GitHub의 시크릿 스캔 대시보드에 오르거나, 더 나쁘게는 아예 탐지되지 않을 수도 있어요.

### Slack의 자격 증명

"Stripe 키 좀 보내줄래?" DM에 붙여넣으면 영원히 검색 가능하고 모든 규정 준수 아카이브로 내보내져요. Slack은 볼트가 아니에요. 이메일, Google Docs, 모니터에 붙은 포스트잇도 마찬가지죠.

### 모든 노트북의 .env 파일

개발자 12명이면 교체되지 않는 평문 파일에 프로덕션 자격 증명 사본이 12개 생기는 거예요. 노트북 한 대만 도난당하거나, `~/.bash_history`가 유출되거나, 백업 도구가 과하게 작동하면 새벽 2시에 회사 전체 키를 교체해야 해요.

## 에이전트에서 자격 증명을 완전히 분리하세요.

프록시는 에이전트와 API 사이에 위치해요. 에이전트는 시크릿이 들어가야 할 자리에 `clavitor://OpenAI/key` 같은 참조를 작성해요. 프록시는 이를 로컬에서 확인하고 실제 자격 증명을 HTTPS 요청에 주입한 뒤 전달해요. 에이전트 로그에는 자리 표시자만 남고, API는 키를 수신해요. 그 사이 어디에도 저장되지 않아요.

환경 변수도 없고, 메모리에 시크릿도 없으며, 명령줄에 자격 증명도 없어요. 에이전트는 키를 알지 못하므로 키를 유출할 수도, 속아서 키를 노출할 수도 없어요.

```
$ export HTTPS_PROXY=http://127.0.0.1:1983

$ curl -H "Authorization: Bearer clavitor://OpenAI/key" \
    https://api.openai.com/v1/chat/completions

# The proxy resolved the placeholder. The agent never saw sk-EXAMPLE_not_a_real_key.

# Neither did the logs, the crash dump, or the conversation history.

```

HTTPS 호출을 수행하는 모든 에이전트와 호환돼요: Claude Code, Codex, OpenClaw, CrewAI, LangChain, 커스텀 스크립트. 환경 변수 하나만 설정하면 에이전트의 API 호출이 프록시를 통해 흐릅니다. SDK도, 플러그인도, 코드 변경도 필요 없어요.

## 내부 작동 방식

### 요청별 로컬 복호화

프록시는 볼트에서 암호화된 자격 증명을 가져와 디바이스에서 복호화해요. 평문는 하나의 HTTP 요청 동안만 프로세스 메모리에 존재하다가 사라져요. 캐시되지 않고, 디스크에 기록되지도 않아요. 모든 요청은 새로 복호화돼요.

### 필드를 헤더에 매핑

Bearer 토큰, API 키, Basic 인증 등 프록시는 볼트 필드 레이블을 적절한 HTTP 헤더에 자동으로 매핑해요. 또는 에이전트가 `clavitor://` 참조로 정확한 필드를 선택할 수도 있어요. 어느 쪽이든 에이전트가 보지 못한 채 자격 증명이 올바른 위치에 전달돼요.

### 범위, 속도 제한, 감사

볼트는 범위 경계와 속도 제한을 적용해요. 너무 많은 서로 다른 자격 증명에 접근하는 에이전트는 자동으로 잠겨요. 모든 접근은 로그에 기록돼요. 자리 표시자에 에이전트 ID를 포함하면(`clavitor://agentid@Entry/field`) 공유 프록시를 통해 에이전트별 감사 추적과 속도 제한을 적용할 수 있어요.

## 배포

바이너리 하나. 에이전트의 사이드카. 네트워크 인프라 변경 없음.

### 단일 에이전트 호스트

바이너리를 다운로드하고, 등록 토큰으로 `clavitor-proxy init`을 실행한 다음, 에이전트에 `HTTPS_PROXY`를 설정하면 끝나요. 기본적으로 프록시는 `127.0.0.1:1983`에 바인딩되며(단일 에이전트의 사이드카), 프라이빗 네트워크에서 하나의 프록시가 여러 에이전트를 서비스할 때는 `CLAVITOR_PROXY_LISTEN`을 설정해 다른 곳에 바인딩할 수 있어요.

### 다중 에이전트 호스트

각 에이전트는 고유한 사이드카 구성 파일과 함께 자체 바이너리 사본을 가져요. 각 사본에는 고유한 범위, 고유한 속도 제한, 고유한 감사 추적이 적용돼요. 에이전트 A는 에이전트 B의 자격 증명을 볼 수 없어요. 설계 단계부터 격리된 거죠.

### 클라우드 호스팅 프록시는 가치 높은 표적이에요.

클라우드에서 실행되는 모든 자격 증명 프록시(자사의 것이든 타사의 것이든)는 표적이에요. 프록시를 침해하면 모든 고객의 자격 증명을 손에 넣을 수 있죠. 이는 이론적인 위험이 아니에요. 모든 서비스형 자격 증명 프록시의 비즈니스 모델 그 자체예요.

Clavitor의 프록시는 사용자의 인프라에서 실행돼요. 로컬에서 복호화하죠. 자격 증명은 하나의 요청이 처리되는 동안만 프로세스 메모리에 존재해요. 평문 키를 보관하는 클라우드 서비스도, 시크릿을 제공하는 API 엔드포인트도 없어요. 침해할 대상 자체가 없어요.

## 에이전트는 이미 API 호출을 수행하고 있어요. 에이전트를 정해진 영역 안에 두세요.

사용자의 볼트, 사용자의 범위, 사용자의 감사 추적. 프록시는 에이전트 코드 변경 없이 네트워크 계층의 적용 지점을 추가해요.
[시작하기](https://clavitor.ai/ko/checkout)
[기술 심층 분석 →](https://clavitor.ai/ko/proxy/technical)
