先用图解理解结构,再结合正文实现与验证。
权限模块、安全测试与部署决策
按讲义完成实现并提交证据。代码片段、模拟结果与真实模型任务需要分别标注。1. 安全评审要回答系统事实
建议型 Agent 能运行后,客户提出三个问题:哪些数据会离开网络;谁可以看到会员明细;工具调用和日志由谁保存。这些问题不能用“已经脱敏”“采用私有化”一笔带过。本周需要形成数据流图、字段权限矩阵、脱敏效用比较和部署决策,并把关键限制落实到程序中。
合规判断依赖真实数据类型、处理目的、组织和地区要求。本课提供工程检查方法,不代替法律或安全专业意见。实际处理个人信息、跨境传输或高风险专业数据前,应由具备职责的人员确认;合成训练不自动授权使用真实客户数据。
2. 画出完整数据流,包括日志、缓存和备份
不要只画用户、模型和数据库三个方框。一次请求还可能经过浏览器、网关、身份服务、检索系统、模型供应商、外部工具、观测平台和备份。每一段都记录数据类别、目的、接收方、位置、保留期和删除方式。
| 数据流 | 可能暴露的内容 | 本课控制思路 |
|---|---|---|
| 用户 → 应用 | 自由文本中的个人或商业信息 | 输入提示与必要的检测、最小化处理 |
| 应用 → 模型 | 提示、检索片段、工具结果 | 只提供任务需要的字段和证据摘要 |
| 工具 → 数据库 | 查询条件、租户、记录标识 | 服务端鉴权、参数化查询、范围限制 |
| 应用 → 日志 | 原始提示、工具参数、异常堆栈 | 脱敏字段白名单、访问限制与保留策略 |
| 缓存/导出/备份 | 历史响应与个人记录 | 同等权限、过期失效与可追踪删除 |
数据留在本地,并不意味着本地日志人人都应可读;模型不保存会话,也不意味着你自己的应用没有保存。只有逐段核对,才能准确回答安全评审问题。
模型上下文只包含任务必要字段。身份、范围与写权限在服务端校验,检索内容不因此获得指令权。
3. 脱敏、去标识化、匿名化与加密
遮蔽手机号可以减少直接暴露,但门店、生日和消费记录的组合仍可能识别人。替换为会员引用通常属于去标识化思路:系统仍保有映射,不能轻率宣称已匿名。加密保护传输或存储,数据被授权解密后仍然可识别,不替代访问控制。
先问完成任务是否需要该字段。建议型分群通常需要购买间隔、许可状态和所属范围,未必需要姓名、完整手机和精确地址。若年龄段足够,不应默认发送出生日期。业务必要性与处理权利是两个问题:“模型需要”不等于“我们有权提供”。
更详细的专业判断可参考课程来源页中的个人信息保护与 NIST AI 风险管理资料 ↗。不要把本课检查表当作任何法律合规认证。
4. 权限必须在服务端执行
信任边界应放在模型外部。租户、操作者身份与允许门店来自可信会话或服务端身份上下文,不能接受模型传入 role=admin 后就提升权限。工具执行前验证对象与字段范围,返回前再按允许字段投影。
# 设计片段:ctx 必须来自服务端身份验证,不接受模型自行声明。
def scoped_member_view(ctx, row):
if row["tenant_id"] != ctx.tenant_id:
raise PermissionError("DENIED_SCOPE")
if row["store_id"] not in ctx.allowed_stores:
raise PermissionError("DENIED_SCOPE")
allowed = {"member_ref", "days_since_purchase", "consent"}
return {key: row[key] for key in allowed if key in row}这段示例只展示控制位置,不是完整认证系统。实际实现还要覆盖列表查询、详情、搜索、导出、缓存和动作回查。拒绝越权时避免泄露“这个会员确实存在于 B 店”;不论记录是否存在,外部可见的拒绝语义应符合你的安全设计。
权限测试应同时有正例和反例:允许 A 店的用户能正常读 A 店;不能读 B 店;不能通过改变缓存键或记录 ID 取得 B 店结果;不能因为工具失败而走到无权限的备用接口。
5. 比较脱敏前后的任务效用
“脱敏不影响效果”需要实验支持。选择一组获授权的评估任务,定义评分维度,再比较最小字段版与较完整字段版在同一条件下的任务表现。真实信息只可在相应授权环境处理;没有授权时使用合成数据验证方法,不能据此报告真实业务效用。
例如,针对沉默会员建议,比较是否正确识别资格、是否引用有效规则、建议是否需要不必要的身份字段。如果删除精确生日后任务评分不变,可支持本任务采用年龄段或不提供年龄;不能推导所有营销任务都不需要生日。
记录模型、提示、工具、数据与策略版本,保留失败样本。若效果下降,先定位缺少的是必要信息还是提示依赖了偶然特征,不要直接恢复全部敏感字段。可以考虑受控工具在本地计算特征,只向模型提供结论和证据引用。
托管、私有与混合三种架构只是候选。逐一确认出域数据、密钥、网络、日志和运维责任。
6. 部署选型:能力、成本和责任一起比较
| 方案 | 需要评估的条件 | 容易遗漏的责任 |
|---|---|---|
| 托管模型/云服务 | 数据处理条款、区域、网络、模型能力 | 供应商变更、应用日志、用量与密钥管理 |
| 私有或本地部署 | 硬件、模型能力、更新、性能与容量 | 补丁、备份、故障值守、模型评估 |
| 混合部署 | 哪些数据本地处理、何时调用外部能力 | 路由策略、失败降级、双侧审计与一致性 |
使用同一组代表性任务比较候选模型。开源、本地或更大的模型都不自动等于合适;只比较单次响应速度也不足以选型,还要看完成率、工具错误、复核成本和总拥有成本。部署决策应列出被放弃方案与原因,便于条件改变时重新评估。
7. 案例分析:专业资料处理的效率与边界
在 NovoScribe 文档生产案例中,团队将语义检索、专家认可文本与生成流程组合起来。对 FDE 最有用的设计问题是:怎样保证答案来自当前适用版本,怎样让审阅者快速回到原文,以及哪些内容只允许特定角色访问?
本周用合成设备文档演练:旧版温度上限为 60°C,新版为 45°C。输入指定新版时,先在检索层过滤版本和访问范围,再生成带页码的摘要。未指定版本则澄清;无权读取时拒绝检索。保留四份证据:数据流图、字段权限表、版本冲突测试、专家审阅记录。本练习处理文档工程,不提供医疗建议。
回到零售项目,同样要区分“生成建议更快”和“可以扩大数据访问”。便利性不是授权依据。一个真正有价值的适配,是在减少不必要数据暴露的同时,仍能完成被明确验证的业务任务。
8. 必做作业、思考与验收
必做:提交完整数据流和字段权限矩阵;实现范围校验与字段过滤;完成允许、跨店、字段、缓存/导出四类测试;提交脱敏效用对照及部署选型说明。若尚未接入真实模型,对照仅报告为机制或合成任务验证。
思考:客户要求“所有数据都不出内网”,但同时坚持使用一个只能通过外部接口访问的能力,你如何把冲突拆成可选择的方案,而不是用架构图掩盖?
进阶:为日志建立字段白名单及自动扫描,验证异常堆栈、检索片段和缓存记录不会绕过脱敏;模拟权限撤销后已有缓存如何失效。
验收要求:权限不依赖模型自觉;数据流包含隐蔽存储;部署位置未被当成合规证明;效用结论有样本与版本;限制和残余风险有责任角色。无法确认合法性或权限的部分,应保持关闭而不是带病进入下一阶段。
本周案例复盘
本周自测与学习记录
私有化部署是否自动满足所有合规要求?
部署位置只是一项条件,不替代完整的数据治理和法律评估。
参考与进一步阅读
国家市场监督管理总局 / SAMR ↗ · 中华人民共和国个人信息保护法2021-08-20 · 国家市场监督管理总局 / SAMROWASP ↗ · LLM01:2025 Prompt Injection2025 · OWASPNIST ↗ · AI Risk Management Framework查阅 / Accessed 2026-09-07 · NISTAnthropic ↗ · How enterprises are driving AI transformation with Claude2025-10-01 · Anthropic结合本周作业阅读原文,记录影响设计的约束与验证方法。技术规范请核对实际部署版本。