开源云计算:部署、应用、运维
上QQ阅读APP看书,第一时间看更新

1.4 云计算的架构

1.4.1 IaaS(基础设施即服务)

IaaS交付给用户的是基本的基础设施资源。用户无需购买、维护硬件设备和相关系统软件,就可以直接在该层上构建自己的平台和应用。基础设施向用户提供虚拟化的计算资源、存储资源、网络资源和安全防护等。这些资源能够根据用户的需求动态地分配。支撑该服务的技术体系主要包括虚拟化技术和相关资源动态管理与调度技术,代表性的服务商有亚马逊、IBM、阿里等。IaaS的架构有下述几部分:

1)数据中心基础设施资源:数据中心是承载云计算服务的重要基础设施,是云计算体系的基础,云计算各要素建设在数据中心之上。云计算技术体制主要关注绿色数据中心的机房建筑节能、机房规划与布局、机房专用空调系统节能、供电系统节能、节能管理和能耗指标。

2)IT&CT(Information Technology and Communication Technology,信息技术和通信技术,也写作ICT)基础设施资源:包括计算资源、存储资源、网络资源。在云计算技术体系架构中,IT&CT基础设施资源不只是物理设备,更多的是指使用虚拟化技术后的逻辑资源,可以通过标准的基础设施资源提供接口,对外提供IaaS服务。

3)计算资源:计算资源层通过服务器虚拟化技术,把单台物理服务器虚拟成多台逻辑服务器,实现服务器硬件设备的抽象和管理,供多个用户同时使用。这里的服务器主要包括X86服务器和小型机。服务器虚拟化具有多实例、隔离性、封装性和高性能等特征。

4)存储资源:存储资源层通过存储虚拟化技术,为物理的存储设备提供一个抽象的逻辑视图,用户可以通过这个视图中的统一逻辑接口来访问被整合的存储资源,主要包括存储区域网络、网络附加存储、直接文件存储和本地存储资源。

5)网络资源:网络资源层通过网络虚拟化技术,将网络的硬件和软件资源(如数据中心云网络的路由器、交换机等)整合,向用户提供虚拟网络连接。

1.4.2 PaaS(平台即服务)

PaaS是为用户提供应用软件的开发、测试、部署和运行环境的服务。所谓环境,是指支撑使用特定开发工具开发的,应用能够在其上有效运行的软件支撑服务系统平台。支撑该服务的技术体系主要是分布式系统,代表性的服务商有Salesforce、谷歌、微软等。

PaaS把服务器平台作为一种服务提供的商业模式,通过网络进行程序提供的服务称之为SaaS,云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS。

主要服务包括:数据库资源、中间件资源、环境组件资源、业务/能力组件资源、平台资源提供接口。

1.4.3 SaaS(软件即服务)

SaaS是一种以互联网为载体,以浏览器为交互方式,把服务器端的程序软件传给远程用户来提供软件服务的应用模式。在服务器端,SaaS提供为用户搭建信息化所需要的所有网络基础设施及软硬件运作平台,负责所有前期的实施、后期的维护等一系列工作;客户只需要根据自己的需要,向SaaS提供商租赁软件服务,无需购买软硬件、建设机房、招聘IT人员,代表性的服务商有谷歌、Salesforce、Office Web Apps等。

在云计算技术体系架构中,应用资源层SaaS包含各种应用(如对内服务的生产类应用、管理类应用、分析类应用,对外服务的行业应用、宽带商务应用、公众云业务,以及对内对外服务的增值业务服务平台),通过标准的应用访问接口提供SaaS服务。

主要服务包括:生产类应用、管理类应用、分析类应用、增值业务服务平台应用、行业应用、宽带商务应用、公众云业务、应用访问接口。

1.4.4 云安全

云计算服务的安全性由云服务商和客户共同保障。在某些情况下,云服务商还要依靠其他组织提供计算资源和服务,其他组织也应承担信息安全责任。因此,云计算安全措施的实施主体有多个,各类主体的安全责任因不同的云计算服务模式而异。

1.云计算安全架构

云服务安全域,从IaaS、PaaS、SaaS三个业务层级提出安全技术规范。在这三个层级的基础上,云数据安全贯穿整个云服务侧,应从云服务域整体的角度对数据安全进行规范。

基于云计算整体架构的云计算安全架构如图1-3所示。

