API Key 鉴权是什么
鉴权分引擎自带与网关统一两层:vLLM 可用 --api-key 开启 Bearer 校验(对应环境变量名以版本文档为准),配置简单;生产环境更推荐由网关统一做鉴权、限流与审计,引擎只监听内网。密钥属于凭证资产,不能进代码仓库、镜像层或前端代码。
基本信息
| 引擎侧 | 启动参数 --api-key,或对应的环境变量(名称以版本文档为准) |
|---|---|
| 调用方式 | 请求头 Authorization: Bearer <KEY> |
| 网关侧 | 统一鉴权、限流、配额、审计与多租户隔离 |
| 密钥管理 | 环境变量或密钥管理服务,禁止硬编码 |
| 轮换方式 | 新旧双 key 并行过渡,确认流量切换后再下线旧 key |
典型使用场景
- 内网多实例:给每个实例配 key,避免同网段任意进程都能调用
- 对外提供 API:网关按 key 做配额与限流,而不是让引擎直面公网
- 多租户场景:按 key 区分租户,便于计量与问题定位
- 审计:记录哪个 key 在什么时间调用了哪个模型
- 排查 401:确认请求头格式、key 拼写与网关透传策略
引擎侧开启与调用
引擎侧开启与调用
# 启动时开启 Bearer 校验(环境变量写法以版本文档为准)
vllm serve <模型路径> --api-key <KEY>
# 携带密钥调用
curl -H "Authorization: Bearer <KEY>" http://127.0.0.1:8000/v1/models
# 校验:不带 key 应返回 401,带错 key 同样是 401,用它区分配置问题与拼写问题
# 生产形态:引擎只监听内网地址,对外只暴露网关端口两层鉴权的分工
| 层级 | 负责什么 | 适用 |
|---|---|---|
| 引擎自带 key | 单实例入口校验 | 内网联调、临时验证 |
| 网关统一鉴权 | 鉴权、限流、配额、审计 | 生产与对外服务 |
| 密钥管理 | 存储、下发与轮换 | 所有环境,尤其多实例 |
把引擎端口直接暴露到公网等于同时失去鉴权、限流与审计三层防护;即便配了 key,也应让公网入口只落在网关上。
key 建议按调用方分别签发,而不是全公司共用一个:一旦需要轮换或吊销,影响面可控,审计日志也能定位到具体来源。