PuppyIP 资源中心
AI 安全动态 8 分钟 发布于 2026-11-13

Cloudflare AI Security Terraform:开启检测后,如何单独配置拦截?

启用 AI Security 检测不会自动拦截提示词。要阻止或挑战请求,仍需另外定义 WAF 自定义规则或速率限制规则。

Cloudflare AI Security for Apps Terraform WAF 自定义规则

服务对象与地域限制

PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。

代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。

本文要点

  • cloudflare_ai_security 用于开启 zone 的 AI Security for Apps;它不会自动创建拦截规则。阻止或挑战请求需要显式配置规则和动作。
  • Cloudflare Terraform Provider 5.29.0 起支持相关资源。LLM 端点发现适用于所有套餐;检测字段与 AI Security Log Mode Ruleset 是 Enterprise 付费附加项,需向账户团队确认资格。
  • 检测只扫描带有 cf-llm 标记端点上的 application/json 请求,并要求 zone 已启用 WAF。
  • cloudflare_ai_security_custom_topics 管理 zone 的完整主题列表;自定义规则需合并到现有的唯一 zone 入口规则集。

开启检测不会自动拦截

Cloudflare 在 2026 年 11 月 12 日宣布为 AI Security for Apps 增加 Terraform 支持。cloudflare_ai_security 用于为一个 zone 启用检测;设置 enabled = true,并不等于创建了拦截提示词的自定义规则,也不会替你选择阻止动作。检测开关和流量处置是两项独立配置。

启用且具备相应资格后,检测结果会提供给 WAF 规则表达式使用。你可以在 Security Analytics 中按 cf-llm 标记查看结果;如果要阻止或挑战请求,还要另行定义自定义规则或速率限制规则,并明确规则条件和动作。

先确认 Provider 版本和账号资格

Cloudflare Terraform Provider 5.29.0 起支持 cloudflare_ai_security 和 cloudflare_ai_security_custom_topics。LLM 端点发现适用于 Free、Pro、Business 和 Enterprise;AI 检测字段以及 AI Security Log Mode Ruleset 则列为 Enterprise 付费附加项。

如需检测字段或 Log Mode Ruleset,应先联系 Cloudflare 账户团队确认当前账号的开通条件。现有资料没有确定公开价格、国家或地区可用性,也不能证明某个具体账号已有相应授权;不要仅凭 Terraform 配置或套餐名称作出这类判断。

确认检测流量符合范围

AI Security for Apps 只扫描带有 cf-llm 标记的端点请求,而且目前仅处理 application/json 内容类型。所在 zone 还必须启用 WAF,检测字段才能生成并用于规则表达式。

因此,未标记的端点和非 JSON 请求不在这段已说明的扫描范围内。开启资源不代表覆盖所有应用流量,也不是对所有提示词都会拦截的保证;先核对目标端点、内容类型和 zone 的 WAF 状态。

把自定义主题作为 zone 的完整清单管理

cloudflare_ai_security_custom_topics 管理的是该 zone 的整份自定义主题列表。Terraform apply 会用配置中的列表替换 zone 当前主题,包括之前从 Cloudflare 控制台添加、但尚未写入 Terraform 配置的主题。

应用前先把希望保留的主题都纳入配置,再检查计划中的列表变化。自定义主题规则表达式引用的标签必须与主题列表中的 label 完全一致;重命名标签时也要同步检查规则表达式。

将拦截规则并入现有入口规则集

示例通过 cloudflare_ruleset 创建 kind 为 zone、phase 为 http_request_firewall_custom 的自定义规则入口,并在规则表达式中使用 AI 检测字段,例如 cf.llm.prompt.pii_detected 或 cf.llm.prompt.custom_topic_categories。检测字段本身仍不等于拦截动作;阻止或挑战由规则的 action 决定。

每个 zone 的自定义规则只有一个入口规则集。如果 Terraform 已管理该入口,把新规则合并进现有 cloudflare_ruleset,不要再创建第二个入口资源。示例所需的 API Token 权限为 Zone WAF Write;提交变更前应确认所用令牌具备该权限。

先审查计划,再做合成流量检查

变更前核对 Provider 版本、账号附加项资格、zone 的 WAF 状态、cf-llm 端点和 JSON 请求;同时查看当前 Terraform 状态、完整自定义主题列表,以及是否已有 http_request_firewall_custom 入口规则集。

检查 Terraform plan:开启检测的资源不应被误读为已经创建拦截规则;主题资源会替换整份清单;新规则应合并到现有入口规则集。确认变更差异和 Zone WAF Write 权限后,再按你的变更流程决定是否执行。

如需验证表达式范围,在隔离的非生产 zone 使用仅含虚构提示词的合成 JSON 请求,并只用这些合成请求检查 Security Analytics 和自定义规则行为。不要把真实客户提示词、个人信息或凭据放进请求样本。本文提供的是检查步骤,没有替任何账号运行 Terraform plan 或 apply,也没有声称完成实际测试。

把完整请求体日志作为单独的数据决定

AI Security Log Mode Ruleset 会把完整请求体与检测结果一起记录。这比只查看检测字段包含更多请求内容,开启前应先评估业务是否确实需要、日志可访问人员以及适用的数据处理和保留安排。

检测和记录请求正文需要分别评估。若当前目标只是使用检测字段编写自定义拦截规则,不要把记录完整请求体当成默认步骤;先确认账号资格和日志处理边界。

资料来源

常见问题

这项检测是否只适用于某一家大模型?

不是。Cloudflare 将 AI Security for Apps 描述为不依赖特定模型,检测可用于不同 LLM。但 cf-llm 标记、application/json、WAF 和账号附加项条件仍然适用。

Terraform plan 成功,能否证明提示词已被拦截?

不能。plan 是计划变更,不是实际请求结果。还需按获批流程应用变更,并用隔离的合成请求分别确认检测信号、匹配规则和实际动作;没有这些结果时,拦截状态仍属未知。