跳转到主要内容
一个携带 AKIA... 密钥的提示词、一份粘贴的 .env、一个回显 它自己 sk-... 令牌的智能体——它们中的任何一个都可能以明文把 一个有效凭证送到 OpenAI、Anthropic 或 Google,并落入它们的 日志和你的日志。Secrets Blocker 在网关阻止这一点:一个一键 防护栏预设,它扫描请求中的凭证形态,并在一个字节离开你的 网关之前以 HTTP 400 拒绝调用。 这是密钥泄露用例的专注落地页。完整的防护栏引擎——每种规则 类型、字段和路由——请见防护栏参考

1. 用一个预设防止 LLM API 密钥泄露流程

防止 LLM API 密钥泄露管道的整个重点是在上游调用之前捕获 凭证,而不是在它已经进入某个提供商的请求日志之后。Secrets Blocker 预设正是这样做的。它是一个小型防护栏,由输入阶段 block 规则组成,每一条都是一个针对知名凭证形态的正则:
AKIA 后跟 16 个大写字母数字字符——标准的 AWS access-key-id 形态。
一个 sk- 前缀后跟一个长令牌主体——OpenAI 和若干相似的 提供商密钥所使用的形态。
一个 ghp_ 前缀后跟一个 36 字符的主体。
当任何规则匹配时,请求被拦截——网关从不转发它。策略存在于 网关中,而不在你的应用中,因此你的应用继续像以前一样调用 /v1/chat/completions,无需修改 SDK,无需重新部署。
输入阶段,计量之前。 Secrets Blocker 筛查你发送的内容。 一个匹配会在模型被调用之前拒绝调用,因此凭证永远不到达 提供商,被拦截的请求不消耗配额。要同时捕获模型发出回 客户端的密钥,把它与一个输出拦截预设配对——参见 §5

2. 在控制台中应用预设

这里的每一步都是你会话下托管网关上的控制台操作。创建和 编辑防护栏需要工作区中的 Developer+。只有最后的 /v1/* 调用使用 sk-orca-... 中继密钥。
1

打开模板

在控制台中打开 Guardrails,点击 New guardrail 分裂 按钮,从 Secrets 模板类别中选择 Secrets & API-Key Blocker。它会播下输入阶段拦截规则的种子。
2

命名并保存

给它起一个名字(≤ 64 字符),例如 secrets-blocker,并保存。 预设是种子,而不是锁——之后可以自由添加或编辑规则(参见 §4)。
3

测试它

打开 Test 标签页,在 input 阶段粘贴一个样本凭证,并在 本地运行该策略——没有上游调用,没有配额(参见 §3)。
4

绑定一个密钥

编辑一个 API 密钥,从 Guardrail 下拉菜单选择 secrets-blocker(在密钥上设置 guardrail_id),或将它标记为 工作区默认值。参见 绑定到密钥账户默认值

3. 绑定前先测试

在任何密钥指向它之前,先证明规则会触发。打开编辑器内的 Test 标签页,粘贴一个虚拟凭证,选择 input 阶段,然后运行:
Here is my key: AKIAIOSFODNN7EXAMPLE
沙箱在本地评估当前策略——不会向上游发送任何内容,也不 计量——并返回指明触发规则的 block 判定。要针对一个泄露密钥 和良性样本的语料库做 A/B 对照, Eval 工具就在隔壁那个 标签页。

4. 扩展覆盖范围

Secrets Blocker 覆盖三个流量最高的形态。Secrets 类别提供了 你可以与它一起应用的同类预设,你也可以为你的技术栈签发的任何 令牌编写自己的 regex 规则:

Private Keys & Cloud Tokens

一个配套的 Secrets 预设,在请求上拦截 PEM 私钥、Slack 和 Stripe 令牌、Google API 密钥,以及 JWT。

Crypto Wallet Block

当 BTC 和 ETH 风格的钱包地址绝不应到达提供商时,在请求上 拦截它们。
要匹配一个内部令牌格式,在 input 阶段添加一条动作为 blockregex 规则——RE2 模式,线性时间,无反向引用。糟糕的模式在保存时被拒绝,因此 一个你能保存的防护栏总是能编译。
比起拦截,想脱敏一个泄露的密钥并放行净化后的请求?使用 一条带 mask 动作的 pii 规则 ——内置检测器集合包括 aws_access_keyapi_key_openaijwt,每一个都渲染为一个像 [AWS_ACCESS_KEY] 的带类型标签。 block vs. mask 见动作

5. 同时捕获响应中的密钥

Secrets Blocker 筛查请求。一个单独的 Secrets 预设, Code Secret in Output,筛查模型的响应中是否有私钥和 AWS/OpenAI 风格的令牌,并在有一个泄露回来时拦截调用。 输出 block 两种方式都会执行:在非流式响应上,答案在返回 之前被筛查;在流式响应上,一个扫描器会在任何被拦截的内容 到达客户端之前切断流。输出阶段拦截会退回预先扣除的配额。 参见输出阶段规则流式覆盖

6. 拦截是什么样子

被拦截的请求返回 HTTP 400,错误码为 guardrail_blocked, 消息中指明触发的防护栏和规则:
{
  "error": {
    "code": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-blocker\": regex(...)"
  }
}
该请求不消耗配额——输入阶段拦截在计量之前触发——并被标记为 skip-retry,因为针对另一个通道重新运行同一个提示词只会 再次拦截。参见 guardrail_blocked 错误

7. 查看触发了什么

每条触发的规则都会记录一条匹配——规则类型、动作、阶段和 一个详情字符串——呈现在工作区 Matches 信息流中。匹配的子串 本身(凭证)在开启 Log raw content 时才记录,而它 默认关闭
对于一个密钥控制,让 Log raw content 保持关闭通常正是重点: 捕获匹配的子串会把泄露的凭证直接重新写进你自己的遥测。除非你有 狭窄的分诊需要,否则把它关闭,并轮换任何被捕获的凭证——一个 被拦截的请求意味着该密钥曾暴露在一个提示词中,而不意味着它 安全。参见 Matches 信息流日志与隐私

8. 接下来去哪里

正则检测器

用 RE2 正则规则编写你自己的凭证模式。

动作

按规则选择 block、mask、flag、annotate 或 spotlight——并按实体选择 block、mask、flag 或 annotate。

PII Shield

在模型看到之前把 email、SSN 和卡号脱敏为带类型的标签。

调优误报

从 Matches 信息流标记误报并收紧检测器。
Secrets Blocker 让凭证不进入你发送的内容。要阻止智能体通过 一次工具调用泄露密钥——外泄到攻击者控制的主机——请使用 防火墙并阅读 数据外泄威胁密钥泄露威胁。完整的防护栏 引擎请见防护栏参考