图1-3 云计算安全架构

1)网络域:包括网络统一接入、网络安全传输、网络流量监控等物理网络安全内容。

2)用户域:包括云环境下用户所使用的终端安全等内容。

3)云服务域:包括IaaS、PaaS、SaaS各服务模式的安全服务内容以及数据安全。

4)云监管域:对上述三个安全域的运行情况进行监控和管理,包括事件管理、补丁管理、灾难恢复等内容。

2.安全要求的分类

云服务商的基本安全能力要求分为10类,每一类安全要求包含若干项具体要求。10类安全要求分别是:系统开发与供应链安全、系统与通信保护、访问控制、配置管理、平台维护、应急响应与灾备、安全审计、风险评估与持续监控、安全组织与人员、物理与环境保护。

3.云服务域安全技术要求

(1)IaaS层安全技术要求

1)VMM(Virtual Machine Monitor,虚拟监视器)安全:VMM是运行在基础物理服务器和操作系统之间的中间软件层,其相关的安全技术要求如下:

① VMM接口应严格限定为管理虚拟机所需的API,并严格控制对虚拟机提供的HTTP、Telnet、SSH等管理接口的访问,关闭不需要的功能和无关的协议端口,禁用明文方式的Telnet接口;

② 应支持通过访问控制策略管理所有资源的访问请求;

③ 在虚拟机能够使用宿主主机(即承载虚拟机环境的物理服务器)的操作系统的情况下,应避免该主机操作系统包含任何多余的角色、功能或者应用,并要求该主机仅能运行虚拟化软件和重要的基础组件,如杀毒软件或备份代理;

④ 应支持对虚拟机的全面监控,并对单台虚拟机消耗的内存和CPU时间进行限制,以避免任一虚拟机消耗过度的物理资源。

2)存储虚拟化安全:存储虚拟化通过在物理存储系统和服务器之间增加一个虚拟层,屏蔽底层硬件的物理差异,向上层应用提供统一的存取访问接口。其具体安全防护要求如下:

① 应支持磁盘锁定功能,以确保同一虚拟机不能在同一时间被多个用户打开;

② 应支持设备冗余功能,当某台宿主服务器出现故障时,该服务器上的虚拟机磁盘锁定将被解除,以允许从其他宿主服务器重新启动这些虚拟机实例。

3)网络虚拟化安全:网络虚拟化安全主要通过在虚拟化网络内部加载安全策略,增强虚拟机之间以及虚拟机与网络之间通信的安全性,其具体安全防护要求如下:

① 应支持虚拟防火墙功能,支持将一台防火墙在逻辑上划分成多台虚拟的防火墙,每个虚拟防火墙系统相对独立,可拥有独立的系统资源、管理员、安全策略、用户认证数据库等;

② 应支持采用VLAN或者分布式虚拟交换机等技术,以实现系统数据的安全隔离。虚拟交换机应支持虚拟端口的限速功能,可通过定义平均带宽、峰值带宽和流量突发大小对流量进行控制;

③ 应支持IP地址与虚拟网卡进行绑定,以防止恶意篡改。

4)虚拟机自身安全:虚拟机自身具体安全防护要求如下:

① 应支持防病毒、防恶意软件等管理策略;

② 应支持虚拟机补丁的批量升级和自动化升级;

③ 应支持对虚拟机的逻辑隔离或物理隔离,支持根据业务属性、业务安全等级、网络属性等分类方式或者通过VLAN、不同IP网段的方式对虚拟机进行的逻辑隔离,对于承载如财务、商业机密等敏感业务逻辑的虚拟机,应采用专用的CPU、存储、虚拟网络进行物理隔离;

④ 虚拟机迁移过程中,应采取隔离措施,使所有迁移发生在专有独立的网络上,以保证系统数据和内存的安全可靠。应保证迁入虚拟机的完整性和迁移前后安全配置环境的一致性。虚拟机对应的VLAN ID、QOS等网络层信息,外置防火墙部署的安全策略等应一并进行迁移;

⑤ 应支持虚拟机全部内存数据和增量数据的备份和恢复;

⑥ 应支持在不中断虚拟机业务的情况下,创建并管理虚拟机备份;

⑦ 在备份失效后,应及时将其删除;

⑧ 在虚拟机故障时,应支持虚拟机的快速恢复;

