你用 mTLS 登录,仪表盘加载完成,而“站点 VPN 已经多余”的说法听起来还算有道理,直到凌晨两点你需要恢复数据库。应用的 TLS 边界只描述了一条通道。主机、数据库、备份目标和云账号各自拥有自己的入口路径、自己的身份和自己的审批人,而这些都不在成功登录的覆盖范围内。

从登录页面向外走

像普通用户那样登录,写下请求经过的每一跳:浏览器、边缘、应用监听器、会话存储、后端 API。每一跳都有负责人和一项认证决策。现在为给主机打补丁的人、为编写夜间备份的任务,再走一遍。这两条路径往往在第一跳就分岔。

这个分岔正是值得回答的问题。只有当第二条路径上的每条通道都有独立成立的门禁与授权策略时,站点 VPN 才是多余的。

应用登录永远覆盖不到的五条通道

下表是清点模板,不是部署检查单。第二列请填入你自己的环境今天真正执行的做法。

ChannelAccess decision to identify
Application APIAccepted TLS peer, application identity, permitted operations
Operating-system administrationApproved entry path, administrative identity, host permissions
Database maintenanceDatabase identity, protected connection, authorized maintenance role
Backup and restoreService identity, allowed source, access to stored copies
Cloud control planeAccount and role permissions governing infrastructure changes

共享同一个身份提供商并不会把这些授权合并。能提交 API 请求的用户,并不因此有权替换虚拟机磁盘,或用应用的凭据恢复数据库。NIST 在零信任架构摘要中正是因此把资源认证与授权同网络位置分开。

能读取工单的支持工程师,并不因此有权在其背后的主机上打开控制台。

替代路径保持关闭,路径才算真实

把可达性限制在私有管理监听器上,是站点 VPN 的正当替代,前提是限制被真正执行,而不只是画在图上。常见的失败是一个没人记得的替代监听器:仍绑定在所有接口上的服务、为承包商打开的安全组规则、可从互联网访问的管理端口。

检查监听器,而不是看拓扑图。在主机上,用 ss -ltnp 列出真正绑定的东西,并确认管理端口位于私有地址。在云控制台里,读取工作负载子网的入站规则,看看任何管理用途的东西上有没有 0.0.0.0/0。然后从私有路径之外发起连接测试,因为只有这个测试能回答问题。

SSH 上一条对全世界开放的规则,就能推翻隧道设计的全部论证。

先画地图,再比较方案

对清点表的每一行,记录谁审批身份、谁更新访问规则、谁在人员离开时移除凭据、谁在路径本身中断时负责恢复。每行四个名字,就足以暴露那些答案只是共享账号和三年前的 wiki 页面的行。

然后为每条通道各验证一次放行和一次拒绝。放行证明预期身份能沿预期路径到达资源。拒绝证明相似身份不能,而这正是人们常跳过的一项测试,替代监听器因此才熬得过审计。把所提方案与这些结果比较,而不是与应用从未真正验证过的 TLS 配置比较。

站点 VPN 仍然值得保留的地方

当资源自身没有逐请求认证时,隧道或窄网关才是正确答案:数据库维护端口、备份目标、虚拟机管理控制台、带外管理。这些监听器信任网络,所以必须由网络来认证调用方。

这不是唯一答案。在资源层面终止授权的网关可以比整段子网的隧道更窄,并且留下比共享跳板机更好的审计痕迹。

工作顺序:完成清点、关闭替代路径、为每一行验证一次拒绝,然后才下线隧道。如果某一行无法给出拒绝,就保留私有路径,直到它能给出为止。

相关文章