模組 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 客戶端檢查
我們來構建一個"磁碟已加密"檢查(上表任一檢查都可套用此模式)。
- 👉 在控制台,前往 Settings → WARP Client → Device posture(或 Reusable components → Posture checks)。
- 👉 點選 Add new → 選擇 Disk encryption。
- ⌨️ 起一個清晰的名字,如
Disk encrypted。 - 👉 選擇它適用的作業系統。
- 👉 設定檢查頻率(客戶端多久重新評估一次,如每 5 分鐘)。
- 👉 配置具體項(磁碟加密:哪些磁碟必須加密)。
- 👉 點選 Save。
📺 你會看到: 該檢查列在 Device posture 下,正在評估你已註冊的裝置,每臺顯示合規/不合規。
✅ 檢查點: 你的試點裝置在該檢查上報告合規(前提是其磁碟確實已加密)。
⭐ 最佳實踐——系統版本檢查: 要求你已測試過的最新版本,而非絕對最新。否則某個當天釋出的新系統可能在上線那一刻把整個機群鎖在門外。
C 部分 — 新增第三方(服務提供商)檢查 (Enterprise)
把你已在執行的 EDR/MDM 的訊號,接入 Cloudflare 的訪問決策。
- 👉 前往 Settings → WARP Client → Device posture → Add new。
- 👉 選擇你的提供商——如 CrowdStrike、SentinelOne、Microsoft Intune(Endpoint Manager)、Tanium、Carbon Black、Kolide。
- 👉 按提供商相關提示操作:從該平臺管理控制台貼上 API 憑據 / 客戶端 ID + 金鑰,讓 Cloudflare 能查詢裝置狀態。
- ⌨️ 設定評估標準——如 CrowdStrike Zero Trust Assessment(ZTA)分數 ≥ 50,或 Intune compliant = true。
- 👉 Save 並確認整合已連線。
💡 工作原理: Cloudflare 通過序列號、ID 或郵箱將裝置與提供商的 API 匹配,拉取其風險分數/合規狀態——於是"裝置經 CrowdStrike 判定無威脅"就成了你可要求的條件。
⚠️ Gateway 注意事項: 多數服務提供商檢查在 Access 和 Gateway 策略中都可用,但 Tanium 不支援 Gateway 策略——僅限 Access。若 Tanium 是你的事實來源,請據此規劃。
D 部分 — 在策略中使用姿態
姿態檢查在被策略引用之前不起任何作用。有兩處:
在 Access 策略中(按應用)——模組 4
- 👉 Access → Applications → 你的應用 → Policies → 編輯/新增。
- 👉 新增一條 Require 規則 → 選擇器 Device Posture → 選擇你的檢查,如
Disk encrypted+CrowdStrike ZTA ≥ 50。
在 Gateway 網路策略中(範圍更廣)——模組 5
- 👉 Gateway → Firewall Policies → Network → Add a policy。
- 👉 選擇器 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 部分 — 驗證
- 👉 控制台: My Team → Devices → 開啟某裝置 → 檢視其姿態訊號(每項檢查合規/不合規)。
- 👉 在裝置上(命令列):
warp-cli posture # 列出每項姿態檢查及當前通過/失敗 - 👉 測試執行: 在合規裝置上訪問一個受姿態把關的應用——可用。然後破壞某個訊號(如在測試機上關閉防火牆)並重試——訪問應在重新評估視窗內被拒絕。
✅ 檢查點: 合規裝置通過;某個未通過必需檢查的裝置被阻止,且你能在 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 之後,並要求這些姿態檢查作為進入條件。