1.2 云安全理念与责任共担模型

在云计算时代,随着服务方式的改变,云安全设备和安全措施的部署位置与传统安全有所不同,安全责任的主体也发生了变化。在“自家掘井自己饮用”的年代,水的安全性由自己负责;在自来水时代,水的安全性由自来水公司负责,客户只需在使用水的过程中注意安全问题即可。在网络安全方面同样如此,原来用户自己要保障服务的安全性,而现在由云计算服务提供商来保障。

在云环境下,有几个基本的安全理念。

第一,自动化。所有的安全措施必须自动化。如果不能自动化实现,而需要人工干预,那么人工干预本身就是最大的安全风险。

第二,松耦合。每个安全措施或者服务,都要既可以加进来也可以拿出去。加进来不会对现有系统带来新的风险,造成新的破坏;拿出去不会对原有系统产生影响。

第三,微服务。微服务把安全限定在最小的边界范围内。对于每个服务,我们都要把它的安全风险和管控措施限定在服务的边界内。

基于自动化、松耦合和微服务的理念,我们可以灵活地把服务加进来,拿出去,在不安全的基础上构建安全。在云环境下,我们可以实现在沙滩上构建高楼大厦。我们认为每一粒沙子都是安全的,并把所有的沙子堆积起来,形成基础或者地基。假如每一粒沙子是一个CPU,则由这些“沙子”构建出来的计算资源支撑着云环境。当某个 CPU 坏掉时,可以有足够的CPU来随时自动替换,以便使整个云平台对客户提供的计算服务是安全可靠的。

云平台的安全措施主要有随机、隔离、实时可验证机制(可信,零信任机制)几种方法保障。

当一个计算单元坏掉或者达到一定的峰值时,它可以根据预先配置的策略随时自动启动一个新的计算单元。当计算和存储资源随机分配时,下一个租户无法判断前一个租户使用的资源。随机加上虚拟化的隔离技术,再利用可信计算技术,从物理的信任链实现可验证安全,可保证云平台是安全的。

公有云比传统的IT环境更安全是因为公有云上使用的技术、解决方案经过了每个行业及其典型客户长时间的验证。针对面临的客观风险,公有云提供的控制手段足够强大,能把业务风险控制在可接受的范围,能做到客观上不受威胁,主观上不存在恐惧,这样就会让客户觉得安全。

云上数据的基本策略是加密,既可以实现客户端、服务端的加密,也可以根据客户的需要、应用场景和安全策略实现端到端的加密。

租户之间的安全机制采用隔离加随机分配资源加定制化的安全策略实现。在云平台上,因为存在公共的不可接受的原则,如租户之间不可以相互攻击,所以隔离加随机加云平台的安全策略和不可接受的原则,保证了租户之间是安全的。

云服务商的可信就是云平台厂商要提供技术可证明的安全,即需要证明技术是可验证的、安全的。客户部署在云上的系统和客户系统所产生的所有数据,都是技术可验证的且只能由客户完全控制,这就构成了云服务商的可信赖性、可验证性。云平台希望赋能客户的安全建设:客户对自己的数据资产完全可见,对自己的系统完全实现技术可控,对自己的运行状态可审计,能够根据自己的业务发展阶段和安全策略灵活构建自己的系统,通过工具的自动化实现定制化的安全能力。

对于基于云的服务,云服务商和客户采用责任共担模式来保护云的安全。其共同承担责任有两个基本的原则:第一,客户拥有和控制自己的系统和数据;第二,云基础设施“谁使用,谁控制,谁负责”。按照谁使用谁控制谁负责的原则,云服务商负责底层基础架构(如云存储服务、云计算服务、云网络服务)的安全,而客户则负责虚拟机及程序之上的所有内容(如访客操作系统、用户、应用程序、数据等)的安全。基于责任共担模型,客户必须制定各种安全措施,以保护基于云的应用程序和数据并降低安全风险。

用户和使用的云服务商不同,安全的责任也不同。如图1-1-3所示。

图1-1-3

IaaS 云服务商主要负责为用户提供基础设施服务,包括服务器、存储、网络和管理工具在内的虚拟数据中心。云服务商的基本职责包括提供云计算基础设施的可靠性、物理安全、网络安全、信息存储安全、系统安全,以及虚拟机的入侵检测、完整性保护等。而云计算用户则需要负责其购买的虚拟基础设施以上层面的所有安全问题,如自身操作系统、应用程序的安全等。

PaaS云服务商主要负责为用户提供简化的分布式软件开发、测试和部署环境。云服务商除了负责底层基础设施的安全,还需要解决应用接口安全、数据与计算可用性等问题。而云计算用户则需要负责操作系统或应用环境之上的应用服务的安全。

SaaS云服务商需要保障其所提供的SaaS服务,即从基础设施到应用层的整体安全。云计算用户需要维护与自身相关的信息安全,如身份认证账号、密码的防泄露等。

无论是IaaS,PaaS,还是SaaS,都是分界面上下的移动。无论是云服务商还是云客户,根据“谁使用,谁控制,谁负责”的原则,它们的分界面都在上下浮动。因此,在云的安全责任中,无论是安全审计、监控、认证,还是数据安全、负载安全、虚拟层的安全、网络层的安全、物理层的安全都由它们共同承担责任。如果这些资源都由本地使用,也就是我们传统的数据中心或者私有云,则由云用户完全控制,自己负责。除此以外,只要是中间有分界线的,就属于服务商和客户之间按照“谁使用,谁控制,谁负责”的原则分担责任,这就是云责任共担模型的核心。

AWS一直将安全当成首要任务,并将责任共担模式作为顶层设计,图1-1-4所示为AWS强制执行的责任共担模型。其中,云的安全由AWS负责,而云中的安全则由客户来承担。客户在云中的系统,不论是对应用、内容的保护,还是对平台、网络的保护,都由客户来自主选择并具有对安全的控制权。这与客户对数据中心(on-site)的保护没有区别。AWS 有许多安全工具和功能可供用户选择,以满足其对网络安全、配置管理、访问控制和数据加密的安全需求。

图1-1-4

在这种责任共担模式下,AWS云服务商需要向客户证明由平台控制的部分是安全的。一般有两种证明模式:第一,直接向客户证明。如果客户有强大的安全团队想自己验证,那么我们会告诉客户如何进行技术验证来证明平台是安全的,但这种方式使用很少。因为我们不能要求客户都具有非常强大的安全团队和安全能力去独立开展技术验证。第二,通过客户认可的第三方,即通过客户信任的认证机构、测评机构、审计机构等获得审计和验证,以可信赖的第三方向客户证明平台是安全的。客户控制的部分,由客户负责。云服务商只是向客户提供该领域内的全球最佳实践、合规要求及参考实现,而由用户做最终决策。