Tenant Isolation(租户隔离)
先用一句话说清楚
Tenant Isolation(租户隔离)是确保不同客户、部门、组织或账号之间的数据、配置、知识库和工具权限不会互相串用。
实战知识卡
| 维度 | 要点 |
|---|---|
| 项目里看什么 | 看资料、向量、会话、任务和审计记录是否都有租户边界。 |
| 新手最该记住 | 租户隔离(Tenant Isolation)解决的是不同客户或部门的数据不能串用。 |
| 作品集证据 | 展示跨租户检索被拒绝的样例,哪怕作品集只是单租户演示。 |
| 面试回答公式 | 先说 tenant_id(租户编号)贯穿数据,再说检索过滤、权限和审计隔离。 |
| 常见扣分点 | 认为同一个向量库里不同集合就一定安全。 |
新手通俗解释
如果一个系统同时服务 A 公司和 B 公司,A 公司的人绝不能查到 B 公司的资料。即使系统底层使用同一个模型、同一个向量数据库或同一个后台,也必须把租户边界隔开。
在 AI Agent(人工智能体)项目里,Tenant Isolation(租户隔离)尤其重要,因为模型可能根据上下文回答问题。一旦上下文混入别人的资料,就会造成严重泄露。
为什么岗位会问它
面试官问 Tenant Isolation(租户隔离),通常是在判断你是否具备企业级交付意识。很多作品集只做单用户演示,但真实公司会有多个客户、多个部门、多个角色和多套资料。
| 隔离对象 | 为什么重要 |
|---|---|
| 资料隔离 | 防止知识库串库 |
| 权限隔离 | 防止越权访问 |
| 配置隔离 | 不同客户模型、提示词、工具开关不同 |
| 审计(Audit)隔离 | 每个租户只能看自己的记录 |
| 成本隔离 | 统计每个租户的模型费用 |
它在项目里怎么用
作品集里不一定要实现复杂多租户平台,但要在方案里写清楚租户字段和权限检查。
| 设计点 | 应该说明 |
|---|---|
| tenant_id(租户编号) | 每条资料、任务、用户、审计记录都归属某个租户 |
| 查询过滤 | 检索资料时必须带租户范围 |
| 工具调用 | 工具只处理当前租户允许的数据 |
| 管理后台 | 管理员也要区分平台管理员和租户管理员 |
| 测试样例 | 故意测试跨租户访问是否被拒绝 |
常见误解
| 误解 | 为什么不对 | 正确理解 |
|---|---|---|
| 只要前端不展示就安全 | 后端检索和工具调用仍可能越权 | 隔离必须在数据和接口层生效 |
| 单机作品集不用写 Tenant Isolation(租户隔离) | 面试官会问真实企业怎么扩展 | 至少要说明设计边界 |
| 向量数据库天然隔离 | 同库不同集合也可能配置错误 | 检索时必须带租户过滤和验收样例 |
面试官可能怎么追问
1. RAG(检索增强生成)系统怎么防止串库?
考察点: 是否理解数据边界。
参考回答: 我会给资料、向量、会话、任务和审计(Audit)记录都绑定 tenant_id(租户编号),检索时强制带租户过滤,并用跨租户样例做验收。如果用户没有权限,即使语义相似度很高,也不能返回其他租户资料。
容易扣分: 只说“前端控制一下”。
2. 租户隔离和权限有什么区别?
考察点: 是否能区分组织边界和角色权限。
参考回答: Tenant Isolation(租户隔离)先回答“属于哪个客户或组织”,权限(Permission)再回答“这个组织内的哪个角色能做什么”。两者要同时存在:没有租户隔离会串客户,没有权限会让同一租户内的人越权。
容易扣分: 把所有安全问题都说成登录校验。
作品集里怎么展示它
- 在资料表、任务表和审计(Audit)表里写出 tenant_id(租户编号)的设计说明。
- 准备一个跨租户访问被拒绝的验收样例。
- 在项目讲解里说明“单租户演示,按多租户边界设计”。
- 把 Tenant Isolation(租户隔离)和权限(Permission)、审计(Audit)放在同一张安全设计图里。