阿里云云原生架构实践
上QQ阅读APP看书,第一时间看更新

2.2.6 零信任原则

基于边界模型的传统安全架构设计,是在可信和不可信的资源之间架设一道墙,例如,公司内网是可信的,而因特网则是不可信的。在这种安全架构设计模式下,一旦入侵者渗透到边界内,就能够随意访问边界内的资源了。而云原生架构的应用、员工远程办公模式的普及以及用手机等移动设备处理工作的现状,已经完全打破了传统安全架构下的物理边界。员工在家办公也可以实现与合作方共享数据,因为应用和数据被托管到了云上。

如今,边界不再是由组织的物理位置来定义,而是已经扩展到了需要访问组织资源和服务的所有地方,传统的防火墙和VPN已经无法可靠且灵活地应对这种新边界。因此,我们需要一种全新的安全架构,来灵活适应云原生和移动时代环境的特性,不论员工在哪里办公,设备在哪里接入,应用部署在哪里,数据的安全性都能够得到有效保护。如果要实现这种新的安全架构,就要依托零信任模型。

传统安全架构认为防火墙内的一切都是安全的,而零信任模型假设防火墙边界已经被攻破,且每个请求都来自于不可信网络,因此每个请求都需要经过验证。简单来说,“永不信任,永远验证”。在零信任模型下,每个请求都要经过强认证,并基于安全策略得到验证授权。与请求相关的用户身份、设备身份、应用身份等,都会作为核心信息来判断请求是否安全。

如果我们围绕边界来讨论安全架构,那么传统安全架构的边界是物理网络,而零信任安全架构的边界则是身份,这个身份包括人的身份、设备的身份、应用的身份等。

要想实现零信任安全架构,需要遵循如下三个基本原则。

1.显式验证

对每个访问请求都进行认证和授权。认证和授权需要基于用户身份、位置、设备信息、服务和工作负载信息以及数据分级和异常检测等信息来进行。例如,对于企业内部应用之间的通信,不能简单地判定来源IP是内部IP就直接授权访问,而是应该判断来源应用的身份和设备等信息,再结合当前的策略授权。

2.最少权限

对于每个请求,只授予其在当下必需的权限,且权限策略应该能够基于当前请求上下文自适应。例如,HR部门的员工应该拥有访问HR相关应用的权限,但不应该拥有访问财务部门应用的权限。

3.假设被攻破

假设物理边界被攻破,则需要严格控制安全爆炸半径,将一个整体的网络切割成对用户、设备、应用感知的多个部分。对所有的会话加密,使用数据分析技术保证对安全状态的可见性。

从传统安全架构向零信任架构演进,会对软件架构产生深刻的影响,具体体现在如下三个方面。

第一,不能基于IP配置安全策略。在云原生架构下,不能假设IP与服务或应用是绑定的,这是由于自动弹性等技术的应用使得IP随时可能发生变化,因此不能以IP代表应用的身份并在此基础上建立安全策略。

第二,身份应该成为基础设施。授权各服务之间的通信以及人访问服务的前提是已经明确知道访问者的身份。在企业中,人的身份管理通常是安全基础设施的一部分,但应用的身份也需要管理。

第三,标准的发布流水线。在企业中,研发的工作通常是分布式的,包括代码的版本管理、构建、测试以及上线的过程,都是比较独立的。这种分散的模式将会导致在实际生产环境中运行的服务的安全性得不到有效保证。如果可以标准化代码的版本管理、构建以及上线的流程,那么应用发布的安全性就能够得到集中增强。

总体来说,整个零信任模型的建设包括身份、设备、应用、基础设施、网络、数据等几个部分。零信任的实现是一个循序渐进的过程,例如,当组织内部传输的所有流量都没有加密的时候,第一步应该先保证访问者访问应用的流量是加密的,然后再逐步实现所有流量的加密。如果采用云原生架构,就可以直接使用云平台提供的安全基础设施和服务,以便帮助企业快速实现零信任架构。