43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
# 非 SaaS 多租户实施清单 (V30.0)
|
||
|
||
## 1. 实施要点
|
||
- **数据独占**:每个租户拥有独立的 `tenant_id` 与加密盐。
|
||
- **资源配额**:严格限制单个租户的并发 Worker 数量与算力开销。
|
||
|
||
## 2. 多租户隔离架构
|
||
|
||
### 2.1 数据层隔离
|
||
| 层级 | 隔离策略 | 实现方式 |
|
||
|------|----------|----------|
|
||
| 数据库 | 逻辑隔离 | 所有表添加 tenant_id 索引列 |
|
||
| 表结构 | 租户专属表 | cf_{租户标识}_{业务表} (如需物理隔离) |
|
||
| Redis | 键名前缀 | `{tenantId}:{业务Key}` |
|
||
|
||
### 2.2 应用层隔离
|
||
- **TenantContext**:请求级别租户上下文 ThreadLocal 传递
|
||
- **行级安全**:所有查询自动注入 `WHERE tenant_id = ?` 条件
|
||
- **跨租户校验**:API 层验证操作权限与数据归属
|
||
|
||
### 2.3 资源配额管理
|
||
| 资源类型 | 配额限制 | 熔断策略 |
|
||
|----------|----------|----------|
|
||
| API 并发 | 100 req/s/租户 | 超出返回 429 |
|
||
| Worker 并发 | 10 任务/租户 | 队列满拒绝 |
|
||
| 存储空间 | 10 GB/租户 | 定期清理日志 |
|
||
|
||
## 3. 安全实施清单
|
||
- [ ] 数据库连接池配置租户路由中间件
|
||
- [ ] Redis 键空间隔离验证
|
||
- [ ] 日志脱敏 (tenantId 脱敏处理)
|
||
- [ ] API 网关层租户识别 (Header: X-Tenant-ID)
|
||
- [ ] 跨租户漏洞渗透测试
|
||
|
||
## 4. 测试用例
|
||
- [ ] 租户 A 无法访问租户 B 的数据
|
||
- [ ] 超配额请求正确返回 429 错误
|
||
- [ ] 租户删除后数据完全清理
|
||
|
||
---
|
||
**版本**: V30.0
|
||
**更新日志**: [AI-3 @ 2026-03-15] 补充多租户隔离架构与实施清单
|