1、策略执行点概述
各位好,我是这次课程的主讲。今天咱们聊聊策略执行点——这个在零信任架构里经常被提起,但很多人其实没搞透的概念。
我记得刚接触零信任那会儿,看了不少文档,什么PEP、PDP、Policy Engine……说实话,头都是大的。后来在项目里真正落地过一次,才明白这东西到底在干什么。
说白了,策略执行点就是一道门。一道智能的门。
什么是策略执行点
策略执行点,英文叫Policy Enforcement Point,简称PEP。它是零信任架构里负责拦截请求、执行策略的那个组件。
你想想看,用户要访问一个资源,比如一个API、一个数据库、一个服务器。请求先到哪儿?不是直接到资源本身,而是先经过策略执行点。
策略执行点会问:“你是谁?你想干什么?你凭什么?”然后它把这些问题转给策略决策点(PDP)去判断。PDP说“放行”,它就放行;PDP说“拒绝”,它就拦下来。
我习惯把策略执行点比作机场的安检口。你过安检,安检员检查你的证件和行李,符合规定就让你进去,不符合就拦在外面。策略执行点干的就是这个活儿。
核心要点:策略执行点不自己做决策,它只负责执行。决策是PDP的事,执行是PEP的事。这个分工要搞清楚。
策略执行点的核心价值
为什么我们需要策略执行点?直接让用户访问资源不行吗?
不行。原因很简单——你没法信任任何人。
零信任的基本原则就是“永不信任,始终验证”。策略执行点就是把这个原则落地的关键组件。它的核心价值我总结为三点:
- 统一管控入口——所有请求都经过同一个点,策略集中管理,不会出现“这个接口忘了加认证”的情况
- 动态策略执行——策略可以实时更新,不需要重启服务。用户权限变了,下一秒请求就被拦截
- 审计与日志——所有请求都有记录,谁在什么时候访问了什么资源,一目了然
我在一个金融项目里遇到过这样的情况:某天凌晨,一个内部员工的账号突然开始批量下载客户数据。策略执行点检测到异常行为模式——下载频率远超正常值,立刻触发动态策略,把这个请求拦了下来。同时告警通知安全团队。
如果没有策略执行点,这个数据泄露可能要到第二天早上才发现。你想想看,那是什么后果。
个人经验:策略执行点部署的位置很关键。我建议放在所有资源的入口处,而不是放在网络边界。边界防护已经过时了,现在要的是资源级防护。
策略执行点的应用场景
策略执行点不是只用在某个特定场景。它的应用范围很广。我列几个常见的:
| 场景 | 说明 | 典型部署位置 |
|---|---|---|
| API网关 | 拦截所有API请求,验证身份和权限 | 服务集群前端 |
| 应用代理 | 保护Web应用,防止未授权访问 | 应用服务器前端 |
| 数据库网关 | 控制数据库访问,细粒度到表级/行级 | 数据库前端 |
| SSH代理 | 管控服务器登录,基于用户和角色授权 | 服务器前端 |
| K8s准入控制 | 拦截Pod创建请求,检查安全策略 | K8s API Server前端 |
嗯,这里要注意一点。策略执行点不是只能部署在物理设备上。它可以是一个软件组件、一个Sidecar容器、一个网络插件。形式不重要,重要的是它能在请求到达资源之前完成拦截。
我曾经帮一个客户做K8s集群的安全加固。他们在每个命名空间里都部署了一个Sidecar代理作为策略执行点。所有进出Pod的流量都经过这个Sidecar。效果很好,而且对业务代码零侵入。
为什么会选择Sidecar模式?因为不需要改代码,不需要重新编译,部署成本最低。你想想看,几百个微服务,如果每个都要改代码加认证逻辑,那得改到什么时候?
避坑指南:我曾经犯过一个错误——把所有策略执行点都部署在同一个物理节点上。结果那个节点挂了,整个系统都瘫痪了。策略执行点一定要做高可用,至少两个节点,最好跨可用区部署。
下面这张图展示了策略执行点在零信任架构中的位置和工作流程:
从这张图你能看到,整个流程其实很清晰。用户发起请求,PEP拦截,向PDP要决策,PDP返回结果,PEP执行。就这么简单。
但简单归简单,部署的时候坑不少。比如PEP和PDP之间的通信要加密,要保证低延迟,要处理PDP不可用时的降级策略……这些我们后面会详细讲。