第 4 章. 作出授权决定
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
授权可以说是零信任网络中最重要的流程,因此,不应轻易做出授权决定。每个流量和/或请求最终都需要做出决定。
我们将在此讨论的数据库和支持系统是共同做出并影响这些决策的关键系统。它们在一起对访问控制具有权威性,因此需要严格隔离。应仔细区分这些职责,尤其是在决定是否将它们整合到一个系统中时。
零信任模式仍是一个新生事物,这一领域正在迅速发展。在撰写本章时,本章所包含的部分内容被认为是最新技术。已知的实现方法仍然千差万别,而且大多数都未公开。尽管如此,主要的组成部分和职责还是可以理解的。
考虑到现实情况,本章将重点介绍做出零信任授权决策所需的组件的高层架构安排,以及这些组件如何相互配合并执行上述决策。
授权架构
零信任授权架构由四个主要部分组成,如图 4-1 所示:
- 执法
- 政策引擎
- 信任引擎
- 数据存储
这四个组件的职责各不相同,因此我们将它们视为独立的系统。从安全角度看,这些组件最好相互隔离。这些系统是零信任安全模式中的瑰宝,因此在维护和安全态势方面应特别小心。对于任何建议将这些职责合并到一个系统中的提议,都应仔细评估。
图 4-1. 零信任授权系统
执行部分将大量存在于整个系统中,应尽可能接近工作量。它是实际影响授权决策结果的组件。它通常表现为负载均衡器、代理或防火墙。该组件与策略引擎()交互,后者是我们用来做出实际决策的部分。执行组件确保客户端通过身份验证,并将每个流量/请求的上下文传递给策略引擎。策略引擎将请求及其上下文与策略进行比较,并通知执行者是否允许请求。
信任引擎被策略引擎用于风险分析。它利用多个数据源计算风险评分,类似于信用评分。该评分可用于防范未知的未知因素,并有助于保持策略的强大和稳健,而不会因为边缘情况和签名而使其复杂化。策略引擎将其作为额外的组成部分,据此做出授权决定。谷歌的BeyondCorp 被公认为这项技术的先驱。
最后,我们还有各种数据存储,这些数据存储代表了用于通知授权的数据的真实来源。这些数据被用来描绘特定流量/请求的完整上下文,使用经过验证的小数据位作为主要查找键(即用户名或设备序列号)。这些数据存储,无论是用户数据、设备数据还是其他数据,都会被策略引擎和信任引擎充分利用,并成为衡量所有决策的依据。
执法
执行组件(如图 4-2 所示)是一个自然的起点。它位于授权流程的 "前线",负责执行授权系统其他部分做出的决定。
图 4-2. 代理接收预授权信号,利用传统的执行机制授予系统访问权限。这些系统共同构成了执行组件。
执行可分为两项主要职责。首先,必须与策略引擎进行交互。这通常是指授权请求本身(例如,负载平衡器收到一个请求,需要知道它是否获得授权)。其次是实际安装和持续执行决策。虽然这两项职责是零信任授权架构中的一个组成部分,但你可以选择是一起完成还是分开完成。
您选择的处理方式可能取决于您的使用情况。例如,身份感知代理可以调用策略引擎来主动授权收到的请求,并在同一步骤中使用响应来提供服务或拒绝请求。这就是将关注点统一处理的一个例子。或者,预授权守护进程会收到访问特定服务的请求,然后调用策略引擎进行授权。授权成功后,守护进程就可以操纵本地防火墙规则来允许特定请求。通过这种方法,我们依赖于由零信任控制平面通知/编程的 ...