完全可编程的安全Web网关
内容提要
Cloudflare为Gateway和DLP引入可编程能力,推出Forward动作和自定义函数,允许用户通过Workers在策略评估路径中运行自有代码,实现流量转换、动态响应、JWT头注入和DLP验证,无需额外基础设施,且无网络跳转延迟。
延伸解读
可编程安全网关的实质突破
文章强调,真正的可编程性并非提供API或Webhook,而是允许用户代码在策略评估路径中内联执行。Cloudflare通过Forward动作和自定义函数,将Workers与Gateway同机部署,消除了网络跳转延迟。这解决了传统安全网关只能执行固定动作(允许、阻止、隔离、记录)的局限,使企业能针对自身环境实现流量转换、动态响应等定制逻辑,而无需维护额外代理基础设施。
两种扩展方式的选择指南
Forward动作适合需要修改请求或响应的场景,如注入HTTP头、生成动态警告页面、将文件发送至沙箱分析。自定义函数则用于策略评估中的快速、无状态计算,例如解析JWT返回角色、查询内部风险评分。文章建议,自定义函数应像现有选择器一样简单,而Forward动作需谨慎设计,避免影响用户体验。两者均基于Workers,但Forward处理完整HTTP流量,自定义函数仅返回类型化值。
DLP验证的精准化改进
传统DLP依赖正则或关键字匹配,无法判断数据是否真正敏感。自定义验证函数允许在检测到匹配时,调用Worker使用自有数据源进行二次验证。例如,检测到GitHub密钥后,可实时调用GitHub API确认密钥是否有效,仅对活跃密钥触发策略。这减少误报,且数据无需离开Cloudflare网络。该功能已可用,适用于Gateway、AI Gateway、Email Security等所有DLP集成点。
性能、可用性与计费须知
由于Gateway和Workers运行在同一网络位置,调度Worker无额外网络延迟,性能影响仅取决于Worker代码执行时间。自定义函数失败时可配置回退行为,且契约要求默认值。Forward动作已公测,自定义函数预计年底前可用,正式发布后所有计划类型均可使用。调度到Workers的流量按标准Worker请求计费,Workers Free有执行时间和每日请求限制,大规模部署时需考虑。
Q&A
Cloudflare Gateway 新推出的 Forward 动作是什么?
Forward 是一种新的 Gateway 策略动作,可将匹配的 HTTP 请求路由到 Cloudflare Worker 作为代理。Worker 作为内联中间件,能接收完整请求头和请求体,修改请求或响应,或执行异步操作,然后将请求转发到源站并返回最终响应。
自定义函数(Custom Functions)在 Gateway 中如何工作?
自定义函数在 Gateway 策略评估期间内联调用 Worker 并返回一个值(字符串、数字或布尔值)。该函数作为选择器暴露在策略构建器中,可用于任何网络或 HTTP 规则的条件,类似于内置选择器。Worker 接收请求上下文(如源 IP、目标、用户身份、设备状态、HTTP 头等),返回类型化值供 Gateway 在规则条件中使用。
使用 Cloudflare 的可编程安全网关相比传统方案有什么性能优势?
由于 Gateway 和 Workers 运行在 Cloudflare 网络的同一台机器上,将流量分派到 Worker 不会引入网络跳转,性能影响仅限于 Worker 代码本身的执行时间。这避免了独立 SASE 提供商需要跨网络边界带来的往返延迟和管理开销。
自定义函数和 Forward 动作分别适用于什么场景?
自定义函数适用于快速、有界、无状态的评估,返回结构化响应,类似于在 Gateway 选择器中评估数据,但可扩展任意或内部数据源。Forward 动作需要更多规划,用于对用户实时请求进行强大的内联转换,可在出口和返回源站时复杂操作流量,应谨慎设计以避免影响用户体验。
DLP 自定义验证函数能解决什么问题?
DLP 自定义验证函数允许客户在 Cloudflare Worker 中定义自己的验证逻辑,使用自己的真实数据源,在 DLP 检测匹配后、策略执行前运行验证。这解决了传统 DLP 只能匹配模式而无法判断数据是否实际相关的问题,例如验证 GitHub 密钥是否有效,从而减少误报。
这些可编程安全功能的可用性和定价如何?
Forward 动作及其与 Workers 的集成已公开测试,自定义函数预计年底前可用。正式发布后,所有计划类型的客户均可使用。分派到 Workers 的流量按标准 Worker 请求计费,支持 Workers Free、Paid 和 Enterprise,但 Workers Free 有执行时间和每日请求限制。