零信任网络落地
零信任不是某款产品,而是一套「永不信任、始终验证」的架构原则。本技能把 NIST SP 800-207 的抽象原则翻译成可落地的工程动作:统一身份、设备可信、最小权限、微隔离、SDP 访问代理、持续验证与审计,并用脚本检查访问策略是否符合最小权限。
一、核心原理
零信任的核心假设:网络位置不等于信任。「在内网」不代表「可信」,每一次访问都要基于身份、设备、上下文动态授权。
flowchart LR
U[用户/设备] --> P[策略引擎 PDP<br/>身份+设备+上下文]
P -->|允许| G[访问代理/网关 PEP<br/>SDP 网关]
G --> R[受保护资源<br/>应用/API/数据]
P -->|拒绝| X[阻断并审计]
U -.->|持续验证信号| P
R -.->|访问日志| SIEM
NIST 800-207 七原则落地映射:
| NIST 原则 | 落地动作 |
|---|---|
| 所有数据源与计算服务都视为资源 | 资产全量纳管,含 API/数据 |
| 无论位置,所有通信都需保护 | 全链路 TLS(mTLS) |
| 按会话动态授权 | 短时令牌 + 持续验证 |
| 动态策略(最小权限) | 基于角色/属性的 ABAC/RBAC 策略 |
| 持续监控完整性 | EDR/设备健康 + 日志分析 |
| 认证授权严格化 | MFA + 设备准入 |
| 尽可能收集信息改进 | 集中审计 + 威胁情报联动 |
二、参考架构(SDP 访问代理 + 微隔离)
flowchart TB
subgraph 用户侧
USR[员工/第三方]
end
subgraph SDP 访问代理
IDP[身份提供方 IdP<br/>OIDC/SAML]
CTRL[SDP 控制器]
GW[SDP 网关 PEP]
end
subgraph 资源侧
APP[应用集群]
DB[数据库]
end
USR -->|1 认证+MFA| IDP
IDP -->|2 签发短时令牌| USR
USR -->|3 携带令牌| CTRL
CTRL -->|4 下发可达网关| USR
USR -->|5 mTLS| GW
GW -->|6 仅最小端口| APP
APP -->|微隔离: 仅 DB 端口| DB
配套 ASCII 落地路径(文档用):
零信任落地五阶段
阶段1 身份统一 AD/LDAP/SSO → 单一身份源,无孤立账号
阶段2 强认证 MFA 全覆盖(关键系统+管理入口)
阶段3 设备可信 准入前校验补丁/杀毒/合规
阶段4 微隔离 东西向微分段,服务间最小端口
阶段5 持续验证 会话中持续校验 + 全流量审计
三、关键参数 / 决策表
| 决策项 | 推荐取值 | 依据 / 常见错误 |
|---|---|---|
| 认证方式 | MFA(TOTP/WebAuthn/FIDO2)全覆盖 | 只用口令=弱认证 |
| 令牌有效期 | 访问令牌 5~15 分钟,刷新令牌 8~24 小时 | 过长令牌=失效前长期可信 |
| 微隔离粒度 | 服务/应用级(非仅主机级) | 只按主机分=横向仍可动 |
| 最小权限 | 每个身份 ≤ 完成职责所需的最小资源 | 通配符 * 授权是反模式 |
| 设备合规 | 补丁/EDR/盘加密三件套达标才准入 | 只查「是否安装杀毒」不够 |
| 访问代理协议 | mTLS(双向证书) | 单 TLS 不验客户端身份 |
| 东西向默认动作 | 默认拒绝,仅声明放行 | 默认放行=回到扁平内网 |
| 持续验证频率 | 会话内按风险动态重评估 | 一次认证长期有效=伪零信任 |
| 审计留存 | 访问日志 ≥ 6 个月(等保/合规) | 无审计=无法度量 |
> 通配符授权、跨环境访问、过度授权,用 scripts/least_privilege_checker.py 自动扫描。
四、分步 SOP
- 身份统一:接入统一 IdP(AD/LDAP/SSO),消除孤立账号,建立账号生命周期管理。
- 强认证:关键系统与管理入口强制 MFA,优先 FIDO2/WebAuthn。
- 设备可信:部署准入/EDR,接入前校验补丁、杀毒、盘加密合规。
- 资源与策略建模:列出全部资源,按角色建身份-资源访问矩阵(见
assets/identity-resource-matrix.csv)。 - 最小权限检查:跑
least_privilege_checker.py扫描通配符、跨环境、过度授权并整改。 - 微隔离落地:东西向默认拒绝,服务间仅放行必需端口(K8s NetworkPolicy / NSX-T DFW)。
- SDP 接入:隐藏资源 IP,经 SDP 网关 mTLS 接入,先验后连。
- 持续验证与审计:会话中按风险重评估,全流量日志接入 SIEM/UEBA,形成度量。
五、真实配置示例
Kubernetes NetworkPolicy(微隔离,东西向)
# 默认拒绝入站,仅允许 app 命名空间访问 db 的 5432
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-access
namespace: prod
spec:
podSelector:
matchLabels:
app: postgres
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
team: app
ports:
- protocol: TCP
port: 5432
VMware NSX-T 分布式防火墙规则(微隔离)
# 逻辑:app-tier → db-tier 仅 3306,其余默认拒绝
DFW Rule: app-to-db
Source: app-tier (security group)
Destination: db-tier (security group)
Service: TCP 3306
Action: Allow
DFW Rule: default-deny
Source: Any
Destination: Any
Action: Drop
OPA/Rego 最小权限策略(策略引擎示例)
# 拒绝任何包含通配符 action 的授权
package authz
deny[msg] {
input.action == "*"
msg := sprintf("通配符授权被拒绝: %v", [input.identity])
}
> 更多 SDP/身份配置与逐行解释见 references/zerotrust-configs.md。
六、验证方法
# 最小权限检查
python least_privilege_checker.py -f identity-resource-matrix.csv
# 微隔离连通性验证(应拒绝)
kubectl -n prod run test --rm -it --image=busybox -- nc -vz db.prod 5432
# 应放行的服务验证(应通)
kubectl -n prod run test --rm -it --image=busybox -- nc -vz db.prod 5432 --from app
| 验证项 | 达标线 | 采集方式 |
|---|---|---|
| MFA 覆盖率 | 关键系统 100% | IdP 报表 |
| 通配符授权 | 0 条 | least_privilege_checker.py |
| 跨环境访问 | 0 条(或已审批例外) | 脚本扫描 |
| 东西向默认动作 | deny(未声明即拒绝) | NetworkPolicy/DFW 核对 |
| 资源 IP 隐藏 | 外网不可直达(经 SDP) | 扫描 + 网关日志 |
七、常见故障排查
| 现象 | 根因方向 | 首要动作 |
|---|---|---|
| 接入零信任后访问失败 | 令牌过期/设备不合规/策略过严 | 查 PDP 拒绝原因与设备合规状态 |
| 微隔离误伤业务 | 未声明服务间必要端口 | 补放行规则 + 回归验证 |
| 一次认证后长期有效 | 未做持续验证/令牌过长 | 缩短令牌 + 会话重评估 |
| 通配符授权清不掉 | 历史权限堆叠、责任不清 | 按角色重建模,逐条收敛 |
| 资源仍可公网直连 | SDP 未前置或旁路 | 确认资源仅经网关可达 |
八、输出规范
交付时应产出:零信任成熟度现状评估、分阶段路线图、身份-资源访问矩阵(CSV)、最小权限检查报告、微隔离策略、SDP 接入方案、度量指标与效果报告。
九、边界与风险
- 零信任是演进过程,需分阶段推进,一次性全量改造会中断业务。
- 不夸大零信任能力,它降低信任假设与横向移动,但不替代漏洞管理、EDR、数据防泄漏。
- 涉及员工终端/隐私的校验需合规评估,跨境身份与日志留存需符合当地法规。
配套资源
- 参数手册:
references/zerotrust-parameters.md - 配置对照:
references/zerotrust-configs.md - 故障案例库:
references/zerotrust-troubleshooting.md - 身份-资源访问矩阵:
assets/identity-resource-matrix.csv - 微隔离/策略模板:
assets/microseg-policy-template.txt - 脚本:
scripts/least_privilege_checker.py(访问策略最小权限检查器) - 配套检查清单:《零信任落地检查清单》