☁Zero Trust 上手指南
简体中文
Telegram Cloudflare 文档 ↗

模块 3c — 设备姿态检查(Device Posture Checks)

目标: 验证设备健康且可信——磁盘已加密、防火墙开启、系统为最新、运行着你的 EDR、属于公司资产——并在 Access 与 Gateway 策略中使用这些信号,只让合规设备访问敏感资源。

👤 谁来做 安全 / 终端团队
⏱️ 用时 约 40 分钟
🎯 完成后你将拥有 可复用的姿态检查用于把关访问,并在每个请求上持续重新评估
✋ 开始前 模块 3 已完成(设备以 Gateway with WARP 注册)。高级/第三方检查需要 Enterprise。

🧭 为什么姿态很重要。 身份回答*"这是谁?";姿态回答"他所用的设备是否值得信任?"* 零信任两者都需要。姿态检查是一个可复用的信号,定义一次即可在多条 Access 与 Gateway 策略中引用——而且由于 Cloudflare 在每个请求上评估它,设备一旦不再合规(防火墙关闭、磁盘解密、系统过期),其访问权就会被自动切断。

💡 这是对 模块 3 E 部分的扩展。模块 3 添加了一项简单检查;这里是完整工具箱。


两类姿态检查

类型 信号来自 举例 套餐
WARP 客户端检查 设备上的 Cloudflare One 客户端 磁盘加密、防火墙、系统版本、文件/应用存在、序列号、客户端证书、杀毒软件 免费层含基础项;更多在付费层
服务提供商检查(service-to-service,S2S) 通过 API 接入的第三方安全平台 CrowdStrike、SentinelOne、Microsoft Intune、Tanium、Carbon Black、Kolide… Enterprise

两者在同一处构建,并在策略中以相同方式引用。


A 部分 — 内置的 WARP 客户端检查

这些直接来自 Cloudflare One 客户端——无需第三方工具。

检查 验证什么 常见系统
磁盘加密 部分/全部磁盘已加密(BitLocker、FileVault…) Win / macOS / Linux
防火墙 防火墙正在运行 Win / macOS
系统版本 系统达到/高于某版本(可细到 build/revision) Win / macOS / Linux / iOS / Android
杀毒软件 (较新,Windows) 存在杀毒程序——可选检查是否最新 Win
应用检查 某进程正在运行(如你的 EDR 代理) Win / macOS / Linux
文件检查 某文件存在(如合规标记文件) Win / macOS / Linux
加入域 设备已加入你的 Microsoft AD 域 Win
设备序列号 序列号匹配你的公司设备列表 Win / macOS / Linux
唯一客户端 ID 匹配 MDM 分配的 UUID iOS / Android / ChromeOS / 桌面
客户端证书 已安装有效的客户端证书(绑定设备身份) Win / macOS / Linux / iOS / Android
要求 WARP 设备已通过 Cloudflare One 客户端连接 全部
要求 Gateway 流量正经过 Gateway 全部

💡 客户端证书进阶技巧: 证书检查支持模板变量——${serial_number} 与 ${device_uuid}——可用于 Common Name 和 Subject Alternative Name,从而把证书绑定到特定设备身份。


B 部分 — 创建一个 WARP 客户端检查

我们来构建一个"磁盘已加密"检查(上表任一检查都可套用此模式)。

  1. 👉 在控制台,前往 Settings → WARP Client → Device posture(或 Reusable components → Posture checks)。
  2. 👉 点击 Add new → 选择 Disk encryption。
  3. ⌨️ 起一个清晰的名字,如 Disk encrypted。
  4. 👉 选择它适用的操作系统。
  5. 👉 设置检查频率(客户端多久重新评估一次,如每 5 分钟)。
  6. 👉 配置具体项(磁盘加密:哪些磁盘必须加密)。
  7. 👉 点击 Save。

📺 你会看到: 该检查列在 Device posture 下,正在评估你已注册的设备,每台显示合规/不合规。

✅ 检查点: 你的试点设备在该检查上报告合规(前提是其磁盘确实已加密)。

⭐ 最佳实践——系统版本检查: 要求你已测试过的最新版本,而非绝对最新。否则某个当天发布的新系统可能在上线那一刻把整个机群锁在门外。


C 部分 — 添加第三方(服务提供商)检查 (Enterprise)

