跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

请求验证

最后更新 查看 MarkdownAgent 设置

Cloud Workload Security (CWS) 使用工作负载和策略验证 API 请求。工作负载定义请求范围,策略定义检查项,策略集则将范围与检查项关联起来。部署会选择要应用的策略集。

各资源的定义请参阅 CWS 实体。

概念如何协同工作

请求验证会结合范围、检查项和强制执行设置:

flowchart TD
    accTitle: CWS request validation
    accDescr: A deployment selects policy sets. Workloads define request scope, policy filters select matching requests, and Rego valid rules validate them. Modules, metadata, and tenant structures supply shared logic and data. Enforce settings and deployment defaults determine whether requests are allowed or blocked.

    A["Deployment's policy sets"] --> B["Workload scope<br/>Included and excluded requests"]
    B --> C["Policy filters<br/>Select applicable policies"]
    C -->|Matching policies| D["Rego validation<br/>Each policy's valid rule"]
    C -->|No matching policy| F["Request decision<br/>Enforce and deployment defaults"]
    E["Rego modules, metadata,<br/>and tenant structures"] -.-> D
    D --> F

选择适用策略

部署和策略集

部署会选择可供评估的策略集。每个策略集会对策略分组,并指定纳入和排除的工作负载。

工作负载范围

配置了纳入项时,请求必须匹配某个纳入的工作负载,且不得匹配任何排除的工作负载。纳入列表为空时,不会增加纳入限制。

策略筛选器

在该范围内,每个策略的筛选器会选择要检查的请求。例如,工作负载可以选择 Cloudflare API 流量,而策略筛选器可以选择某一项 R2 操作。工作负载范围和策略筛选器都必须匹配,该策略才会生效。

使用 Rego 进行验证

每个匹配的策略都会评估名为 valid 的布尔规则。结果为 true 表示该策略的检查通过,结果为 false 则表示检查失败。你可以使用 Rego 验证请求内容,例如检查某项更改是否会使存储桶公开。

策略可以重复使用共享逻辑和数据:

  • Rego 模块提供可重复使用的检查逻辑。
  • Rego 元数据提供共享 JSON 值。
  • 租户结构描述云资源层次结构。通过包路径,可在 Rego 中访问其中的节点。

应用强制执行和默认值

策略集中的每个策略都有 Enforce 设置,用于决定检查结果如何影响请求:

条件 效果
匹配的策略返回 true。 该检查通过。其他启用了强制执行的策略仍可能阻止请求。
匹配的策略返回 false,且已开启 Enforce。 阻止请求。
匹配的策略返回 false,但已关闭 Enforce。 记录检查失败,但不根据该策略的结果阻止请求。
没有策略匹配此请求。 应用部署的 Default mode。

一个请求可能匹配多个策略。即使另一个策略通过,任何启用了强制执行的策略检查失败仍会阻止请求。Rego 检查失败并不等同于请求未匹配,因此不会回退到 Default mode。

使用部署的 On error action 设置配置策略错误处理方式。

示例:保持 R2 存储桶为私有

假设某个工作负载会选择 Cloudflare API 请求。其策略集包含一项用于更改 R2 存储桶公共访问权限的策略。策略筛选器会选中该操作。Rego 仅在 input.http.request.body.enabled 为 false 时才允许该操作。

尝试启用公共访问权限时,会匹配该筛选器,但无法通过 Rego 验证。启用 Enforce 后,CWS 会阻止此请求。有关可运行的防护示例,请参阅快速入门。

相关控制项

域 ACL 用于控制部署可以访问哪些目标。允许访问某个目标并不会绕过工作负载范围或策略检查。

Basic Auth 凭据 提供客户端身份,工作负载筛选器和策略筛选器可据此进行匹配。云服务提供商仍会执行自身的身份验证和权限检查。

要配置范围和强制执行,请参阅配置策略。要检查决策,请参阅读取代理日志。

这篇文档对您有帮助吗?