公有云 vs 私有云 到底谁更安全?2011年06月01日00:48 

  HyperStratus咨询公司首席执行官伯纳德·戈尔登(Bernard Golden)撰文指出,一个接一个的调查表明,对于公共云计算,安全是潜在用户最担心的问题。例如,2010年4月的一项调查指出,45%的以上的受访者感到云计算的风险超过了收益。CA和Ponemon Institute进行的一项调查也发现了类似的担心。但是,他们还发现,尽管有这些担心,云应用还是在部署着。类似的调查和结果的继续发布表明人们对安全的不信任继续存在。

  当然,大多数对云计算的担心与公共云计算有关。全球IT从业者不断地对使用一个公共云服务提供商提出同样的问题。例如,戈尔登本星期去了台湾并且在台湾云SIG会议上发表了演讲。有250人参加了这个会议。正如预料的那样,人们向他提出的第一个问题是“公共云计算足够安全吗,我是否应该使用私有云以避免任何安全问题”所有地方的人们似乎都认为公共云服务提供商是不可信赖的。

  然而,把云安全的讨论归结为“公共云不安全,私有云安全”的公式似乎过于简单化。简单地说,这个观点存在两个大谎言(或者说是两个基本的误会)。主要原因是这种新的计算模式迫使安全产品和做法发生的巨大变化。

  第一个云安全谎言

  第一个谎言是私有云是安全的,这个结论的依据仅仅是私有云的定义:私有云是在企业自己的数据中心边界范围内部署的。这个误解产生于这样一个事实:云计算包含与传统的计算不同的两个关键区别:虚拟化和活力。

  第一个1区别是,云计算的技术基础是在一个应用的管理程序的基础上的。管理程序能够把计算(及其相关的安全威胁)与传统的安全工具隔离开,检查网络通讯中不适当的或者恶意的数据包。由于在同一台服务器中的虚拟机能够完全通过管理程序中的通讯进行沟通,数据包能够从一个虚拟机发送到另一个虚拟机,不必经过物理网络。一般安装的安全设备在物理网络检查通讯流量。

  至关重要的是,这意味着如果一个虚拟机被攻破,它能够把危险的通讯发送到另一个虚拟机,机构的防护措施甚至都不会察觉。换句话说,一个不安全的应用程序能够造成对其它虚拟机的攻击,机构的安全措施对此无能为力。仅仅因为一个机构的应用程序位于私有云并不能保护这个应用程序不会出现安全问题。

  当然,人们也许会指出,这个问题是与虚拟化一起出现的,没有涉及到云计算的任何方面。这个观察是正确的。云计算代表了虚拟化与自动化的结合。它是私有云出现的另一个安全缺陷的第二个因素。

  云计算应用程序得益于自动化以实现灵活性和弹性,能够通过迅速迁移虚拟机和启动额外的虚拟机管理变化的工作量方式对不断变化的应用状况做出回应。这意味着新的实例在几分钟之内就可以上线,不用任何人工干预。这意味着任何必要的软件安装或者配置也必须实现自动化。这样,当新的实例加入现有的应用程序池的时候,它能够立即作为一个资源使用。

  同样,它还意味着任何需要的安全软件必须自动化地安装和配置,不需要人的干预。遗憾的是,许多机构依靠安全人员或者系统管理员人工安装和配置必要的安全组件,通常作为这台机器的其它软件组件安装和配置完毕之后的第二个步骤。

  换句话说,许多机构在安全做法与云要求的现实方面是不匹配的。估计私有云本身是安全的这个观点是不正确的。在你的安全和基础设施做法与自动化的实例一致之前,你会有安全漏洞。

  而且,使它们一致是非常重要的。否则,你可能出现这种情况:你的应用程序自动化超过了你的安全做法的应对能力。这不是一个好现象。毫无疑问,人们不喜欢解释为什么好像安全的私有云最终还是有安全漏洞,因为云计算的自动化特征还没有扩展到软件基础设施的所有方面。

  因此,关于云计算的第一个大谎言的结果是私有云本身就是不安全的。

  第二个云安全谎言

  关于云计算安全的第二个谎言是对公共云安全的推测,特别是推测公共云计算的安全完全取决于云服务提供商。现实是,服务提供商领域的安全是提供商与用户共同承担的责任。服务提供商负责基础设施的安全以及应用程序与托管的环境之间的接口的安全;用户负责接入这个环境的接口的安全,更重要的是负责应用程序本身的内部安全。

  没有正确地配置应用程序,如环境安全接口或者没有采取适当的应用程序级安全预防措施,会使用户产生一些问题。任何提供商也许都不会对这种问题承担责任。

  让我提供一个例子。与我们合作的一家公司把自己核心的应用程序放在亚马逊Web服务中。遗憾的是这家公司在如果使用亚马逊Web服务安全机制或者简单应用程序设计问题等方面没有采取适当的安全措施。

  实际上,亚马逊提供一个虚拟机级别的防火墙(称作安全组)。人们配置这个防火墙以允许数据包访问具体的端口。与安全组有关的最佳做法是对它们分区,这样,就会为每一个虚拟化提供非常精细的访问端口。这将保证只有适用于那种类型机器的通讯能够访问一个实例。例如,一台Web服务器虚拟机经过配置允许端口80上的通讯访问这个实例,同时,数据库虚拟机经过配置允许端口80上的通讯访问这个实例。这就阻止了来自外部的利用web通讯对包含重要应用程序数据的数据库实例的攻击。

  要建立一个安全的应用程序,人们必须正确地使用安全组。这个机构没有这样做。它对于访问所有实例的通讯都使用一个安全组。这意味着访问任何实例的任何类型的通讯都可以访问每一种类型的实例。这显然是糟糕地使用亚马逊Web服务安全机制的一个例子。