⑨ 虚拟机的宿主主机应支持对虚拟机的心跳监控,当虚拟机发生故障时,应支持通过管理端对虚拟机进行心跳监测,并使故障虚拟机通过备份立即恢复;

⑩ 支持对虚拟机的审计,审计内容包括电源状态,对硬件配置的更改,登录尝试、权限变更,用户对数据的访问和业务的操作记录等。

(2)PaaS层安全技术要求

1)PaaS平台自身安全:PaaS提供给用户的能力是通过在云基础设施之上部署用户创建的应用而实现的,这些应用通过使用云服务商支持的编程语言或工具进行开发,用户可以控制部署的应用。同时,用户不需要管理或控制底层的云基础设施,保护PaaS平台本身的安全:

① 应部署用户认证、鉴权安全机制,以保证只有合法的用户才能登录PaaS平台,控制部署的应用以及应用主机的环境配置;

② 应部署用户分级权限机制,以防止非法用户或攻击者获取管理员根权限,管理或控制底层的云基础设施,包括网络、服务器、操作系统或存储等;

③ 应为PaaS平台所使用的应用、组件或Web服务进行风险评估,及时发现应用、组件或Web服务存在的安全漏洞,并及时部署补丁修复方案,以保证平台运行引擎的安全。

2)PaaS应用安全:PaaS应用安全是指保护用户部署在PaaS平台上应用的安全。在多租户的PaaS服务模式中,为确保自己的数据只能由自身用户与应用程序访问,应提供多租户应用隔离机制。例如,部署“沙箱”架构,其功能如下:

① 保障、维护部署在PaaS平台上应用的保密性和完整性;

② 监控PaaS程序缺陷和漏洞,避免这些缺陷和漏洞被黑客用来攻击PaaS平台;

③ 确保租户自身数据仅被用户或自有应用程序访问。

3)数据库安全:PaaS数据库是结构化或非结构化的数据集,逻辑上集中管控,物理上可能分散至各个物理存储设备。为保障控制过程中数据可靠性、一致性,应采取以下安全措施:

① 数据可靠性:应支持数据冗余机制,以保证数据库的可靠性,防止数据丢失;

② 数据一致性:对数据库中数据进行修改时,应确保数据所有副本均被修改,需要部署同步机制和并发操作机制,例如,采用分布式锁机制与冲突检测技术;

③ 中间件安全:部署安全访问控制机制,保障中间件服务器的访问控制安全,如用户认证机制、身份管理机制、日志审计机制等;支持安全传输机制,在中间件与外界进行交互过程中,应支持传输过程的数据加密与完整性校验;支持中间件隔离机制,保证中间件中的各个实例相互隔离。

4)接口安全:PaaS平台允许客户将创建的应用程序部署到服务器端运行,并且允许客户端对应用程序及其计算环境配置通过各类API进行控制。在此情况下,为了保证用户安全地访问PaaS平台各种业务应用,同时避免来自网络的攻击造成破坏,PaaS API应采取以下安全措施:

① PaaS平台与外界交互的网络设备API应部署安全访问控制机制,如SSL技术,以防止DDoS攻击、中间人攻击篡改、非法登录后窃取用户隐私数据等恶意行为;

② 应为PaaS平台管理员进行系统培训,使其能够熟练运用云平台的API相关安全控制模块,实时监控PaaS平台API调用情况。

(3)SaaS层安全技术要求

1)SaaS应用安全:SaaS应用提供给用户使用运行在云基础设施之上的应用的能力,用户可以使用各种客户端设备通过浏览器来访问应用。SaaS应用安全技术要求具有以下几方面:

① 为用户提供服务前,需要先为其提供有关安全的信息,该信息应包括设计、架构、开发、黑盒与白盒应用程序安全测试和发布管理,可以通过渗透测试(黑盒安全测试)并且进行应用的安全评估;

② 应保证通过唯一的客户标识符,在应用中的逻辑执行层可以实现多租户数据逻辑上的隔离;

③ 应支持通过维护用户访问列表、应用程序Session、数据库访问Session等进行数据访问控制,并需要建立严格的组织、组、用户树和维护机制。

2)业务授权:业务系统向用户提供业务,主要工作应包括业务逻辑信息管理、业务资源存储、业务资源提供等。应支持用户通过业务提供商颁发的凭证直接访问业务系统,使用户获取业务资源。