Files
lijiaoqiao/docs/tos_compliance_engine_design_v1_2026-03-18.md
2026-03-26 16:04:46 +08:00

402 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 BYOABring 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`