架构概览
数据库设计
api_master_keys
| 字段 | 类型 | 说明 |
|---|
| id | VARCHAR(36) PK | UUID |
| provider | VARCHAR(50) | openai/anthropic/google/deepseek/etc |
| key_name | VARCHAR(100) | 备注名称 |
| api_key_enc | TEXT | AES-256-GCM 加密密文 |
| status | VARCHAR(20) | active/revoked |
| created_at | DATETIME(3) | |
litellm_virtual_keys
| 字段 | 类型 | 说明 |
|---|
| id | VARCHAR(36) PK | UUID |
| master_key_id | VARCHAR(36) | 关联主密钥 |
| key_alias | VARCHAR(100) | 备注 |
| virtual_key_masked | VARCHAR(50) | 脱敏展示(sk-xxxx****xxxx) |
| litellm_key_hash | VARCHAR(200) | LiteLLM 内部 key_name |
| budget_usd | DECIMAL(10,4) | 预算上限(0=不限) |
| assigned_instance_id | VARCHAR(100) | 关联 OC 实例 |
| status | VARCHAR(20) | active/revoked/expired |
| created_at | DATETIME(3) | |
| expires_at | DATETIME(3) NULL | |
Admin API 接口
| 方法 | 路径 | 说明 |
|---|
| GET | /api/v1/api-keys | 主密钥列表(masked) |
| POST | /api/v1/api-keys | 录入主密钥 |
| DELETE | /api/v1/api-keys/:id | 撤销主密钥(同步 revoke 子Key) |
| GET | /api/v1/virtual-keys | 子Key 列表 |
| POST | /api/v1/virtual-keys/generate | 生成子Key(调用 LiteLLM) |
| POST | /api/v1/virtual-keys/:id/assign | 分配到 OC 实例 |
| DELETE | /api/v1/virtual-keys/:id | 撤销子Key(同步 LiteLLM) |
安全策略
- 加密:主密钥 AES-256-GCM,密钥存 systemd EnvironmentFile
- 脱敏:所有接口返回时只显示
- 撤销级联:删主密钥 → 自动撤销所有关联 virtual keys
- 审计:绑定/撤销操作写 audit_logs
前端页面
路由:
Tab 1「主密钥」:表格 + 录入表单(provider/名称/key),key 仅在录入时可见
Tab 2「子Key管理」:表格(alias/master/预算/关联实例/状态)+ 生成/分配/撤销操作
OC 实例详情:展示当前绑定的 virtual key(脱敏)+ 快捷重新分配入口