大型云应用系统安全解决方案XWord文档格式.docx
- 文档编号:20674952
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:16
- 大小:610.67KB
大型云应用系统安全解决方案XWord文档格式.docx
《大型云应用系统安全解决方案XWord文档格式.docx》由会员分享,可在线阅读,更多相关《大型云应用系统安全解决方案XWord文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
数据共享安全
错误检测和自动恢复
保证系统数据层面的安全
数据灾备模块
数据远程备份模块
灾难检测模块
系统切换模块
应对突发的火灾、断电及各种对系统有破坏作用的自然灾害
一.应用安全模块
云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。
云是一个面向多用户多层次的服务系统,其服务层次如下图所示:
图1.1云计算的四层服务体系
目前已经有一些大型企业提供了面向不同客户的云基础服务。
对于我们来说“云”还是较为新鲜的概念,经过这些天团队所有成员的努力,我们提出了自己的云应用系统架构模型。
下面进行详细说明。
1.1第三方监管
用户对云服务的安全性需求是越来越强烈的。
除了选择高可靠高安全的云服务提供商之外,可以用户和云服务提供商共同信任的第三方如政府和组织来负责监管。
本方案中我们借鉴密钥管理的运作方式来实现用户和云服务提供商之间的利益监管。
由第三方提供合同规范,用户和云服务提供商进行磋商完成具体合同交由第三方公证并进行保存。
其流程如下图所示:
图1.2第三方的监管示意图
监管示意图说明如下:
用户首先声请云服务,客户与云服务提供商共同完成服务合同。
合同完成之后交由合同管理中心进行公证并进行保存,并将公证后的合同交由客户与云服务提供商备份。
合同确认之后,云提供商就对相应服务条款进行服务部署。
这样就可以保证各方利益的安全。
下面我们给出合同的一个简单模型,云服务提供商需要对其提供的服务进行抽象,提供服务列表包括基础应用和安全框架。
合同规范由合同管理中心发布,可以用XML等等来定义合同,举例如下图所示:
图1.3合同规范举例
1.2云服务管理平台
客户与云服务提供商的合同生效之后,云服务提供商即根据合同进行部署相应服务。
云服务管理借鉴模型驱动平台架构的思想,采用层次结构,其如下图所示:
图1.4云服务控制层次图
云服务控制结构各个模块说明:
ModelLayer层主要用作用户进行应用和安全设计并且进行合同协商;
ConfigurationLayer层主要作用是将用于的需求通过如专家系统解析生成相应的配置文件;
ServiceModelLayer层主要作用是解析各个配置文件生成具体的服务模型;
ResourceLayer层主要负责管理和分配具体的资源;
DeploymentLayer层主要负责部署和回收具体资源。
图1.4给出了云服务管理的层次模型结构,层次模型很好的实现了功能分离,也更加容易进行各层次的控制与监管,下面我们给出其详细模块结构图:
图1.5云服务控制结构图
控制结构各个模块功能说明:
ContractCenter:
⏹Contractpool:
提供第三方的规范合同
⏹Interactive:
主要用作新合同从建立到生效及服务部署完成之前的交互工作
⏹Update:
主要用于与合同管理中心就行交互,包括更新合同规范和其他的一些工作
BusinessCenter:
⏹Design:
是客户进行合作的界面,服务设计和合同协商
⏹Contract:
从模型中心获取合同所需的模型与合同整合生成客户界面
ModelCenter:
⏹XaaSmodel:
提供多种服务的配置模型
⏹Securitymodel:
提供各个层次的安全机制模型
ConfigurationCenter:
⏹Transformation:
对抽象的服务及安全定义进行解析转化成配置参数,如专家系统
⏹Generation:
生成服务和安全配置文件
AnalyzeCenter(可选)
⏹Analysis:
对服务配置文件进一步解析成与具体资源所对应的参数
⏹Component:
生成各个具体组件
ResourceCenter
⏹Check:
对各种资源需求进行核对和检查
⏹Assign:
满足检查后,进行具体的资源分配
DeployCenter
⏹Monitor:
对实际部署进行监控和管理
⏹Deploy:
进行实际的服务和安全部署
以上就是我们设计的云服务管理平台,有些功能还需要进一步细化,有些可能需要进行合并。
1.3访问控制管理平台
云服务管理平台建立之后,云服务安全的另一个重要的方面是访问控制。
在给出访问控制模型之前,首先给出云服务框架结构图:
图1.6云服务框架结构图
认证和访问控制中心引入多层次授权模型结构,其层次结构框架如下图所示:
图1.7用户身份认证和访问控制
用户身份认证和访问控制各功能说明:
ACP:
AccessControlPoint主要用作访问控制;
OEP:
ObligationEnforcementPoint主要用作执行用户相关的职责;
PDP:
PolicyDecisionPoint主要用作判定访问请求及其相关的职责规则;
PolicyCenter:
主要用作对策略进行管理;
ReputationCenter:
主要用作对用户进行信誉评估。
安全控制还有一个重要的方面就是密钥分配机制。
云服务管理可以建立自己的密钥管理中心,这部分还需要进一步考虑。
还有就是其网络结构等等方面。
二.数据安全模块
本文中实现的数据安全模块主要是基于已有的某些体系结构来实现,结合已有的Hadoop系统构建了如下的VBS-Hadoop体系结构:
上述结构中各个部分的功能:
HadoopServer:
用于存储所有的volumes,每一个volumes和snapshot都作为一个文件来执行。
它们对应的文件分别称为“volume文件”和“snapshot文件”。
Hadoop存储系统中的Datanode被用来作为volume服务器。
在该系统中有三类Webservice:
VBSHadoopService,VMMDelegateWebservice和VolumeDelegateservice。
VBSHadoopService:
用来响应来自客户端的请求,它与VMMDelegateService和VolumeDelegateservice通信合作来满足用户的请求。
VolumeDelegateservice:
可以运行于任何一个VMMHadoop客户端,用于完成LVM(LogicalVolumeManager)的操作,即:
管理volumes。
VMMDelegateService:
每个VMMHadoop客户端都必须包含一个VMMDelegateService,主要用来完成XenVBD(VirtualBlockDevice)操作。
VMMHadoop客户端:
每一个VMMHadoop客户端都被配置成Hadoop系统的客户端,并且每一个上面都包含一个VMMDelegateService。
在VMMHadoop客户端用Xen来管理云基础设计创建的VM(Virtualmachines)实例。
VMMHadoop客户端可以通过文件系统接口直接访问volumes。
VBD(VirtualBlockDevice):
在VMMHadoop客户端,用于从Dom0到Domn附属一个块设备。
Volume元数据数据库:
它存储的数据包括volume的IDs和Hadoop文件路径间的映射,attachment信息等。
2.1VBS-Hadoop的工作流
在VBS-Hadoop结构中,各个执行过程的工作流分别如下所述:
2.1.1创建和描述volume
VBSHadoopService接收到来自客户端的要创建指定大小的volume的请求后,
(1)VBSHadoopService生成一个新的volumeID和对应的volume文件的路径;
(2)VBSHadoopService会调用一个VolumeDelegateService去创建这个新的volume文件;
(3)VolumeDelegateService首先检查Hadoop文件存储系统中是否有足够的空间来存储这个新的文件。
(4)如果有足够的空间,则VolumeDelegateService首先返回一个临时的成功信息,然后启动一个线程来完成volume文件的创建。
VBSHadoopService收到成功信息后,会为这个新的volume创建一个新的元数据记录,并将这个元数据记录的状态设为“pending”,并将这个记录返回给客户端。
(5)如果没有足够的空间,则VolumeDelegateService会返回一个失败信息给VBSHadoopService,VBSHadoopService会将这个信息传递给客户端。
(6)当新文件创建进程开始的时候,VolumeDelegateService会检查这个需要创建的volume是否需要基于snapshot进行创建。
如果snapshot的路径已经给出,那么这个线程会执行“cp”命令从snapshot文件中复制得到volume文件。
否则,这个线程会执行“dd”命令来创建新的volume文件,并用0来填充新的volume文件。
(7)在线程执行完成后,VolumeDelegateService会调用VBSHadoopService来更新这个新的volume的状态。
如果命令创建volume文件的命令成功执行了,则将状态设置为“available”,否则将状态设置为“failure:
cmderror”,同时会将失败的详细信息发送到VBSHadoopService和日志文件。
(8)在创建完volume后,客户端会发送描述volume操作命令给VBSHadoopService,VBSHadoopService会返回相关的元数据信息给客户端。
2.1.2创建和描述snapshot
创建和描述snapshot的过程和创建和描述volume的过程类似,主要的不同在于创建snapshot新文件的线程只执行“cp”命令来从volume文件复制内容到snapshot文件。
2.1.3Attach-volume
Attach-volime的请求就是要决定哪个volume应该被attach到哪个VM,同时,VM位于哪个VMM。
(1)当收到客户端Attach-volume请求后,VBSHadoopService会调用相应的VMMDelegateService来执行“xmblock-attach”命令将volume文件作为一个块设备attach到指定的VM。
(2)如果命令执行成功,VBSHadoopService会在volume元数据数据库为该volume添加一个attachment元数据记录,并为客户端返回attachment信息。
(3)否则,返回failure信息给客户端。
(4)在attachvolume后,对该volume的描述操作会包含它的attachment信息。
2.1.4Detach-volume
Detach-volume的操作流程与attach-volume的流程是一样的,主要的不同就是VolumeDelegateService执行的命令是“xmblock-detach”。
2.1.5删除volume和snapshot
删除volume和删除snapshot的流程是类似的:
(1)VBSHadoopService在收到删除volume和删除snapshot的信息是,会调用volumeDelegateService来执行“rm-f”命令来删除相应的volume和snapshot文件。
(2)如果命令执行成功,VBSHadoopService会删除volume或snapshot在volume元数据数据库中的记录并返回成功的信息给客户端。
2.2数据安全和访问控制
在VBS-Hadoop体系结构中,Web服务的访问是通过HTTPS协议实现的。
用户通过公共密钥被授权,并且用户只能对授权的volume和snapshot进行操作。
每当创建一个新的用户账户时都会为用户账户在volume元数据数据库中保存一个可信任记录,并且这个记录作为用户的IDs。
当客户端调用VBS-HadoopService时,VBS-HadoopService首先会检查客户的可信任记录中用户的IDs,然后检查改用户要访问的volume或者snapshot是不是该用户创建的,如果不是,会为客户端返回一个failure信息。
2.3只读模式的volume共享
在该体系结构中实现的只读模式的volume共享是通过同时将一个volumeattach到多个VM实例来实现的。
在执行attach-volume操作时添加一个“attach-mode”参数,同时将该信息添加至存储在volume元数据数据库中的attachment元数据中。
当一个客户端试图去attach一个已经attach的volume到另一个VM时,VBS-HadoopService会检查“attach-mode”信息是否同时存在于attachment信息中并且新的操作对数据是只读的,如果满足上述检查条件就允许操作继续进行。
在VMMHadoop客户端,VMMDelegateService完成只读模式的attach通过执行“xmblock-attach”命令并且参数为“-r”来实现的。
2.4错误检测和自动恢复
在分布式文件系统中,任何一个组件都可能失效,硬件错误是常态,因此错误检测和快速、自动的恢复是文件系统的核心架构目标。
此外,数据以流式读为主,做批量处理,因此比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。
本文基于HDFS文件系统,对其进行改进,在Datanode上部署态势感知模块,以保障在硬件失败情况下的数据存储可靠性,并实现负载均衡,提高数据吞吐量。
2.4.1态势感知模块
态势指的是由于网络运行环境、设备运行状况、网络行为以及用户行为等因素所构成的整个网络的当前状态和变化趋势,强调的是一种状态、一种趋势,单一的、静止的状况或者状态不能称为态势。
该模块的功能主要包括以下几个方面:
1)能够提供全面、准确的网络视图,方便管理员对网络的理解、控制、管理;
2)利用数据融合、数据挖掘等技术,能够从感知的海量数据里挖掘出有用的数据,并将结果反馈给中心服务器Namenode,为中心服务器调整文件管理和访问策略提供支持;
3)根据感知的结果,进行风险的评估,基于评估结果实现态势的预测,如大规模访问到来之前进行预测,为整个文件系统的协同策略调整提供依据。
基于态势感知模块,整个文件系统协同形成了一个闭环控制,可分为平稳态、中间态、控制态三个状态,从而使得网络保持在一个相对稳定的状态,具体原理如下图所示:
当前分布式文件系统缺乏状态反馈机制,网络在运行时,当前用户数据请求、Datanode的状态、链路状态、网络状态等都在动态的发生变化,分布式文件系统应实时感知态势的变化,并及时反馈给Namenode,对当前方案做出动态自适应的调整,并对自身的信息进行更新与维护,使得资源能够有效的被利用。
2.4.2态势感知模块的功能
(1)硬盘数据错误、心跳检测和重新复制
每个Datanode节点都向Namenode周期性地发送心跳包。
网络切割可能导致一部分Datanode跟Namenode失去联系。
Namenode通过心跳包的缺失检测到这一情况,并将这些Datanode标记为dead,不会将新的IO请求发给它们。
寄存在deadDatanode上的任何数据将不再有效。
Datanode的死亡可能引起一些block的副本数目低于指定值,Namenode不断地跟踪需要复制的block,在任何需要的情况下启动复制。
在下列情况可能需要重新复制:
某个Datanode节点失效,某个副本遭到损坏,Datanode上的硬盘错误,或者文件的replication因子增大。
(2)负载均衡
负载均衡主要涵盖两个阶段的事务,一个是在任务初始分配的时候尽可能合理分配,另一个是在事后时刻监督及时调整。
在任务初始分配的时候,应让多份备份均匀合理地分配到不同的机架中;
如果某个Datanode节点上的空闲空间低于特定的临界点,那么就会启动一个计划自动地将数据从一个Datanode搬移到空闲的Datanode;
同样,当某个Datanode过于空闲时,态势感知模块将即时反馈给中心服务器,使得数据合理地分配到当前Datanode;
当对某个文件的请求突然增加,那么也可能启动一个计划创建该文件新的副本,并分布到集群中以满足应用的要求;
此外,态势感知模块应能对未来的节点状态信息进行预测,譬如根据当前流量信息,预测出在未来的某个时刻可能会超出磁盘空间,从而提前采取预防措施。
总之,部署态势感知模块之后,中心服务器可以动态即时地获取各个数据服务器的负载状况,并对其未来的状态行为进行预测和分析,为分布式文件系统的策略选择、制定和调整提供必要的依据。
三.远程灾备模块
3.1远程灾备的体系结构
图3.1远程灾备体系结构图
本文设计的远程灾备系统的架构如上图所示,由一个构建在本地云上的应用系统、数据中心、容灾控制中心及构建在异地云上的应用系统、数据中心、容灾控制中心构成。
其中数据中心的主要功能是向应用系统提供数据,应用系统的主要功能向用户提供服务,容灾控制中心的主要功能是
(1)监控应用系统及数据中心的状态,
(2)在需要的时候,实施本地系统及异地系统的切换,(3)定期将本地数据中心的数据同步到异地的数据中心上
3.2容灾控制中心总体设计
3.2.1数据远程备份模块
图3.2数据远程备份模块结构图
本地和异地的数据中心都是基于HDFS.Namenode上保存着FsImage及Editlog,FsImage保存着整个文件系统的名字空间,包括数据块到文件的映射、文件的属性等,Editlog保存着对于任何对文件系统元数据产生修改的操作。
为使文件系统元数据的持久化,Namenode周期性地它从硬盘中读取Editlog和FsImage,将所有Editlog中的事务作用在内存中的FsImage上,并将这个新版本的FsImage从内存中保存到本地磁盘上,然后删除旧的Editlog,因为这个旧的Editlog的事务都已经作用在FsImage上了。
我们可以在HDFS周期性检查过程中来进行数据远程备份,因此一个HDFS检查周期同时也是一个数据远程备份周期。
在这个过程中,Namenode做以下两件事
(1)将元数据持久化,
(2)通知本地容灾控制中心进行数据远程备份。
然后,本地容灾控制中心做以下两件事(3)向Namenode询问要备份的数据块元数据,(4)经由Internet通知异地容灾控制中心进行数据远程备份,并把要备份的数据块的元数据给异地容灾控制中心。
接着,异地容灾控制中心(5)做为一个client直接读本地数据中心的DataNode上的数据块,(6)将读取的数据块写到异地数据中心的DataNode上。
3.2.2灾难检测模块
因为异地容灾控制中心可以周期性的收到来自本地容灾控制中心的数据。
当异地容灾控制中心很长时间都没有收到数据时,它就向本地容灾控制中心发一个询问,
(1)如果此时没有灾难发生,则本地容灾控制中心就发一个应答,以表示本地系统处于安全的状态且无灾难发生,
(2)如果此时有灾难发生,但是本地控制中心没有受灾,则它向异地容灾控制中心发一个应答,以表示本地系统受灾,则此刻,系统切换模块就发生作用了,就用户的服务请求转移到远程。
(3)如果此时有灾难发生,而且本地控制中心也受灾了,则异地控制中心就收不到应答,在等待了一段预置的时间后,异地容灾控制系统确定本地发生了灾难,然后自动将用户服务请求接管过来。
3.2.3系统切换模块
在发生灾难时,为了尽量保证业务的连续性,必须尽量实现系统透明的迁移,也就是能够利用备用系统透明的代替生产系统。
因为本系统通过DNS或者IP地址的改变来实现系统的切换。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型 应用 系统安全 解决方案