安全围栏与语义审计

安全围栏是工作空间级的调用策略:网关按策略检查每次调用的配额、模型、客户端和请求内容,命中后告警、掩码、剥离、阻断或封禁,并在 安全事件 页留下记录。配额管理、模型访问控制、客户端访问控制从团队版起可用;敏感信息检测、提示词注入检测、意图安全检测需要企业版。策略和事件都由当前账号管理员在工作空间的 安全围栏、安全事件 页管理,普通成员看不到这两个页面。

策略类型与版本

策略类型 检查什么 可选动作 拦截时的 error.code 最低版本
配额管理 统计周期内的信用点或 Token 用量,可另设 RPM、TPM 阻断、告警 返回 429,见预算、配额与限流 团队版
模型访问控制 实际调用的模型 阻断 guardrail_model 团队版
客户端访问控制 来源 IP、请求声明的工具名、User-Agent 阻断、告警 guardrail_client 团队版
敏感信息检测 请求或回答中的个人信息、凭证和敏感关键词 请求侧:阻断、告警、掩码;响应侧:阻断、告警 guardrail_sensitive 企业版
提示词注入检测 用户输入中试图改写模型指令的内容 阻断、告警、剥离 guardrail_injection 企业版
意图安全检测 请求意图是否属于高风险类型 封禁、阻断、告警 guardrail_context 企业版
  • 版本按订阅判断:没有有效订阅的组织按个人版处理。个人版能看到两个菜单,但页面显示「当前版本不支持使用此功能」;个人账户不能直接订阅,需要先创建团队或企业组织,再在 订阅充值 页开通。
  • 降级后存量策略继续生效:当前版本不包含某类策略时(例如从企业版降到团队版),已创建的这类策略仍会在网关上拦截或掩码请求。页面会提示这一点,你可以停用或删除它们,但不能新建或修改。
  • 事件保留期:安全事件默认在团队版保留 30 天、企业版保留 180 天,超过保留期后无法在列表或详情中查到。

当前订阅版本不包含安全事件时,页面显示「当前版本不支持使用此功能」和升级入口。

图 1:当前订阅版本不包含安全事件时,页面显示「当前版本不支持使用此功能」和升级入口。 截图为演示数据,点击图片可查看原图。

新建策略

在 安全围栏 切到对应类型的页签,点右上角的新建按钮(例如「新建配额管理策略」),按三步完成:

  1. 生效对象:「对象类型」选「工作空间」「部门」「组织成员」或「API Key」,并选择具体对象。模型访问控制不能选「工作空间」。
  2. 策略规则:填写「策略名称」(至少 2 个字符)和该类型的规则,再选「执行动作」。策略类型由所在页签决定,保存后不能更改。
  3. 生效时间:选「立即生效」或「定时生效」,以及「永久有效」或「指定失效时间」。最后点「保存草稿」(不生效)、「保存并启用」或「保存并设置定时生效」。

只有状态为「已启用」且处在生效时间内的策略才会执行。列表中可以随时停用、启用、编辑或删除策略。

生效对象 覆盖哪些调用
工作空间 本工作空间的全部调用
部门 创建人的主部门恰好是所选部门的 API Key,不含子部门
组织成员 所选成员创建的全部 API Key
API Key 所选的 API Key

同一次调用适用多条策略时,所有策略同时执行,不是只取最具体的一条。例如工作空间级和某个 API Key 上的敏感信息策略都会检查;工作空间配额和成员配额是两个独立上限,任一触顶都会拒绝。

编辑策略的第一步「生效对象」:选择对象类型和具体部门,配额策略还要选择配额模式。

图 2:编辑策略的第一步「生效对象」:选择对象类型和具体部门,配额策略还要选择配额模式。 截图为演示数据,点击图片可查看原图。

各类策略的规则

配额管理 与 模型访问控制 分别见预算、配额与限流和模型授权。

客户端访问控制

每条策略选一种「控制对象」,再选「允许名单」或「拒绝名单」:

