6.2 安全连接:VPN、工作负载身份与零信任
VPN 建立加密隧道,零信任架构则改变访问决策:不因主体位于“公司内网”就自动信任。二者可以组合,但购买一个 VPN 或贴上 ZTNA 标签都不会自动实现细粒度授权。
隧道保护端点之间的传输
Site-to-site VPN 连接网络,remote-access VPN 连接设备或用户。设计时要明确:
- 谁认证隧道端点,密钥如何发放和撤销;
- 哪些路由进入隧道,是否 split tunnel;
- DNS 从哪里解析,IPv6 是否同样受控;
- 隧道内是否仍执行资源级认证授权;
- 终端失陷后能访问多大范围。
IPsec、WireGuard 和 TLS VPN 有不同协议与运维模型。WireGuard 使用较小协议面和现代固定原语,但只建立 peer 公钥与允许地址之间的隧道关系;用户生命周期、MFA、设备健康、DNS 和应用授权仍由外围系统处理。
长期静态 peer key 若直接承担临时员工的完整生命周期,很难及时收回访问。WireGuard peer key 本身没有证书式有效期;短期配置必须由外围控制器到期移除 peer 或撤销相应规则,并验证所有节点已生效。还需设备注册、丢失设备响应和日志关联能力。
零信任不授予基于位置的隐式信任
NIST SP 800-207 的核心不是“永远不信任任何人”,而是对每次资源会话基于主体、设备、资源和上下文做显式决策:
subject identity + device posture + resource sensitivity + context
→ policy decision
→ narrowly scoped session
→ continuous telemetry and reevaluation控制面通常包含 policy engine、policy administrator 和信息源,数据面由 gateway/agent/proxy 执行。身份提供者被攻破、设备状态过期或策略引擎故障时的行为都要预先设计。
“持续验证”不是每个数据包都弹 MFA,而是会话期间根据凭据有效期、设备合规、风险信号和资源变化重新评估,并能缩短或撤销访问。
应用与服务身份同样重要
用户登录网关后,后端微服务之间若仍凭源 IP 全信任,攻击者可在内部横向移动。工作负载身份平台可以为服务发短期证书或 token,把服务名、环境和命名空间绑定到受验证的运行环境。
策略示例:
principal = spiffe://example/prod/checkout
action = call
resource = payments/authorize
conditions = signed workload + healthy node + current deploymentmTLS 验证证书与相应私钥持有证明,授权层仍要决定这个 workload 能对哪些租户调用哪些方法。这里的 conditions 是策略意图,并非可直接执行的 SPIFFE 配置;镜像签名是否受信、节点健康是否新鲜、当前部署是否获准,都要由可信验证结果支撑。Mesh 自动加密不等于自动最小权限。
对示例至少验证三条路径:checkout 的当前生产身份可调用授权接口;同名开发环境身份被拒绝;撤掉调用权限后,已有连接也在约定窗口内失去调用能力。身份字符串相似、证书仍未过期,都不能替代策略结论。
设备状态是信号,不是绝对真相
补丁版本、磁盘加密、EDR 状态和设备证书可以影响访问,但终端 agent 报告可能过期、被绕过或因隐私策略不可用。高价值访问应组合受管设备身份、用户 phishing-resistant MFA、短期授权和服务端行为信号。
设备不合规时可按风险降级到只读、隔离修复门户或要求 step-up;但增加用户认证强度不会自动修补失陷终端,某些资源仍需拒绝。
迁移从资源与路径开始
零信任改造不应先采购平台再找用途:
- 盘点高价值资源、主体和现有访问路径;
- 清理共享账户、长期凭据和过宽网络规则;
- 建立可靠身份、设备清单与日志关联;
- 为一个资源部署窄策略和 parallel observation;
- 验证故障、撤权和 break-glass;
- 再逐步缩小传统网络信任范围。
下一课加入检测与响应,从网络行为识别异常并限制 DDoS 的影响。