5.3 安全性与合规性


5.3 安全性与合规性

图谱里装的是你的秘密

Cognee 把文档变成图,图里可能藏着客户身份证号、未公开财报、内部架构。一旦图谱被人拖走,损失比丢几份文档更大——因为图把散落信息连成了可顺藤摸瓜的网络。这一节讲清凭证、敏感数据、审计三道关。

这是第五章第三站,合规场景下不能省。

凭证与连接的加密

第三章讲过密钥走环境变量。生产里要更进一步:密钥存部署平台的密钥管理,图库连接启用 TLS,禁止明文口令写在配置文件。

import os, cognee # 5.3 安全性与合规性 cognee.configure( api_key=os.getenv("OPENAI_API_KEY"), # 密钥管理注入 graph_db_url=os.getenv("GRAPH_DB_URL"), # 如 bolt+ssc://... 加密 ) print("凭证与连接均已走安全通道") # 凭证与连接均已走安全通道

注意图库 URL 用 bolt+ssc(加密)而非裸 bolt,避免图数据在网路里裸奔。

敏感数据的两道闸

关卡 位置 做法
抽取前 摄取层 正则/分类识别敏感文本,脱敏后再 add
写入前 管线节点 4.5 节的 filter 节点移除敏感三元组

05-03-fig01

审计:谁查了什么

图谱可溯源性也能服务审计——每条答案带 source,你可进一步记录"谁在什么时间查了哪个实体"。下面示意审计日志的落法。

import cognee, datetime async def audited_search(user, query): results = await cognee.search(query) # 写审计日志(示意) log = { "user": user, "query": query, "time": datetime.now().isoformat(), "hits": [r["entity"] for r in results], } append_to_audit_log(log) # 落库或发消息队列 return results # 合规场景要求查询可追溯,审计日志是底线

审计日志让"谁泄了密"可被回溯,也是很多行业合规的硬性要求。Cognee 的 source 字段天然适配这种需求。

案例:金融合同的脱敏建图

背景:银行要把客户合同建图做智能问答,但合同含身份证号与卡号,不能进图。

操作:摄取层先脱敏,写入前再过滤一遍。

import asyncio, re, cognee ID_RE = re.compile(r"\d{17}[\dXx]") # 身份证号粗匹配 def mask(text: str) -> str: return ID_RE.sub("***", text) async def safe_build(): raw = open("合同.pdf").read() masked = mask(raw) # 摄取层脱敏 await cognee.add(masked) await cognee.cognify() print("脱敏后建图,敏感字段未入图") asyncio.run(safe_build()) # 脱敏后建图,敏感字段未入图

结果:合同的关系结构(如"甲方—借款—金额")保留,但身份证号被替换,图可查却不含隐私。

解读:合规不是"不建图",而是"建对图"。脱敏保留结构、剔除标识,既满足智能问答又守住隐私红线。

变式:若监管要求"原文档与图分离存储",把 source 指向权限更高的加密存储,查询时按用户权限决定是否回原文,做到图与原文分级管控。

一个合规动作:给图加"谁能看什么"的边界

前文讲凭证加密和传输安全,但图建好后还有一层:访问控制。一份图谱里可能同时有公开信息和机密关系,不能谁查都能拿到全部。实务要给敏感实体打标签,检索时按调用方身份过滤。类比到金融——同一账本,柜员看自己客户,主管看全行,权限分层。

# 敏感实体打标 + 按身份过滤(示意) SENSITIVE = {"未公开财报", "内部架构"} def filtered_search(q, role): raw = await cognee.search(q) if role != "admin": raw = [r for r in raw if r["entity"] not in SENSITIVE] return raw

把访问控制做在检索层,机密关系不会因一次宽权限查询泄露。

角色 可见范围 实现
公众 公开实体 强过滤
内部 多数实体 中过滤
管理员 全图 不过滤

⚠️ 别以为"图在内部网络就安全"——内部越权同样算泄露,访问边界必须显式定义。

💡 合规审计留痕:每次 search 记谁、查了什么、返回了哪些实体,出事能追责,也满足监管。

一个脱敏:建图前先遮敏感字段

图里装秘密,最好在摄入阶段就脱敏——身份证号、手机号建图前打码,图里只留"已认证用户"这类关系而非明文。类比到金融——上链前脱敏,比上链后控访问更根本,因为明文根本没进图。

字段 处理
身份证号 建图前打码
内部架构 标敏感+过滤
公开信息 正常建

⚠️ 别依赖"图在内网就安全"——内网泄露事件不少,明文敏感字段进图是定时炸弹。

💡 脱敏规则作为摄入流水线的一环,和抽取并列,敏感字段从源头就不进图。

一个提醒:合规是持续动作

安全不是上线配一次就完。模型、图库、权限策略都会变,合规要定期复审:密钥是否轮换、敏感标签是否还在、访问边界是否收紧。类比到金融——风控不是开一次户就完,要持续监控。

⚠️ 别把合规当"上线过检"——检完松懈,泄露往往发生在松懈后的窗口期。

💡 合规项列成季度 checklist,逐项打钩留痕,审计时直接出证据。

本节要点回顾

  • 密钥走平台密钥管理,图库连接启用加密通道。
  • 敏感数据两道闸:摄取脱敏 + 管线 filter 删三元组。
  • 审计日志记录查询者与时间,配合 source 实现可追溯。

⚠️ 别以为"图里只有关系不要紧"。关系网能把分散标识拼出个人画像, sensitivity 不低。

💡 合规设计早做:摄取层就接脱敏,比建完图再清理被动得多,也避免敏感数据落盘。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U