2
这个楼主还没有留下简介。
当前还没有回复,欢迎成为第一个参与讨论的人。
在第 9 篇我们用 Dial 和 Bind 策略控制了谁能使用、谁能提供 local-web。这一篇再加一道条件:客户端身份除了获准访问服务,还必须满足设备状态要求。
这种设备状态检查叫 Posture Check。它可以检查操作系统及版本、MAC 地址、指定进程、Windows 域成员关系或 MFA 状态。检查独立于服务策略创建,再通过角色属性关联到 Service Policy。OpenZiti Posture Check 概览介绍了支持的检查类型及其工作方式。
本文用 Windows 操作系统版本作为例子,继续沿用:
text客户端身份:windows-laptop 服务:local-web Dial 策略:local-web-dial
在 ZAC 的 Posture Checks 页面新建一项检查:
text名称:windows-minimum 角色属性:windows-minimum 类型:Operating System Check 操作系统:Windows 最低版本:按你的设备管理要求设置
版本可以按团队实际维护标准设置。下面的 CLI 示例要求 Windows 版本高于 10.0.0,仅用于演示,不能代替组织自己的版本基线。
在已登录控制器的 ziti CLI 中,可以这样创建:
bashziti edge create posture-check os windows-minimum \
-o "WINDOWS:>10.0.0" \
-a windows-minimum
-a 后面的属性名不带 #;在策略中引用它时要写成 #windows-minimum。官方 Posture Check CLI 文档列出了 OS 检查的命令格式和版本匹配示例。
在 ZAC 的 Policies / Ziti Policies → Service Policies 中编辑第 9 篇创建的 local-web-dial,在 Posture Check Attributes 中加入:
text#windows-minimum
保留原来的服务和身份条件:
textService Attributes:@local-web Identity Attributes:#windows-client Posture Check Attributes:#windows-minimum Type:Dial
如果通过 CLI 配置,可以更新现有策略:
bashziti edge update service-policy local-web-dial \
--posture-check-roles "#windows-minimum"
如果策略已经关联了其他 Posture Check,更新时要一并保留那些属性。官方 Service Policy 指南说明,身份和服务匹配之外,策略还可以要求身份通过指定的 Posture Check。
需要特别留意:同一个身份可以通过多条 Service Policy 获得同一服务的访问权限;只要有一条匹配的策略通过,访问就会获准。
因此,如果原来的 local-web-dial 没有 Posture Check,而你另外新建一条相同服务、相同身份但要求设备检查的 Dial 策略,原策略可能仍然允许访问。要让检查真正生效,应编辑原策略,或确认没有其他不带该检查的策略仍授权相同访问。官方文档也特别说明了这一点。
确保 Windows 客户端运行 Ziti Desktop Edge,并且 windows-laptop 已连接。然后在客户端测试:
powershellcurl.exe -v http://hello.ziti/
如果设备满足设置的 Windows 版本条件,且 Dial、Bind 和 Router 相关策略都正确,服务应能正常访问。如果 Posture Check 不通过,客户端可能无法使用该服务;先检查策略引用的角色属性与检查中设置的属性是否一致,再核对操作系统版本条件。
也可以查看当前 Service Policy:
bashziti edge list service-policies
检查 local-web-dial 的 Posture Check Roles 是否包含:
text#windows-minimum
OS 检查只核对操作系统类型和版本,不代表设备已经安装补丁、运行杀毒软件或满足全部安全要求。若要检查特定软件是否正在运行,可以配置 Process Check;若需要求 Windows 设备加入指定域,可以配置 Windows Domain Check。
Posture Check 会参与服务访问授权,并可持续评估设备状态。当设备不再满足策略要求时,相关访问可能被撤销。建议先在测试身份或测试服务上验证通过与失败的情形,再推广到正式策略。
完成后,windows-laptop 要同时满足身份授权和设备状态要求,才能访问 local-web。下一篇可以继续介绍 MFA 检查,或深入讲解如何排查 Posture Check 未通过的原因。