安全护栏行为
安全护栏会在 AISIX 调用上游模型之前、模型返回响应之后,或在两处添加内容策略检查。其共用运行时控制项决定哪些流量会被检查、匹配是否会阻止流量,以及调用方和操作员能够观测到什么。
内置关键词和 PII 安全护栏在网关内部评估内容。远程安全护栏将提取出的内容发送到审核服务,并应用其决策。选择安全护栏服务提供方比较了可用的内置和远程选项。
两类安全护栏都使用本页所述的行为。远程安全护栏还需要为审核服务故障配置明确策略。
检查位置
安全护栏的检查位置决定 AISIX 在哪里执行检查:
| 检查位置 | AISIX 检查内容 | 被阻断时的效果 |
|---|---|---|
input | AISIX 发送到服务提供方之前的调用方请求。 | 不会调用服务提供方。 |
output | AISIX 返回给调用方之前的响应内容。 | 调用方不会收到被阻断的响应。 |
both | 请求和响应内容。 | 在路由支持的两侧都应用同一个安全护栏。 |
输入安全护栏覆盖标准推理路由中包含文本的部分:Chat Completions、Completions、Responses、Messages、Embeddings、图像生成、音频语音、可选的音频转录和翻译提示词,以及重排请求。它们还会扫描 Realtime 文本帧、MCP tools/call 参数、Files、Batch 和 Fine-tuning 请求载荷,以及原始服务提供方透传请求体。
输出安全护栏会扫描 Chat Completions、Completions、Responses、Messages、音频转录和翻译返回的文本。它们还会扫描 Realtime 文本帧、MCP tools/call 结果、Files、Batch 和 Fine-tuning 响应载荷,以及透传请求体。Realtime 二进制帧会直接中继,不执行安全护栏内容检查。
在透传隧道上,AISIX 无法解析请求结构,因此会将完整请求体和响应体作为文本交给已附加的安全护栏扫描。任一侧命中都会返回 422,上游响应体不会继续转发。
安全护栏匹配
选择钩子点后,使用作用范围控制哪些请求可以到达安全护栏。在自托管部署中,通过 Admin API 创建的安全护栏会应用于整个环境。AISIX 托管控制面则可以将安全护栏附加到环境,或附加到选定的模型别名、调用方 API Key 或团队。
当多个安全护栏同时适用于同一个请求时,AISIX 会把它们作为一条链路进行评估。任意一个安全护栏给出阻断判定,都会阻断请求或响应。
如果同一个安全护栏通过多个匹配的 Cloud 作用范围附加到请求链路中,AISIX 只保留一份该安全护栏。优先级最高的附加关系生效;当优先级相同时,作用范围越具体优先级越高,顺序为:调用方 API Key、团队、模型别名、环境。
执行模式
安全护栏的 enforcement_mode 决定 AISIX 在安全护栏检测到匹配内容后如何处理。
选择以下两种执行模式之一:
block拒绝匹配内容。如果省略enforcement_mode