一直以来,加密就是一个重要的安全工具,但是在大多数情况下,我们还没有频繁地使用这一工具来保护存储数据。而云计算的出现以及众多公共数据泄漏事件的出现改变了这种情况。

采用云计算加密的原因最常见的是由你的云计算服务管理员来保护数据(这里主要是指公共云计算)。云计算供应商对你的数据垂涎欲滴,毫无疑问,这是一个潜在的风险,但对大多数人来说,这可能只是一个小风险。当然,这也会给我们带来一种错觉,即不需要对私有云计算数据进行加密。

实施云计算加密的原因

除了加密数据(无论是进还是出云计算)的常见原因外,还有两个主要的原因:

1. 云计算是由API而不是物理访问来管理。因此,如果有人获得了对管理平台的管理级访问权,那么他们就可以很容易地复制和移动大量的数据,而这一点在传统基础设施中是根本无法实现的。所需的仅仅是一个并不强壮的管理系统以便于窃取你的整个基于云计算的数据中心。

2. 即便是私有云计算,它也是具有多租户特点的。加密技术可以让你的数据与其他用户(甚至是管理员)保持安全的距离。它允许你使用一个更加开放的共享基础设施,同时还能够保护你自己的数据,当然前提是你必须操作正确。

考虑到这些原因,那么就让我们来看看两种IaaS存储方法,以及应当如何对它们进行加密以实现IaaS安全性。

对象存储的原理

首先是对象存储,例如Amazon S3 或OpenStack Swift。对象存储是一个文件/对象库。可以把它想象成一个文件服务器或硬盘驱动器。虽然,你可以配置大部分的对象存储系统并对它们所存储的所有数据进行加密,但是这种方式的作用是片面的,它只能防止驱动器丢失,而不是保护你的文件免受外人的访问。

为了在一个共享库中保护你的文件,你需要使用一个我称之为“虚拟私有存储”的架构。就如同虚拟私有网络(VPN)允许我们加密私有数据并使用公共网络一样,虚拟私有存储允许我们在公共存储设备中保护私有数据。

其原理是相当简单的:在你把你的数据发送至云计算之前,对其进行加密。根据你的实际工作情况,这一步操作可以在你用于访问对象存储的代理/应用程序中自动执行。例如,我使用Dropbox (它在S3中存储文件),通过把敏感文件存放于存储在服务中的加密卷标来对它们进行保护。只有我自己有密钥,因此我的数据是安全的。

卷标存储的两种方法

当在云计算中运行长期计算实例时,你就会用到卷标存储系统。它们模拟成一个普通的硬件卷标,然后我们使用类似的技术对其进行加密。

第一种方法就是加密与你的实例相关的卷标。你的实例并没有被加密(对于引导卷标来说,其情况更为复杂),但是你的敏感数据存储在与实例相关的加密卷标中。有很多工具支持这一功能,它们甚至不需要针对云计算做任何特殊的改动。为了实现进一步的安全性,你可以把你的密钥存储在你的实例之外(对不起,鉴于篇幅有限,这一问题我将在今后的文章中具体介绍)。

另一个方法是使用特殊的加密代理,它位于计算实例和存储卷标或用于文件服务器的第二实例之间。当你有一堆实例连接至相同的存储或需要模拟出比实例中由工具支持的存储更多的类型时,这种方式就有用武之地了。这些代理一般都是成熟的商品,基本上就是在你的云计算环境中运行的虚拟设备。

最后,对于私有云计算或混合云计算,你可以使用外部管理加密工具,它们有可能是物理硬件。此外,这些成熟商品对于利用现有的加密投资或更为复杂的部属都是有用的。

小知识之IaaS:

IaaS(Infrastructure as a Service),即基础设施即服务。消费者通过Internet 可以从完善的计算机基础设施获得服务,这类服务称为基础设施即服务(Infrastructure as a Service,IaaS)。基于 Internet 的服务(如存储和数据库)是 IaaS的一部分。