本地模型服务团队权限配置指南
把本地模型服务的网络入口、登录身份、调用密钥与 Kubernetes 权限分层配置;LiteLLM 虚拟密钥依赖 Postgres,可用独立密钥、RBAC 边界和运行指标建立可复核的发布、调用及权限审计流程。
本地模型服务团队权限配置的核心,是把网络可达性、登录身份、调用密钥、Kubernetes 资源权限和监控查看权限分层,并为每层指定负责人。私有化部署按“网络—认证—授权—调用—审计”推进:先缩小入口,再签发个人或团队密钥,最后核对服务状态与资源边界。
私有化部署的权限边界怎么拆
下面是内部职责模板,不是任何产品的默认角色:平台负责人维护入口与身份配置,发布人员处理目标工作负载,应用负责人管理调用凭据,观察人员只接收运行状态。兼任多个角色的人也应分开使用账号和凭据。
验收时逐项确认谁能到达入口、通过登录、修改目标 namespace、使用指定 key 调用和查看指标;任何答案超出职责,就回收对应权限。
登录层:先认证,再把请求交给模型网关
在 Nginx 集成中,OAuth2 Proxy 的 Nginx 集成文档说明,auth_request 会调用 OAuth2 Proxy 的 /auth;该端点只返回 202 Accepted 或 401 Unauthorized,不会代理业务请求。此集成还要求 oauth2-proxy 设置 --reverse-proxy。
/auth
202 Accepted
401 Unauthorized
--reverse-proxy
验收要覆盖可接受与拒绝两条路径:前者继续进入后续网关,后者停在 401。不要把 /auth 当成模型 API,也不要为了排障绕过身份层直连 LiteLLM。
调用层:管理员密钥与成员密钥分开
按 LiteLLM 的 config.yaml 文档,文档列出的顶层区块包括 model_list、router_settings、litellm_settings、general_settings 和 environment_variables;general_settings 承载 master_key 等服务器设置,api_key 可写为 os.environ/YOUR_VALUE,litellm_params 中的 rpm 用于限制单个 deployment 的每分钟请求。代理按配置文件启动:
litellm --config /path/to/config.yaml
主密钥只放在受控配置中:
general_settings:
master_key: sk-YOUR_VALUE
rpm 是 deployment 级限制,不是个人或团队预算。
若启用虚拟密钥,LiteLLM 的 Virtual Keys 文档要求 Postgres 数据库和 DATABASE_URL;master_key 是用于创建其他密钥的代理管理员密钥,必须以 sk- 开头,可设置在 general_settings:master_key 或 LITELLM_MASTER_KEY。创建密钥和查询 spend 使用以下端点:
POST /key/generate
/key/info
/user/info
/team/info
管理员密钥不进入普通调用链。为成员或团队分别生成虚拟密钥,并在内部台账记录归属;几个信息端点用于复核 key、user 和 team 的 spend,不应据此宣称已经取得完整请求审计。具体创建请求字段以当前接口文档为准。
发布层:Kubernetes 权限只给到必要范围
Kubernetes RBAC 文档说明,权限只会叠加,没有 deny 规则;Role 限定在 namespace,ClusterRole 不限定 namespace:
Role
ClusterRole
发布人员应使用目标 namespace 的 Role;只有确实需要跨 namespace 操作的管理员才评估 ClusterRole;应用调用人员和指标观察人员不获得发布写权限。由于 RBAC 授权只增不减,撤销超额能力时应移除已有授权,不能依靠一条“拒绝规则”抵消。
验收时既确认发布人员能在目标 namespace 操作,也确认他们在其他 namespace 没有同等发布能力。
验证层:把接口结果和运行指标对上
完成配置后,从外向内检查:登录身份是否先被接受;普通成员是否只能使用被分配的虚拟密钥;发布权限是否只落在目标 namespace;指标入口是否与发布入口分开。撤销测试账号后,还要再次确认对应路径已被拒绝。
vLLM 指标文档说明,OpenAI-compatible API server 在 /metrics 暴露指标:
/metrics
vLLM 的指标列表把 vllm:num_requests_running 定义为模型执行批次中的请求数,把 vllm:num_requests_waiting 定义为等待处理的请求数:
vllm:num_requests_running
vllm:num_requests_waiting
这两个 gauge 用于观察请求状态,不替代身份与密钥归属复核。上述指标说明没有规定 /metrics 的身份认证方式;对外开放前应按当前版本确认认证要求,并在入口层限制可达范围。
常见出错点
常见错误包括:把 /auth 当作业务接口;忘记核对 --reverse-proxy;把管理员密钥发给所有人;未准备 Postgres 就启用虚拟密钥;把 deployment 级 rpm 当成个人预算;依赖不存在的 deny;以及只检查正常调用能否成功,却未验证错误身份和越权发布已被挡住。
把验收结果按“角色—入口—密钥归属—namespace—可见指标—撤销结果”记录,人员转岗时同步回收凭据与授权。
本文步骤依据正文所链接的官方文档整理,使用前请按当前版本核对。