LiteLLM

LiteLLM 10강

[거버넌스] 가상 키 & 예산·RBAC

게이트웨이를 여럿이 쓰면 "누가 얼마나 쓰는가"를 통제해야 한다. LiteLLM은 마스터 키로 가상 키(virtual key)를 발급하고, 키마다 예산·속도 한도·허용 모델을 건다. 지출이 상한을 넘으면 자동 차단된다.

LiteLLM 10강 구성도

이 강의 목표는 게이트웨이에 마스터 키·DB를 붙이고, 팀·유저별 가상 키를 발급·관리하는 것이다.

1. 마스터 키 · DB 설정

가상 키·지출을 저장하려면 Postgres가 필요하다.

general_settings:
  master_key: sk-1234                       # 관리자 키(env 권장)
  database_url: os.environ/DATABASE_URL     # Postgres

2. 가상 키 발급

curl http://localhost:4000/key/generate \
  -H "Authorization: Bearer sk-1234" \
  -H "Content-Type: application/json" \
  -d '{
        "models": ["gpt-4o"],
        "max_budget": 10,
        "duration": "30d",
        "tpm_limit": 100000,
        "rpm_limit": 60,
        "metadata": {"team": "network"}
      }'
# → {"key": "sk-abc...", ...}

3. 발급 키로 호출

발급된 sk-abc...를 각 팀·앱에 나눠준다. 이 키로 부른 호출은 예산·한도가 자동 적용되고, 지출이 팀에 귀속된다.

client = OpenAI(base_url="http://localhost:4000", api_key="sk-abc...")

핵심 명령·용어

이름
master_key 관리자 전용 최상위 키
/key/generate 가상 키 발급 엔드포인트
max_budget 키 누적 지출 상한($)
tpm_limit/rpm_limit 분당 토큰·요청 한도

예제

# 팀 단위 생성 후, 그 팀에 속한 키 발급
curl http://localhost:4000/team/new -H "Authorization: Bearer sk-1234" \
  -d '{"team_alias":"network","max_budget":100}'
# 지출 조회
curl http://localhost:4000/spend/logs -H "Authorization: Bearer sk-1234"

해설) 팀→키 계층으로 예산을 나누면, 팀 전체 상한과 키별 상한을 동시에 걸 수 있다. /spend/logs로 실시간 사용량을 감사한다.

댓글 0