模块 7c — AI Gateway:保护与实施
目标: 把 Cloudflare AI Gateway 置于你的应用与智能体所调用的 AI 模型之前——让每一次程序化 AI 请求都经过认证、可观测、成本受控、对不安全内容做审核,并用你的 Zero Trust DLP 配置文件扫描敏感数据。
| 👤 谁来做 | 平台 / AI 工程 + 安全团队 |
| ⏱️ 用时 | 约 40 分钟 |
| 🎯 完成后你将拥有 | 一个在你的 AI 提供商之前、带护栏、DLP、日志与成本控制的、经认证的 AI Gateway |
| ✋ 开始前 | 一个调用 AI 模型的应用/智能体(OpenAI、Anthropic、Workers AI、Google…)。DLP 扫描使用 Zero Trust DLP 配置文件(模块 6)——Enterprise。 |
🧭 AI Gateway 的定位。 模块 7 治理在浏览器中使用 AI 的人。模块 7b 治理连接工具(MCP)的 AI 智能体。AI Gateway 治理另一个方向:你自己的应用与智能体通过 API 调用 AI 模型。 它是位于你的代码与 AI 提供商之间的代理,因此你无需更换模型或提供商即可获得控制与可见性——且关键在于,它工作在 API 层,无需设备客户端或 TLS 解密。
你的应用 / 智能体 / 编码工具
│ (把 base URL 改为 gateway 端点)
▼
┌─────────────────────────────────────────────┐
│ CLOUDFLARE AI GATEWAY │
│ 认证 ▸ 护栏 ▸ DLP ▸ 速率/花费上限 │
│ ▸ 缓存 ▸ 日志 ▸ 回退 │
└───────────────────┬─────────────────────────┘
▼
AI 提供商:OpenAI · Anthropic · Workers AI · Google · …
A 部分 — 创建并连接一个 gateway
- 👉 在 Cloudflare 控制台,前往 AI → AI Gateway。
- 👉 点击 Create Gateway,起个名字(如
production),创建。- 📺 你会看到该 gateway 的 OpenAI 兼容端点与设置指引。
- 💡 捷径: 你也可以直接用 gateway ID
default——AI Gateway 会在首次请求时自动创建它。
- 👉 把你的应用指向该 gateway。 在代码中,把 AI 提供商的 base URL 改为你的 gateway 端点:
例如,OpenAI 客户端的 base URL 变为https://gateway.ai.cloudflare.com/v1/{account_id}/{gateway_id}/{provider}…/{account_id}/production/openai。无需其他代码改动——gateway 会转发到提供商。 - 👉 从你的应用发送一个测试请求。
✅ 检查点: 在 AI → AI Gateway → 你的 gateway 中,该请求带指标出现(请求数、tokens、成本、延迟)。流量现在正流经 gateway。
💡 无需 WARP 客户端、无需 TLS 解密、无需网络改动——AI Gateway 是 API 层的控制点。这正是它适合后端服务、批处理作业与自主智能体的原因。
B 部分 — 保护 gateway(Authenticated Gateway)
默认情况下,任何知道端点 URL 的人都可能通过它发送请求。把它锁定,只让你授权的调用方使用。
- 👉 在你的 gateway 中,打开 Settings。
- 👉 启用 Authenticated Gateway。
- 👉 创建一个 AI Gateway 认证令牌,存入你的密钥管理器。
- 👉 让你的应用在每个请求上把它作为请求头发送:
cf-aig-authorization: Bearer <your-aig-token>
✅ 检查点: 不带令牌的请求被拒绝;带令牌的请求成功。即使端点 URL 泄露,也无法被滥用。
⚠️ 注意: 该令牌认证的是对 gateway 的使用;你的提供商 API 密钥是独立的。考虑用 BYOK / Store Keys(Settings),让提供商密钥存放在 Cloudflare 中,永不随应用代码分发。
C 部分 — 护栏(Guardrails,阻止不安全内容)
Guardrails 对流经 gateway 的内容做审核——在有害或不当的提示词与响应到达用户或模型之前将其捕获。
- 👉 在 gateway → Settings → Guardrails → 启用。
- 👉 设置评估范围:审核用户提示词、模型响应,或两者。
- 👉 选择要监控的危害类别,并为每一类决定 Block(阻止)或 Flag(放行但记录)。
- 👉 保存。
✅ 检查点: 属于被阻止危害类别的提示词/响应被拦截(或在日志中被标记),在 gateway 的日志中可见。
💡 Guardrails vs DLP: Guardrails 处理安全性(有毒、有害、不安全内容);DLP(下一部分)处理敏感数据(PII、密钥、源代码)。两者都用。
D 部分 — DLP for AI Gateway(扫描敏感数据) (Enterprise)
这就是 Zero Trust 集成:AI Gateway 可以用你的 Zero Trust DLP 配置文件——即你在 模块 6 构建的相同配置文件——扫描请求与响应的文本,无需 HTTP 过滤、无需 TLS 解密。
- 👉 在 gateway → Features → DLP → Set up。
- 👉 选择要应用的 DLP 配置文件——如 Credentials and Secrets、PII,或一个 AI Prompt 配置文件(PII、源代码、金融、越狱/意图主题;甚至自定义自然语言提示词主题)。
- 👉 用 Check 选择扫描什么:Request(发往模型的提示词)、Response(模型返回的内容),或 Both。
- 👉 设置命中时的动作——flag(记录)或 block(阻止)。
- 👉 保存。
✅ 检查点: 含有伪造密钥/测试 PII 的请求被标记或阻止,且检测结果连同匹配的配置文件出现在日志中。
⚠️ 流式传输注意事项(对延迟很重要): 若你启用 Response 扫描,AI Gateway 会在返回前缓冲完整的提供商响应,这会增加首字延迟(TTFT)——对流式输出的聊天/编码智能体较明显。若你需要低延迟流式传输,设 Check = 仅 Request,或把对延迟敏感的流量路由到一个独立的 gateway。
💡 非常适合编码智能体: Cursor/Claude Code 等工具会把源代码、配置与密钥发送给模型提供商。由于 AI Gateway 位于路径之中,DLP 能在不修改智能体的情况下捕获离开(或返回)的密钥/受监管数据。
E 部分 — 成本、速率与隐私控制
AI Gateway 还提供运营层面的护栏:
| 控制 | 作用 | 位置 |
|---|---|---|
| 速率限制 | 限制窗口内的请求数量 | Settings → Rate limiting |
| 花费上限 | 限制美元成本(按模型、提供商或自定义元数据——如每用户 $200/天) | Features → Spend limits |
| 缓存 | 对相同请求从缓存返回——降低延迟 + 提供商成本 | Settings → Cache Responses |
| 回退 / 重试 | 提供商出错时自动重试或回退到另一模型 | Configuration → Fallbacks |
| 日志载荷控制 | 发送 cf-aig-collect-log-payload: false 只记录元数据,不存储提示词/响应正文 |
逐请求的请求头 |
💡 隐私提示: 对受监管数据,使用 cf-aig-collect-log-payload: false,即可保留使用指标(tokens、成本、模型、状态)而不持久化敏感的提示词/响应文本。
⚠️ 不要在 与 AI Search / RAG 实例共用的 gateway 上启用缓存或速率限制——它会干扰嵌入/索引。请为其使用一个专用 gateway。
F 部分 — 观测与验证
- 👉 在 gateway 中,查看 Analytics(请求、tokens、成本、缓存命中率、错误)与 Logs(逐请求:模型、提供商、状态、成本、时长、user agent,以及——除非已禁用——载荷)。
- 👉 筛选日志,确认你的 认证、Guardrails 与 DLP 动作如预期触发。
- 👉 端到端测试:发送 (a) 正常请求 → 成功;(b) 缺少认证令牌的请求 → 被拒;(c) 含不安全内容的提示词 → 护栏阻止;(d) 含测试密钥的提示词 → DLP 标记/阻止。
✅ 检查点: 四种情况都行为正确且在日志中可见。
✅ 模块 7c 完成!
你现在拥有:
- ✅ 位于你的 AI 提供商之前的 AI Gateway(单一端点、多提供商)
- ✅ Authenticated Gateway——只有授权的调用方能使用
- ✅ Guardrails 阻止提示词/响应中的不安全内容
- ✅ DLP 用你的 Zero Trust 配置文件扫描提示词/响应中的敏感数据
- ✅ 成本、速率、缓存与隐私控制
- ✅ 对每次 AI 调用的完整日志与分析
完整的 AI 安全全景
| 层级 | 治理对象 | 模块 |
|---|---|---|
| 浏览器 AI 使用 | 人们粘贴进 ChatGPT 等 | 7 — AI 管控 |
| AI 智能体 → 工具 | MCP 服务器与门户 | 7b — 保护 AI 与 MCP |
| 你的应用 → AI 模型 | 程序化/API AI | 7c(本篇) |
| 发现并批准 AI 应用 | 影子 AI | 5d — 影子 IT |
| 敏感数据检测 | DLP 配置文件 | 6 — DLP |
快速排障
| 问题 | 解决办法 |
|---|---|
| 请求绕过了 gateway | 确认应用的 base URL 指向 gateway 端点(A 部分) |
| 任何人都能使用该 gateway | 启用 Authenticated Gateway 并发送 cf-aig-authorization 请求头(B 部分) |
| DLP → Set up 不可用 | DLP for AI Gateway 使用 Zero Trust DLP——确认 Enterprise 且配置文件已存在(模块 6) |
| 启用 DLP 后流式传输变慢 | 响应扫描会缓冲完整回复——设 Check = 仅 Request 或使用独立 gateway(D 部分) |
| 敏感提示词被存进日志 | 发送 cf-aig-collect-log-payload: false 只记录元数据(E 部分) |
| AI Search 准确度下降 | 不要在 RAG 实例所用的 gateway 上启用缓存/速率限制(E 部分) |
👉 下一步:模块 8 — Cloudflare WAN
把整个办公室和数据中心接入 Cloudflare 网络。