402 lines
16 KiB
Markdown
402 lines
16 KiB
Markdown
# ToS 合规引擎设计章节
|
||
|
||
> 本章节为 `llm_gateway_subapi_evolution_plan_v2_2026-03-17.md` 中 S4 阶段的补充设计,专门针对供应商服务条款(Terms of Service, ToS)合规风险进行系统化设计。
|
||
|
||
---
|
||
|
||
## 1. 合规背景与目标
|
||
|
||
### 1.1 合规必要性
|
||
|
||
LLM 供应商对其 API 服务有严格的使用条款限制,违规使用可能导致:
|
||
|
||
| 风险类型 | 后果 | 严重程度 |
|
||
|----------|------|----------|
|
||
| 账户封禁 | 供应方账号被封,平台服务中断 | 严重 |
|
||
| API 限流 | 关键供应商降低可用配额 | 高 |
|
||
| 法律风险 | 违反 ToS 可能涉及法律纠纷 | 高 |
|
||
| 财务损失 | 供应商罚款或追偿 | 中 |
|
||
| 声誉损害 | 合规问题被公开影响品牌 | 中 |
|
||
|
||
### 1.2 合规目标
|
||
|
||
1. **ToS 规则覆盖率**:已接入供应商 = 100%
|
||
2. **高风险策略误放行率**:接近 0(以红线规则为硬约束)
|
||
3. **合规审计覆盖率**:关键管理操作 = 100%
|
||
4. **合规事件响应时间**:<= 1 小时
|
||
|
||
---
|
||
|
||
## 2. ToS 合规引擎架构
|
||
|
||
### 2.1 整体架构
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ ToS 合规引擎 │
|
||
├─────────────────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||
│ │ 请求入口 │───▶│ 规则匹配 │───▶│ 策略执行 │───▶│ 审计记录 │ │
|
||
│ │ (Ingress) │ │ (Matcher) │ │ (Executor) │ │ (Audit) │ │
|
||
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||
│ │ │ │ │ │
|
||
│ ▼ ▼ ▼ ▼ │
|
||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||
│ │ 规则配置中心 │ │
|
||
│ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │
|
||
│ │ │ 供应商 │ │ 使用场景 │ │ 地区 │ │ 模型 │ │ │
|
||
│ │ │ 规则库 │ │ 规则库 │ │ 规则库 │ │ 规则库 │ │ │
|
||
│ │ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │
|
||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.2 核心组件
|
||
|
||
| 组件 | 职责 | 性能要求 |
|
||
|------|------|----------|
|
||
| **规则匹配器** | 根据请求上下文匹配适用的 ToS 规则 | P95 <= 5ms |
|
||
| **策略执行器** | 执行拦截/告警/放行动作 | P95 <= 2ms |
|
||
| **审计记录器** | 记录所有合规决策和操作 | 异步,不阻塞主流程 |
|
||
| **规则配置中心** | 管理 ToS 规则生命周期 | 支持热更新 |
|
||
|
||
### 2.3 执行位置
|
||
|
||
| 阶段 | 位置 | 动作 |
|
||
|------|------|------|
|
||
| **前置拦截** | API Gateway 入口 | 硬性规则拦截(不调用上游) |
|
||
| **请求转发** | Provider Adapter 层 | 软性规则告警 |
|
||
| **响应处理** | Billing Engine | 异常检测与追溯 |
|
||
| **后置审计** | 异步任务 | 合规审计与报告 |
|
||
|
||
---
|
||
|
||
## 3. 合规规则体系
|
||
|
||
### 3.1 规则分类
|
||
|
||
```
|
||
ToS 规则体系
|
||
│
|
||
├── 🔴 红线规则(Red Line)- 严格拦截
|
||
│ ├── 账号共享禁令
|
||
│ ├── 转售禁令
|
||
│ ├── 商业用途限制
|
||
│ └── 地区访问限制
|
||
│
|
||
├── 🟡 黄线规则(Yellow Line)- 告警+人工复核
|
||
│ ├── 使用量异常
|
||
│ ├── 调用模式异常
|
||
│ ├── 新型使用场景
|
||
│ └── 未明确允许的用途
|
||
│
|
||
└── 🟢 绿线规则(Green Line)- 通过
|
||
├── 合规使用场景
|
||
├── 标准 API 调用
|
||
└── 已在白名单的场景
|
||
```
|
||
|
||
### 3.2 红线规则(严格拦截)
|
||
|
||
以下规则为硬性约束,任何匹配立即拦截:
|
||
|
||
| 规则ID | 规则名称 | 描述 | 供应商 |
|
||
|--------|----------|------|--------|
|
||
| R001 | 账号共享禁令 | 禁止将同一账号分享给多个用户 | 全部 |
|
||
| R002 | 转售禁令 | 禁止将 API 服务转售给第三方 | 全部 |
|
||
| R003 | 服务条款禁止地区 | 禁止从制裁/限制地区访问 | 全部 |
|
||
| R004 | 账户类型限制 | 禁止使用个人账户进行商业用途 | OpenAI |
|
||
| R005 | 并发限制 | 超过账户允许的并发数 | 全部 |
|
||
| R006 | 代理/转发禁令 | 禁止作为代理或转发服务 | Anthropic |
|
||
| R007 | 竞争对手禁止 | 禁止用于竞品服务 | 部分供应商 |
|
||
|
||
### 3.3 黄线规则(告警+人工复核)
|
||
|
||
以下规则触发告警,由合规团队人工复核:
|
||
|
||
| 规则ID | 规则名称 | 描述 | 默认动作 |
|
||
|--------|----------|------|----------|
|
||
| Y001 | 使用量突增 | 日环比增长 > 200% | 告警+复核 |
|
||
| Y002 | 调用模式异常 | 偏离正常使用模式 | 告警+复核 |
|
||
| Y003 | 新型使用场景 | 首次出现的使用场景 | 告警+复核 |
|
||
| Y004 | 大额账户 | 单账户配额 > $10,000 | 告警+复核 |
|
||
| Y005 | 跨地区访问 | IP 地理位置变更异常 | 告警+复核 |
|
||
|
||
### 3.4 规则配置示例
|
||
|
||
```yaml
|
||
# ToS 规则配置示例
|
||
rules:
|
||
- id: "R001"
|
||
name: "账号共享禁令"
|
||
severity: "red"
|
||
matchers:
|
||
- type: "tenant_share"
|
||
operator: "gt"
|
||
threshold: 1
|
||
action: "block"
|
||
message: "检测到账号共享行为,违反供应商 ToS"
|
||
|
||
- id: "Y001"
|
||
name: "使用量突增"
|
||
severity: "yellow"
|
||
matchers:
|
||
- type: "daily_usage_delta"
|
||
operator: "gt"
|
||
threshold: 2.0 # 200%
|
||
action: "alert"
|
||
message: "检测到使用量异常增长,请复核"
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 供应商 ToS 清单
|
||
|
||
### 4.1 主要供应商 ToS 要点
|
||
|
||
| 供应商 | 关键限制 | 红线规则 | 合规策略 |
|
||
|--------|----------|----------|----------|
|
||
| **OpenAI** | 禁止转售、账户共享、商业用途需企业账户 | R001,R002,R004 | 严格拦截 + 账户分类 |
|
||
| **Anthropic** | 禁止代理转发、地区限制 | R001,R006 | 严格拦截 + 地区检测 |
|
||
| **Google Gemini** | 禁止竞争对手使用、需同意服务条款 | R001,R007 | 严格拦截 + 场景识别 |
|
||
| **Azure OpenAI** | 需企业协议、有限制使用条款 | R001,R004 | 企业账户验证 |
|
||
| **国内供应商** | 各家不同,需逐一审查 | 视具体条款 | 个性化配置 |
|
||
|
||
### 4.2 供应商合规矩阵
|
||
|
||
```
|
||
供应商 │ 账号共享 │ 转售 │ 代理 │ 地区限制 │ 商业用途
|
||
────────────────┼──────────┼──────┼──────┼─────────┼─────────
|
||
OpenAI │ 🔴 │ 🔴 │ 🟡 │ 🔴 │ 🟡
|
||
Anthropic │ 🔴 │ 🔴 │ 🔴 │ 🔴 │ 🟢
|
||
Gemini │ 🔴 │ 🔴 │ 🟡 │ 🔴 │ 🟡
|
||
Azure OpenAI │ 🔴 │ 🟢 │ 🟢 │ 🟢 │ 🟢
|
||
国内-通义 │ 🟡 │ 🟡 │ 🟡 │ 🔴 │ 🟢
|
||
国内-文心 │ 🟡 │ 🟡 │ 🟡 │ 🔴 │ 🟢
|
||
国内-智谱 │ 🟡 │ 🟡 │ 🟡 │ 🔴 │ 🟢
|
||
|
||
🔴 = 严格禁止 🟡 = 需审核 🟢 = 允许
|
||
```
|
||
|
||
### 4.3 供应商规则更新机制
|
||
|
||
1. **定期扫描**:每周扫描供应商 ToS 更新
|
||
2. **版本追踪**:维护各供应商 ToS 版本历史
|
||
3. **变更影响评估**:ToS 变更后 24 小时内完成影响评估
|
||
4. **规则同步**:影响评估后 48 小时内完成规则更新
|
||
|
||
---
|
||
|
||
## 5. 合规策略执行模式
|
||
|
||
### 5.1 两种执行模式
|
||
|
||
| 模式 | 描述 | 适用场景 | 优缺点 |
|
||
|------|------|----------|--------|
|
||
| **严格拦截** | 红线规则立即拦截,不调用上游 | S4 初期、高风险场景 | 安全但可能误伤 |
|
||
| **告警+人工复核** | 触发规则仅告警,人工确认后拦截 | 成熟期、低风险场景 | 灵活但响应慢 |
|
||
|
||
### 5.2 推荐策略(评审建议)
|
||
|
||
根据评审意见,建议默认采用**"告警+人工复核"**模式:
|
||
|
||
| 阶段 | 执行模式 | 说明 |
|
||
|------|----------|------|
|
||
| S1 | 告警+人工复核 | 积累经验,完善规则 |
|
||
| S2 | 告警+人工复核 | 持续优化 |
|
||
| S3 | 逐步切换 | 黄线告警+复核,红线拦截 |
|
||
| S4 | 分类执行 | 红线拦截,黄线复核,绿线放行 |
|
||
|
||
### 5.3 模式切换触发条件
|
||
|
||
```
|
||
告警+人工复核 ──▶ 严格拦截
|
||
|
||
触发条件(满足任一):
|
||
├── 30天内发生2次及以上合规事件
|
||
├── 供应商发出书面警告
|
||
├── 监管机构发布新规
|
||
└── 风险评分 > 80分
|
||
|
||
严格拦截 ──▶ 告警+人工复核
|
||
|
||
触发条件:
|
||
├── 连续60天无合规事件
|
||
├── 规则准确率 > 99%
|
||
└── 人工复核通过率 > 95%
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 违规处理机制
|
||
|
||
### 6.1 违规分级
|
||
|
||
| 级别 | 定义 | 示例 | 处理方式 |
|
||
|------|------|------|----------|
|
||
| **P0-严重** | 违反红线,可能导致供应商封号 | 账号共享被检测 | 立即停止服务 + 通知 + 整改 |
|
||
| **P1-高** | 疑似违规,需立即复核 | 使用量突增 | 暂停服务 + 24小时内复核 |
|
||
| **P2-中** | 异常行为,需关注 | 调用模式偏离 | 告警 + 持续观察 |
|
||
| **P3-低** | 轻微异常 | 边界值触发 | 记录 + 不阻断 |
|
||
|
||
### 6.2 违规处理流程
|
||
|
||
```
|
||
检测到违规
|
||
│
|
||
▼
|
||
┌─────────────┐
|
||
│ 违规定级 │ 自动/人工
|
||
└──────┬──────┘
|
||
│
|
||
┌────┴────┐
|
||
▼ ▼ ▼ ▼
|
||
┌────┐ ┌────┐ ┌────┐ ┌────┐
|
||
│ P0 │ │ P1 │ │ P2 │ │ P3 │
|
||
└────┘ └────┘ └────┘ └────┘
|
||
│ │ │ │
|
||
▼ ▼ ▼ ▼
|
||
立即停 24h 持续 记录
|
||
止服务 复核 观察 观察
|
||
│ │ │ │
|
||
▼ ▼ ▼ ▼
|
||
通知 整改/ 解除/ 解除/
|
||
供应方 恢复 升级 保持
|
||
```
|
||
|
||
### 6.3 违规响应时效
|
||
|
||
| 违规级别 | 响应时间 | 解决时间 | 升级时间 |
|
||
|----------|----------|----------|----------|
|
||
| P0 | 5 分钟 | 1 小时 | 30 分钟 |
|
||
| P1 | 30 分钟 | 24 小时 | 4 小时 |
|
||
| P2 | 2 小时 | 7 天 | 48 小时 |
|
||
| P3 | 24 小时 | 30 天 | 7 天 |
|
||
|
||
---
|
||
|
||
## 7. 审计与报告
|
||
|
||
### 7.1 审计日志要求
|
||
|
||
| 审计项 | 内容 | 保留时间 |
|
||
|--------|------|----------|
|
||
| **规则命中日志** | 请求ID、规则ID、匹配结果、执行动作 | 1年 |
|
||
| **人工复核记录** | 复核人、复核结果、处理意见 | 3年 |
|
||
| **规则变更记录** | 变更人、变更内容、变更原因 | 3年 |
|
||
| **供应商通知** | 通知内容、响应动作 | 5年 |
|
||
| **违规事件** | 事件详情、处理过程、最终结果 | 5年 |
|
||
|
||
### 7.2 定期报告
|
||
|
||
| 报告类型 | 频率 | 内容 |
|
||
|----------|------|------|
|
||
| **合规周报** | 每周 | 规则触发统计、违规事件、处理情况 |
|
||
| **合规月报** | 每月 | 趋势分析、风险评估、规则优化建议 |
|
||
| **合规季报** | 每季度 | 完整合规评估、供应商 ToS 更新、体系改进 |
|
||
| **年度合规报告** | 每年 | 全面合规审计、重大事件回顾、体系成熟度评估 |
|
||
|
||
### 7.3 合规指标
|
||
|
||
| 指标 | 目标值 | 严重阈值 |
|
||
|------|--------|----------|
|
||
| 规则覆盖率 | 100% | < 95% |
|
||
| 红线拦截准确率 | >= 99.9% | < 99% |
|
||
| 误报率 | <= 5% | > 10% |
|
||
| 平均响应时间 | <= 30min | > 2h |
|
||
| 审计完整率 | 100% | < 99% |
|
||
|
||
---
|
||
|
||
## 8. 供应商账号导入合规
|
||
|
||
### 8.1 BYOA(Bring Your Own Account)合规检查
|
||
|
||
当客户导入自己的 LLM 账号时:
|
||
|
||
| 检查项 | 检查内容 | 处理方式 |
|
||
|--------|----------|----------|
|
||
| 账号类型 | 企业账户 vs 个人账户 | 个人账户商业用途需警告 |
|
||
| 使用权限 | 是否允许 API 访问 | 无权限拒绝 |
|
||
| 地区合规 | 账号注册地区是否合规 | 限制地区拒绝 |
|
||
| 账户状态 | 是否正常、是否有欠款 | 异常拒绝 |
|
||
| ToS 确认 | 客户确认遵守供应商 ToS | 需签署协议 |
|
||
|
||
### 8.2 凭证存储合规
|
||
|
||
| 要求 | 说明 |
|
||
|------|------|
|
||
| **加密存储** | API Key 必须加密存储(AES-256) |
|
||
| **访问控制** | 仅策略引擎可解密,禁止明文展示 |
|
||
| **日志脱敏** | 日志中禁止出现完整 API Key |
|
||
| **轮换机制** | 支持密钥轮换,轮换后旧密钥自动失效 |
|
||
| **审计日志** | 所有访问记录审计日志 |
|
||
|
||
---
|
||
|
||
## 9. 技术实现要点
|
||
|
||
### 9.1 性能优化
|
||
|
||
- **规则预编译**:规则在启动时编译为高效数据结构
|
||
- **缓存策略**:热点规则结果缓存 60 秒
|
||
- **异步执行**:合规检查异步化,不阻塞主请求
|
||
- **批量处理**:后置批量审计,减少实时开销
|
||
|
||
### 9.2 可观测性
|
||
|
||
| 指标 | 监控 |
|
||
|------|------|
|
||
| 规则匹配延迟 | P95 <= 5ms |
|
||
| 规则触发率 | 按规则维度统计 |
|
||
| 拦截成功率 | 拦截后上游调用数为 0 |
|
||
| 误报率 | 人工复核放行比例 |
|
||
|
||
### 9.3 高可用设计
|
||
|
||
- **规则服务无状态**:可横向扩展
|
||
- **配置中心高可用**:多副本 + 自动切换
|
||
- **降级策略**:合规服务不可用时默认放行 + 告警
|
||
|
||
---
|
||
|
||
## 10. 实施计划
|
||
|
||
### 10.1 S3 阶段:合规基础能力
|
||
|
||
| 时间 | 任务 | 交付 |
|
||
|------|------|------|
|
||
| W1-W2 | 合规引擎核心开发 | 规则匹配 + 执行 |
|
||
| W3 | 首批供应商规则配置 | OpenAI/Anthropic 规则 |
|
||
| W4 | 审计日志功能 | 合规审计能力 |
|
||
|
||
### 10.2 S4 阶段:合规体系完善
|
||
|
||
| 时间 | 任务 | 交付 |
|
||
|------|------|------|
|
||
| W1-W2 | 全供应商规则覆盖 | 全部已接入供应商 |
|
||
| W3-W4 | 人工复核工作流 | 告警 + 复核 + 处理 |
|
||
| W5-W6 | 定期报告功能 | 周报/月报/季报 |
|
||
| W7-W8 | 体系优化 | 规则准确率优化 |
|
||
|
||
---
|
||
|
||
## 11. 责任矩阵
|
||
|
||
| 任务 | 负责人 | 协作方 |
|
||
|------|--------|--------|
|
||
| 规则开发 | 平台工程 | 安全团队 |
|
||
| 规则配置 | 合规团队 | 产品 |
|
||
| 人工复核 | 合规团队 | 客服 |
|
||
| 供应商沟通 | 法务 | 商务 |
|
||
| 审计报告 | 合规团队 | 运营 |
|
||
|
||
---
|
||
|
||
**章节状态**:初稿
|
||
**关联文档**:
|
||
- `llm_gateway_subapi_evolution_plan_v2_2026-03-17.md`
|
||
- `llm_gateway_product_technical_blueprint_v1_2026-03-16.md`
|