零信任架构三大核心模型:SDP、微隔离与IAM
零信任不是单一产品,而是一套架构思想。落地的时候,我们通常把它拆成三个具体模型来实现:SDP(软件定义边界)、微隔离和IAM(身份与访问管理)。这三者各有侧重,又互相咬合。
我个人习惯把零信任架构比作一栋大楼的安保系统:SDP是门禁和访客通道,微隔离是楼内每层、每个房间的防火门,IAM则是那本记录所有人身份和权限的总台账。缺一个,安保就漏风。
核心观点:零信任不是“不信任”,而是“持续验证、最小权限”。SDP解决“谁能进来”,微隔离解决“进来后能去哪”,IAM解决“你是谁、你能做什么”。三者缺一不可。
2.1 SDP(软件定义边界)—— 把大门藏起来
SDP的核心思想很简单:不暴露任何网络入口。传统VPN把端口暴露在公网上,等于告诉黑客“我在这儿,来攻吧”。SDP反其道而行——先验证身份,再建立连接。
我在项目中遇到过一家金融客户,他们之前用VPN,每周被扫描攻击上千次。换成SDP后,公网上连一个开放端口都扫不到。攻击者连目标都找不到,还怎么打?
SDP的三大组件
- SDP控制器:大脑。负责认证、授权、策略下发。所有连接请求必须先过它这关。
- SDP客户端(IH):安装在用户设备上。负责发起连接、接收策略、建立加密隧道。
- SDP网关(AH):部署在资源前面。只接受来自已授权客户端的连接,对其他流量一概不理。
避坑指南:我曾经见过一个团队把SDP网关和控制器部署在同一台服务器上。结果控制器挂了,所有网关也跟着失联。记住:控制器必须高可用,网关最好分布式部署。
SDP的典型连接流程
- 用户打开SDP客户端,向控制器发起认证请求。
- 控制器验证用户身份和设备状态(有没有打补丁?有没有运行恶意软件?)。
- 验证通过后,控制器下发“允许连接列表”给客户端和网关。
- 客户端与网关建立双向加密隧道,所有流量走隧道传输。
- 未授权的用户连网关的IP都ping不通——因为网关根本不响应未授权的任何包。
说白了,SDP把“先连接后认证”变成了“先认证后连接”。这个顺序调换,安全水位直接拉高一个档次。
2.2 微隔离 —— 东西向流量的“守门员”
传统网络靠防火墙守边界,但一旦攻击者进了内网,横向移动几乎如入无人之境。微隔离要解决的就是这个问题:控制服务器与服务器之间、容器与容器之间的流量。
你想想看,一个Web服务器本来只需要访问数据库的3306端口,结果它还能SSH到其他任何机器——这合理吗?微隔离就是把这些“不合理”的路径全部切断。
微隔离的三种实现方式
| 方式 | 原理 | 适用场景 | 我踩过的坑 |
|---|---|---|---|
| 基于主机防火墙 | 在每台服务器上配置iptables/nftables | 物理机、VM环境 | 策略多了以后,手动维护简直是噩梦 |
| 基于网络Overlay | 通过VXLAN/Geneve封装,在虚拟网络中做策略 | Kubernetes、OpenStack | 性能损耗约5%-10%,需要评估 |
| 基于云原生API | 利用云厂商的安全组或K8s NetworkPolicy | 公有云、混合云 | 不同云厂商的策略语法不统一 |
重要提醒:微隔离最容易犯的错误是“策略黑洞”——只加白名单,忘了清理旧策略。我曾经接手过一个项目,微隔离策略堆了3000多条,其中一半是三年没动过的僵尸策略。建议每季度做一次策略审计,把没有流量的策略直接干掉。
微隔离的最佳实践
- 默认拒绝:先全部阻断,再按需放行。别想着“先放行再收紧”,那只会越收越松。
- 基于标签:别用IP写策略。IP会变,标签(如“app=web”“env=prod”)才稳定。
- 日志全量:所有被拒绝的流量都要记日志。这是你排查问题和做攻击溯源的第一手资料。
2.3 IAM(身份与访问管理)—— 零信任的“身份证”
没有IAM,SDP和微隔离就是空壳。因为所有策略最终都要落到“谁”可以访问“什么”。IAM就是那个“谁”。
嗯,这里要注意:IAM不只是管人的身份,还要管设备、应用、API的身份。零信任里有个概念叫“身份化一切”——人、设备、服务、数据,全都要有唯一身份标识。
IAM的核心组件
- 身份库(IdP):存储用户、设备、服务的身份信息。LDAP、AD、Okta、Keycloak都是常见方案。
- 认证机制:多因素认证(MFA)是标配。密码+生物特征+硬件Key,至少上两个。
- 授权引擎:基于RBAC(基于角色的访问控制)或ABAC(基于属性的访问控制)做细粒度授权。
- 会话管理:持续验证,不是登录一次就万事大吉。行为异常时强制重新认证。
个人经验:我在做IAM选型时,最看重的是协议兼容性。OAuth 2.0、OIDC、SAML、SCIM这些标准协议必须都支持。否则后面对接第三方应用时,你会被各种定制接口折磨到怀疑人生。
IAM与SDP、微隔离的协同
这三者不是孤立的。IAM提供身份信息,SDP用这个身份决定是否放行连接,微隔离用这个身份决定是否放行流量。举个例子:
- 用户通过IAM完成MFA认证,拿到JWT令牌。
- SDP控制器验证JWT,允许用户连接网关。
- 用户访问数据库时,微隔离策略检查JWT中的角色标签,只允许“dba”角色的用户访问3306端口。
整个过程,身份贯穿始终。没有IAM,SDP和微隔离就不知道“谁”在访问,策略也就无从谈起。
2.4 三大模型的关系图
下面这张图展示了SDP、微隔离和IAM如何协同工作,构成零信任的完整闭环:
2.5 选型建议与避坑总结
最后,我根据自己的实战经验,给几个选型建议:
| 场景 | SDP推荐 | 微隔离推荐 | IAM推荐 |
|---|---|---|---|
| 纯公有云 | 云厂商原生SDP(如AWS PrivateLink) | 云安全组 + NetworkPolicy | 云IAM + 外部IdP |
| 混合云 | Zscaler / Cloudflare Access | Illumio / Guardicore | Okta / Azure AD |
| 自建IDC | OpenZiti / Pomerium | Calico / Cilium | Keycloak / FreeIPA |
最后一条忠告:别想着一次性全上。我见过太多团队试图“一步到位”,结果三个月过去了,连SDP都没跑通。我的建议是:先上IAM,再上SDP,最后补微隔离。每一步跑稳了再走下一步。零信任是马拉松,不是百米冲刺。