云計算加密與IaaS安全
我曾開玩笑說,各種越來越多的不同云計算應用就如同是在打造一只存儲數據加密工程師的“金飯碗“。一直以來,加密就是一個重要的安全工具,但是在大多數情況下,我們還沒有頻繁地使用這一工具來保護存儲數據。而正是由于云計算的出現以及眾多公共數據泄漏事件的影響,這一情況已發生了改變。
目前,采用云計算加密的原因可能并不如你所認為的那樣。最常見的想法是應該由你的云計算服務管理員來保護數據(這里主要是指公共云計算)。毫無疑問,對你的數據垂涎欲滴的云計算供應商是一個潛在的風險,但對大多數人來說,這可能只是一個小風險。這也帶給我們一種錯覺,即不需要對私有云計算數據進行加密。
實施云計算加密的動因
除了加密數據(無論是進還是出云計算)的常見原因,還有兩個主要的原因:
1. 云計算是由API而不是物理訪問來管理。因此,如果有人獲得了對管理平臺的管理級訪問權,那么他們就可以很容易地復制和移動大量的數據,而這一點在傳統基礎設施中是根本無法實現的。所有所需的僅僅是一個并不強壯的管理系統以便于竊取你的整個基于云計算的數據中心。
2. 即便是私有云計算,它也是具有多租戶特點的。加密技術可以讓你的數據與其他用戶(甚至是管理員)保持安全的距離。它允許你使用一個更加開放的共享基礎設施,同時還能夠保護你自己的數據,當然前提是你必須操作正確。
考慮到這些原因,那么就讓我們來看看兩種IaaS存儲方法,以及應當如何對它們進行加密以實現IaaS安全性。
云計算加密:對象存儲
首先是對象存儲,例如Amazon S3 或 OpenStack Swift。對象存儲是一個文件/對象庫。可以把它想象成一個文件服務器或硬盤驅動器。雖然,你可以配置大部分的對象存儲系統并對它們所存儲的所有數據進行加密,但是這種方式的作用是片面的,它只能防止驅動器丟失,而不是保護你的文件免受外人的訪問。
為了在一個共享庫中保護你的文件,你需要使用一個我稱之為“虛擬私有存儲”的架構。就如同虛擬私有網絡(VPN)允許我們加密私有數據并使用公共網絡一樣,虛擬私有存儲允許我們在公共存儲設備中保護私有數據。
其原理是相當簡單的:在你把你的數據發送至云計算之前,對其進行加密。根據你的實際工作情況,這一步操作可以在你用于訪問對象存儲的代理/應用程序中自動執行。例如,我使用Dropbox (它在S3中存儲文件),通過把敏感文件存放于存儲在服務中的加密卷標來對它們進行保護。只有我自己有密鑰,因此我的數據是安全的。
云計算加密:卷標存儲
下面,讓我們談談卷標存儲,例如Amazon EBS 或 RackSpace RAID。當在云計算中運行長期計算實例時,你就會用到這種存儲系統。它們模擬成一個普通的硬件卷標,然后我們使用類似的技術對其進行加密。
第一種方法就是加密與你的實例相關的卷標。你的實例并沒有被加密(對于引導卷標來說,其情況更為復雜),但是你的敏感數據存儲在與實例相關的加密卷標中。有很多工具支持這一功能,它們甚至不需要針對云計算做任何特殊的改動。為了實現進一步的安全性,你可以把你的密鑰存儲在你的實例之外(對不起,鑒于篇幅有限,這一問題我將在今后的文章中具體介紹)。
另一個方法是使用特殊的加密代理,它位于計算實例和存儲卷標或用于文件服務器的第二實例之間。當你有一堆實例連接至相同的存儲或需要模擬出比實例中由工具支持的存儲更多的類型時,這種方式就有用武之地了。這些代理一般都是成熟的商品,基本上就是在你的云計算環境中運行的虛擬設備。
最后,對于私有云計算或混合云計算,你可以使用外部管理加密工具,它們有可能是物理硬件。此外,這些成熟商品對于利用現有的加密投資或更為復雜的部屬都是有用的。
我并不是想要過分簡化IaaS存儲加密。我并沒有用過多的筆墨來介紹很多的方法和用例,但是IaaS的安全基礎可能并不如你想象的那樣復雜。云計算安全聯盟的培訓包括了一個手把手的卷標加密操作,其費時只需10分鐘。