把你已在运行的 EDR/MDM 的信号,接入 Cloudflare 的访问决策。

  1. 👉 前往 Settings → WARP Client → Device posture → Add new。
  2. 👉 选择你的提供商——如 CrowdStrike、SentinelOne、Microsoft Intune(Endpoint Manager)、Tanium、Carbon Black、Kolide。
  3. 👉 按提供商相关提示操作:从该平台管理控制台粘贴 API 凭据 / 客户端 ID + 密钥,让 Cloudflare 能查询设备状态。
  4. ⌨️ 设置评估标准——如 CrowdStrike Zero Trust Assessment(ZTA)分数 ≥ 50,或 Intune compliant = true。
  5. 👉 Save 并确认集成已连接。

💡 工作原理: Cloudflare 通过序列号、ID 或邮箱将设备与提供商的 API 匹配,拉取其风险分数/合规状态——于是"设备经 CrowdStrike 判定无威胁"就成了你可要求的条件。

⚠️ Gateway 注意事项: 多数服务提供商检查在 Access 和 Gateway 策略中都可用,但 Tanium 不支持 Gateway 策略——仅限 Access。若 Tanium 是你的事实来源,请据此规划。


D 部分 — 在策略中使用姿态

姿态检查在被策略引用之前不起任何作用。有两处:

在 Access 策略中(按应用)——模块 4

  1. 👉 Access → Applications → 你的应用 → Policies → 编辑/添加。
  2. 👉 添加一条 Require 规则 → 选择器 Device Posture → 选择你的检查,如 Disk encrypted + CrowdStrike ZTA ≥ 50。

在 Gateway 网络策略中(范围更广)——模块 5

  1. 👉 Gateway → Firewall Policies → Network → Add a policy。
  2. 👉 选择器 Device Posture → 你的检查 → 动作(如不合规则 Block)。

实战示例——"工程师仅可从健康设备访问生产环境":

规则 选择器 取值
Include IdP Groups Engineering
Require Device Posture Disk encrypted
Require Device Posture Firewall on
Require Device Posture CrowdStrike ZTA ≥ 50

💡 天生可复用: 把 Disk encrypted 定义一次,即可添加到任意多个应用/策略。更新该检查,所有引用它的策略同步更新——把常用检查打包进 Access 组 即可一键复用。


E 部分 — 持续重新评估(零信任的关键回报)

姿态并非登录时的一次性关卡。Cloudflare 在每个请求上重新检查它,因此:

  • 若用户关闭防火墙,或 EDR 在会话中途将设备标记为风险,其对受保护应用的访问会被自动撤销——无需等到下次登录。
  • 修复后,在下一次成功检查时恢复访问。

这正是让"从不信任、始终校验"落地的机制:信任是持续重新赢得的,而非一次性授予。


F 部分 — 验证

  1. 👉 控制台: My Team → Devices → 打开某设备 → 查看其姿态信号(每项检查合规/不合规)。
  2. 👉 在设备上(命令行):
    warp-cli posture         # 列出每项姿态检查及当前通过/失败
    
  3. 👉 测试执行: 在合规设备上访问一个受姿态把关的应用——可用。然后破坏某个信号(如在测试机上关闭防火墙)并重试——访问应在重新评估窗口内被拒绝。

✅ 检查点: 合规设备通过;某个未通过必需检查的设备被阻止,且你能在 Logs → Access(或 Gateway 日志)中看到该决策。


✅ 模块 3c 完成!

你现在拥有:

  • ✅ 对 WARP 客户端检查与服务提供商检查的理解
  • ✅ 一个或多个已定义的可复用姿态检查
  • ✅ (Enterprise)一个把信号送入访问决策的第三方 EDR/MDM
  • ✅ 在 Access 和/或 Gateway 策略中要求姿态
  • ✅ 确信不合规设备会被持续切断,而不仅是在登录时

快速排障

问题 解决办法
策略中缺少 Device Posture 选择器 先创建至少一个姿态检查(B 部分)——选择器仅在之后出现
设备意外显示不合规 检查系统范围 + 标准(如哪些磁盘必须加密);确认客户端为较新版本
第三方检查永不匹配 复查 API 凭据,以及 Cloudflare 能否在该平台匹配到设备(序列号/ID/邮箱)
Tanium 检查在 Access 可用但 Gateway 不行 属预期——Tanium 不支持 Gateway 策略;请在 Access 中使用(C 部分)
系统版本检查把所有人锁在门外 你要求了过新的版本——设为你已验证的最新版,而非绝对最新(B 部分)
姿态变化未反映 等待重新评估间隔,或将客户端开关一次;用 warp-cli posture 验证

👉 下一步:模块 4 — ZTNA / Access

把私有应用置于 Access 之后,并要求这些姿态检查作为进入条件。