控制对象 匹配什么 写法
IP / CIDR 网关识别到的请求来源 IP IPv4、IPv6 或网段,例如 10.0.0.0/8
工具 / function 请求体 tools(或 functions)中声明的函数名 支持 * 通配;请求没有声明工具时不检查
客户端 / SDK 请求头 User-Agent 支持 * 通配,整串匹配,区分大小写,例如 company-agent/*

工具名使用允许名单时,请求声明的每一个工具都必须在名单内;使用拒绝名单时,任意一个工具命中即违规。

敏感信息检测

  • 检测类别:身份证号、手机号、银行卡号、护照号、电子邮箱、家庭住址、车牌号、统一社会信用代码、内部凭证,以及按关键词识别的财务数据、健康数据、商业秘密。新建时默认勾选身份证号、手机号、银行卡号和内部凭证。身份证号、银行卡号和统一社会信用代码会校验校验位。
  • 自定义规则:「自定义信息类别与脱敏规则」中每条填写类别名称、正则表达式和可选的脱敏风格,最多 50 条。
  • 检测方向:「请求」「响应」或「请求与响应」。响应侧只做规则检测,动作只能是阻断或告警。
  • 检测引擎:「规则」或「混合」。「混合」还会用语义模型识别套取敏感数据的意图;语义命中没有可定位的文字,动作为掩码时会改为阻断。
  • 检测范围:默认「仅用户输入」,只检查用户消息;「整段对话(含助手回复与工具返回)」检查得更全,误报也明显更多,建议先用「告警」观察。
  • 脱敏风格:「整体替换」(默认,替换为 [REDACTED])、「保留部分位」(如手机号 138****5678)、「哈希化」(替换为 [SHA256:…],同一个值结果相同)。财务数据、健康数据、商业秘密匹配的是关键词而不是具体数值,不能选掩码,否则保存失败。

提示词注入检测

  • 检测类别:直接指令覆盖、直接注入、系统提示词泄露、角色扮演越狱、分隔符与格式逃逸、编码混淆、多语言绕过、载荷拆分、间接注入、对抗性后缀、越权指令、工具劫持。
  • 检测引擎:「规则」「语义」或「混合」。
  • 灵敏度:「低」「中」「高」,越高越严格:「高」拦截最多,误报也最多;「低」只拦截把握最大的请求。新建时默认「高」。
  • 剥离:把命中的片段替换为 [REMOVED] 后继续转发;只有语义命中、没有可定位片段时改为阻断。注入检测只检查请求,不检查回答。

意图安全检测

  • 高风险意图类型:敏感数据泄露、破坏性操作、欺诈、系统越权、恶意代码植入。
  • 置信度阈值:0.5~1,默认 0.9,风险概率达到或超过阈值才算命中。
  • 封禁:动作选「封禁」时还要填「自动解封时间(小时)」,范围 1~8760,默认 24。
  • 保存前必须勾选「开启并同意用于跨会话安全分析」。

适用接口:敏感信息、提示词注入和意图安全检测只作用于 /v1/chat/completions、/v1/messages 和 /v1/responses。向量、图像、音频、视频和重排序接口只执行封禁、模型访问控制和客户端访问控制检查。语义检测服务暂时不可用时,语义部分不会拦截请求,规则检测照常执行。

调用方看到什么

执行动作 网关行为 调用方看到
告警 放行请求,记录安全事件并发送通知 正常响应
掩码 把命中内容替换后再转发给模型 正常响应,模型收到的是掩码后的内容
剥离 把命中的注入片段替换为 [REMOVED] 后转发 正常响应
阻断(请求侧) 不调用模型 403 Request blocked by guardrail policy,error.code 为 guardrail_<类型>
阻断(响应侧,非流式) 丢弃模型的回答 403 Response blocked by guardrail policy,error.code 为 guardrail_sensitive。上游已经生成回答,这次调用照常计费
阻断(响应侧,流式) 响应已经开始输出,无法再返回 403,改为掩码 回答照常输出,命中内容被掩码
封禁 拒绝本次请求,并封禁这把 API Key 本次 403 Request blocked by guardrail policy(guardrail_context);之后 403 Subject is blocked by an active security ban(guardrail_subject_banned)
  • 报错原文不包含策略名称和命中内容,同样的请求重试会得到同样的结果。各报错的处理方法见401 / 403:鉴权与权限。
  • 开启响应侧检测后,流式回答每段末尾约 64 字节会稍晚发出,用于识别被拆在两段之间的号码。
  • 封禁在这条安全事件入库后建立,作用于这把 Key 在本工作空间的全部请求,期间每次被拒绝都会记一条「主体处于封禁状态」事件。到达「自动解封时间(小时)」后自动解除,也可以提前手动解除,见下文。

查看和处置安全事件

安全事件 页顶部的「今日事件」「今日阻断」「待处置」「当前封禁」可以一键筛选;列表支持按事件、请求、链路或主体搜索,并按事件类型、严重级别、处置状态和时间筛选,「导出」按当前筛选条件下载。

打开一条事件,详情包括:

区块 看什么
基本信息 发生时间、事件类型、触发策略、触发主体、执行动作、严重级别、处置状态、模型、客户端。「触发主体」显示 API Key 名称和创建人,创建人是 Key 的创建者,不一定是实际调用者
触发时间线 「请求到达」→「围栏命中」(请求侧或响应侧,规则命中、语义命中及分数,或配额触顶)→「执行动作」。实际动作与配置不同时会写明原因,例如「响应已开始流式输出,阻断无法执行」「语义命中无字符位置,掩码降级为阻断」
匹配详情 命中规则、触发阈值、置信度、检测器和请求 ID
取证原文 · 已脱敏 敏感信息和注入检测在请求侧命中时,显示命中位置附近的原文,敏感值已脱敏,查看行为会写入审计;配额、模型、客户端类事件不采集请求内容
处置时间线 每次处置的动作、状态、备注、操作人和时间

点「查看关联访问日志」可以直接打开这次请求的日志详情。

处置:在「处置备注」中写明结论后,点「确认事件」(变为「已确认」)、「标记误报」(「误报」)或「完成处置」(「已解决」)。封禁类事件还有「解除主体封禁」,执行后状态变为「已解决」,几秒内撤销这把 Key 在本工作空间的封禁。在列表中勾选多条事件可以批量处置,单次最多 500 条,超出部分需要再执行一次。处置只改变事件状态,不修改策略;误报较多时请回到安全围栏调整策略。

常见问题

同一个问题为什么只生成了一条事件?

答: 为避免列表被刷屏,敏感信息和提示词注入检测在 5 分钟内对同一策略、同一 Key、同一类别的命中合并为一条事件;配额触顶按统计周期合并。合并只影响事件记录,每次请求的拦截或掩码照常执行,每个被拦截的请求在日志中都有记录。

成员报告请求被拦截,账号管理员怎么找到对应事件?

答: 请成员提供调用时间、API Key 名称和报错中的 error.code,账号管理员在安全事件中按时间范围和事件类型筛选。能在日志中找到这次请求时,把日志详情顶部的 Request ID 粘贴到安全事件的搜索框,即可定位到对应事件。