蔡向峰 王帶弟 鄭 重 趙 超
1 廣東省電信規(guī)劃設(shè)計院有限公司沈陽分院 沈陽 110000
2 中國電信集團公司吉林省分公司 長春 130000
云計算技術(shù)被認(rèn)為是繼微型計算機和互聯(lián)網(wǎng)后的第三次IT革命,是互聯(lián)網(wǎng)和IT融合發(fā)展的大趨勢之一。按照Gartner的分析及預(yù)測,云主機和云存儲市場在2013年的增速均高達(dá)47%,但云主機市場未來的增速要高于云存儲。云主機在IaaS市場的整體份額在2017年將達(dá)到84%,市場規(guī)模有望突破250億美元。企業(yè)IT系統(tǒng)向云遷移的趨勢已經(jīng)勢不可擋,但遷移前最大的擔(dān)憂來自于數(shù)據(jù)安全。伴隨著企業(yè)向云環(huán)境的遷移,保護數(shù)據(jù)的傳統(tǒng)方法則面臨基于云的架構(gòu)所帶來的全新挑戰(zhàn)。高彈性的、多租戶、全新的物理與邏輯架構(gòu)以及抽象控制均需要新的數(shù)據(jù)安全戰(zhàn)略[1-2]。云中應(yīng)用的數(shù)據(jù)安全(包括數(shù)據(jù)的機密性、完整性和可用性)是成功向云遷移的最大保證。
應(yīng)用向云中的遷移分為6個步驟:遷移評估、概念驗證、數(shù)據(jù)遷移、應(yīng)用遷移、合理應(yīng)用和優(yōu)化系統(tǒng)。其中,遷移第一階段會對數(shù)據(jù)安全做詳細(xì)評估和驗證。
市場上云服務(wù)提供商有很多,包括AWS(Amazon Web Service)、Windows Azure、阿里云等。AWS市場占有率第一,無論在服務(wù)的廣度和深度上都有其優(yōu)勢,本文以應(yīng)用遷移至AWS為例分析云應(yīng)用傳輸中的數(shù)據(jù)及非流動性數(shù)據(jù)(存儲在磁盤上等不在網(wǎng)絡(luò)上傳送的數(shù)據(jù))的安全解決方案。
安全是比較宏大的主題,涉及技術(shù)、組織和法規(guī)等各個層面。從技術(shù)角度來說,云應(yīng)用安全責(zé)任分工和原有物理或私有云環(huán)境有較大不同,通常云應(yīng)用安全責(zé)任分工[3-4]如圖1所示。
圖1 云應(yīng)用安全責(zé)任分工
數(shù)據(jù)中心本身的物理安全、硬件安全、物理網(wǎng)絡(luò)監(jiān)控及安全API等均由云服務(wù)提供者來保證,云服務(wù)本身的賬號安全、管理權(quán)限相關(guān)的安全、操作系統(tǒng)的安全以及使用各類云服務(wù)之后的相關(guān)應(yīng)用安全和網(wǎng)絡(luò)接入控制由客戶來保證。
云應(yīng)用常通過Internet傳輸數(shù)據(jù),當(dāng)在云環(huán)境下運行應(yīng)用時,保護傳輸中的數(shù)據(jù)非常重要,Internet上傳輸數(shù)據(jù)存在的威脅關(guān)注點如表1所示。
表1 Internet上傳輸數(shù)據(jù)存在的威脅關(guān)注點分類
Amazon VPC(Virtual Private Cloud)[5]允許在AWS云中預(yù)配置出一個采用邏輯隔離的部分,在定義的虛擬網(wǎng)絡(luò)中啟動AWS資源。選擇自有的IP地址范圍、創(chuàng)建子網(wǎng),以及配置路由表和網(wǎng)關(guān),來完全掌控虛擬環(huán)境。
VPC可將AWS資源放到一個定義好的虛擬網(wǎng)絡(luò)里,控制來自個人實例的內(nèi)外部訪問,可隔離一個或多個公有或私有子網(wǎng)中IP地址。為訪問Internet的Web服務(wù)器創(chuàng)建公有子網(wǎng),使用IPSecVPN連接在VPC和企業(yè)自有IP架構(gòu)(傳統(tǒng)或私有云IT架構(gòu))間建立橋接。而將數(shù)據(jù)庫或應(yīng)用程序服務(wù)器等后端系統(tǒng)放在不能訪問Internet的私有子網(wǎng)中,利用安全組和網(wǎng)絡(luò)訪問控制列表等多種安全層,幫助對各個子網(wǎng)中Amazon EC2實例的訪問進行控制,傳輸實例如圖2所示。
此外,也可以在公司數(shù)據(jù)中心和VPC之間創(chuàng)建硬件虛擬專用網(wǎng)絡(luò)(VPN)連接,將AWS云用作公司數(shù)據(jù)中心的擴展。
圖2 VPC數(shù)據(jù)傳輸實例圖
當(dāng)訪問AWS公有云上的應(yīng)用時,大部分情況認(rèn)為Internet是個不安全的通信媒介,安全策略是保護傳輸中的數(shù)據(jù),保護傳輸數(shù)據(jù)方法概括如表2所示。
表2 管理應(yīng)用及訪問公有云服務(wù)時傳輸數(shù)據(jù)安全策略
通過AWS管理控制臺或AWS API管理諸如Amazon EC2和Amazon S3服務(wù)。服務(wù)管理實例包括創(chuàng)建一個新的Amazon EC2 實例、保存一個對象到Amazon S3(Simple Storage Service)桶或者修改一個基于VPC的安全組。
AWS管理控制臺在客戶瀏覽和服務(wù)端用SSL/TLS保護AWS服務(wù)管理網(wǎng)絡(luò)流量。用X.509保證數(shù)據(jù)完整性,實現(xiàn)客戶瀏覽的服務(wù)端身份認(rèn)證。隨后在客戶瀏覽和控制服務(wù)端點間制定SSL/TLS會話,保護SSL/TLS會話里的所有HTTP通信。
可用AWS API或通過應(yīng)用又或第三方工具(SDK或者AWS命令行工具)管理來自AWS的服務(wù)。AWS API是在HTTPS上的web服務(wù)(SOAP或者REST),在基于已用的API和所有網(wǎng)絡(luò)流量在客戶端和特殊的AWS服務(wù)端間建立SSL/TLS會話,保護SOAP/REST包及用戶負(fù)載在SSL/TLS的會話。
和用戶負(fù)載一樣,包括所有的Amazon S3服務(wù)管理請求,例如通過Amazon S3來存儲或者恢復(fù)的所有內(nèi)容和相關(guān)元數(shù)據(jù),Amazon S3通過在HTTPS上的SOAP來存取數(shù)據(jù)。
當(dāng)AWS服務(wù)控制臺被用來管理Amazon S3,一個SSL/TLS連接在客戶端和Amazon S3端被建立,然后在被保護會話中密封所有的HTTP、SAOP及用戶負(fù)載網(wǎng)絡(luò)流量。
如果你在同一個區(qū)域中正在連接到來自Amazon EC2實例的Amazon RDS,可依靠AWS網(wǎng)絡(luò)安全;但如果你正在連接Internet,為了附加防護,你可能想要用SSL/TLS。
SSL/TLS通過X.509證書提供認(rèn)證,為客戶端連接保證數(shù)據(jù)完整性及加密數(shù)據(jù)。
RDS MySQL和Microsoft SQL實例連接一般支持SSL/TLS。對于兩個產(chǎn)品來說,Amazon Web服務(wù)提供一個單獨的自簽名證書與MySQL或Microsoft SQL監(jiān)聽器聯(lián)合。為了在服務(wù)器側(cè)身份認(rèn)證及預(yù)防中間人攻擊或者身份欺騙攻擊,可以下載單獨的自簽名證書,并設(shè)定它為可信的。SSL/TLS提供為服務(wù)器端及客戶端本機加密及數(shù)據(jù)完整性認(rèn)證。因為相同的自簽名證書在AWS中所有Amazon SQL實例中可用,每一個對等點身份認(rèn)證不能提供給單個實例認(rèn)證。若需要通過SSL/TLS個人服務(wù)器認(rèn)證,則需要利用AWS EC2和自我管理的關(guān)系型數(shù)據(jù)庫服務(wù)。
為Oracle本地網(wǎng)絡(luò)加密,Amazon RDS隨著數(shù)據(jù)庫的遷入和遷出加密數(shù)據(jù)。Oracle本地網(wǎng)絡(luò)加密使用行業(yè)標(biāo)準(zhǔn)的加密算法如AES和DES,可以在Oracle網(wǎng)絡(luò)服務(wù)加密網(wǎng)絡(luò)流量。
在應(yīng)用遷移的第一步遷移評估和第三步數(shù)據(jù)遷移中都會對數(shù)據(jù)進行云中映射[6]。在原有的物理或私有云環(huán)境中,生產(chǎn)數(shù)據(jù)存儲在磁盤(本地存儲或SAN共享存儲)中,備份數(shù)據(jù)一般存儲在磁帶或虛擬帶庫磁盤中。這種數(shù)據(jù)存儲方式遷移到云環(huán)境時會有比較大的變化,因為云環(huán)境提供了更多的存儲選擇,遷移前應(yīng)根據(jù)數(shù)據(jù)格式(結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化)、數(shù)據(jù)集的大小、數(shù)據(jù)性能要求(IOPS、延遲等)以及數(shù)據(jù)的可用性和可持久性要求,選擇合適的云存儲方式。具體建議如表3所示。
S3中存儲的一般為靜態(tài)生產(chǎn)數(shù)據(jù)或備份數(shù)據(jù)。在S3中存儲的數(shù)據(jù)安全主要通過三種方案來實現(xiàn):客戶端加密或者服務(wù)端加密、接入控制、以及分布式存儲技術(shù)實現(xiàn)的超高可用性及持久性。
1) 客戶端加密或者服務(wù)端加密。加密技術(shù)增強了存儲在S3中數(shù)據(jù)的安全性。客戶端的加密方案指在上傳S3之前對數(shù)據(jù)進行加密,由客戶來控制加密流程、秘鑰及相關(guān)的工具,可使用業(yè)界流行的各類加密方法,如AES-256、RSA等。
表3 遷移時數(shù)據(jù)存儲的選擇及比對建議
服務(wù)端加密是S3本身的一個特性(可選),S3將會在數(shù)據(jù)文件寫入磁盤前對數(shù)據(jù)進行自動加密,當(dāng)用戶下載數(shù)據(jù)的時候自動解密。將用戶從管理加密流程、秘鑰和相關(guān)工具的任務(wù)中解放出來。采用的是AES-256對數(shù)據(jù)進行加密,且可對單個對象進行加密。在上傳S3對象的時候,客戶可明確指定是否需要采用加密方式來存儲數(shù)據(jù)。服務(wù)端加密是可選的,可在一個存儲桶里面同時加入加密對象和不加密對象。S3也支持對存儲桶下的對象都進行加密。
2) 訪問控制。接入控制主要有三種解決方案。①身份認(rèn)證管理(Identity and Access Management,IAM):安全地控制用戶對各類云服務(wù)和資源的訪問權(quán)限。云用戶可以使用IAM來創(chuàng)建和管理用戶和群組,并使用各種權(quán)限來允許或拒絕他們訪問各類云資源,針對用戶來對S3中資源進行接入控制管理。②存儲桶策略(Bucket Policy):可以對整個存儲桶或單個對象進行訪問控制。③訪問控制列表(ACL):只能按照AWS賬號來對S3中的資源進行訪問控制。
綜合來講,ACL是粗粒度方案,IAM和Bucket Policy是細(xì)粒度訪問控制方案,在不同應(yīng)用場景,可合理地選擇不同的方案或者幾種方案的組合來靈活使用。
3) 分布式存儲技術(shù)。S3本身就是分布式對象存儲,其內(nèi)部實現(xiàn)方法AWS沒有對外公開,但從其公開的一些SLA中可以發(fā)現(xiàn)S3本身的可用性和持久性。S3會自動在一個區(qū)域(region)跨多個可用區(qū)(AZ)復(fù)制多個存儲的副本,S3的持久性為99.999999999%(11個9),放在S3上的數(shù)據(jù)不用擔(dān)心丟失問題。S3本身的分布式也支持幾乎無限的存儲容量(超過2萬億的數(shù)據(jù)對象)及高并發(fā)的吞吐量(峰值每秒鐘300萬請求)。在S3中存儲的數(shù)據(jù)不用擔(dān)心性能、可用性及持久性問題,唯一需要用戶關(guān)注提升性能及可用性的優(yōu)化,S3是按照對象鍵名的前綴來進行自動分區(qū)分布數(shù)據(jù)的,比如大量的以時間戳方式來命名的數(shù)據(jù):2014_12_05-1129879.jpg,2014_12_05-1139469.jpg等,如果按照原有文件名方式直接進行存儲,那么這些文件會落入到一個partition里面,訪問吞吐率很可能會限制在100個PUT或者GET的操作。最簡單的解決方案就是把文件名做一個反轉(zhuǎn),1139469-2014_12_05.jpg,1129879-2014_12_05.jpg。經(jīng)過反轉(zhuǎn)之后文件名前綴引入了足夠多的隨機性,這樣的數(shù)據(jù)其存放的分布性更強,訪問吞吐率也會變高,數(shù)據(jù)可用性變強。
通過客戶端加密或服務(wù)端加密,使用良好的訪問控制以及S3本身的高可用及高持久性,可保證在云中存儲的靜態(tài)數(shù)據(jù)的安全性。
EBS(Elastic Block Store)可在AWS云中提供用于Amazon EC2實例的持久性數(shù)據(jù)塊級存儲卷。每個EBS卷在其可用區(qū)內(nèi)自動復(fù)制,免于組件故障的威脅,同時提供高可用性和持久性。為保證數(shù)據(jù)更高的安全性,EBS可以很方便地使用快照(snapshot)功能,用戶可以定期為EBS存儲數(shù)據(jù)執(zhí)行快照(增量快照),快照可以存儲在S3上,S3可以放在本區(qū)域中或者放置到其他的區(qū)域中,達(dá)到數(shù)據(jù)容災(zāi)的效果。
1) 數(shù)據(jù)加密方案。加密的解決方案類似S3的解決方案,可分為使用公有云廠商的加密方案及用戶自加密兩種。
EBS加密屬于EBS的服務(wù)內(nèi)容之一,讓客戶無需構(gòu)建、維護和保護自己的密鑰管理基礎(chǔ)設(shè)施。創(chuàng)建加密EBS卷并將它連接到支持的實例類型時,該卷上靜態(tài)存儲的數(shù)據(jù)、磁盤I/O和通過該卷創(chuàng)建的快照都會進行加密。加密在托管Amazon EC2實例的服務(wù)器上進行,從而為從EC2實例傳輸?shù)紼BS存儲的數(shù)據(jù)提供加密。
所有EBS卷類型(General Purpose (SSD)、Provisioned IOPS)都支持此功能,加密卷對延遲的影響極小,其中Provisioned IOPS性能與未加密卷一樣??梢酝ㄟ^與訪問現(xiàn)有卷相同的方式來訪問EBS卷。加密和解密以透明方式處理,虛擬機實例和應(yīng)用程序無需執(zhí)行其他操作。加密EBS卷的快照會自動加密,通過加密EBS快照創(chuàng)建的卷也會自動加密。
云服務(wù)提供者處理密鑰管理。每個新創(chuàng)建的卷都使用唯一的256位密鑰加密;卷的所有快照以及快照創(chuàng)建的后續(xù)卷也共享該密鑰。這些密鑰受云服務(wù)提供商密鑰管理基礎(chǔ)設(shè)施的保護,實施強邏輯和物理安全控制以防止未經(jīng)授權(quán)的訪問??蛻舻臄?shù)據(jù)和關(guān)聯(lián)的密鑰使用行業(yè)標(biāo)準(zhǔn)的 AES-256算法進行加密。
EC2掛載的EBS文件加密也可完全依賴用戶進行加密。通過不同的操作系統(tǒng)對文件系統(tǒng)加密也可以實現(xiàn)數(shù)據(jù)的保密,Windows系統(tǒng)使用EFS,可對文件和文件夾加密。如果需要加密整個卷,開源truecrypt可以很好地和NTFS的EBS整合。Linux可以使用加密文件系統(tǒng)掛載(EncFS、Loop-AES、truecrypt)。使用之后只有服務(wù)器上的用戶和進程才可以看到明文的數(shù)據(jù)。
2) 數(shù)據(jù)訪問控制方案。和S3的訪問控制基本相似,EBS卷的訪問權(quán)限與IAM相集成。IAM對EBS卷啟用訪問控制。針對各類云用戶和組進行各種訪問控制的設(shè)置,保證ESB的訪問是可控、可管和可信的。
大多數(shù)IT系統(tǒng)數(shù)據(jù)庫最核心的數(shù)據(jù)處理與存儲單元的安全對整體系統(tǒng)在云中的運行來說至關(guān)重要,本文依舊采用原有環(huán)境(物理環(huán)境或私有云環(huán)境)數(shù)據(jù)庫6步方案。在遷移之前也需要進行評估,主要包括現(xiàn)狀分析、制定遷移目標(biāo)、云服務(wù)映射、制定云中的系統(tǒng)架構(gòu)等步驟。在AWS中,數(shù)據(jù)庫可分為SQL和NO SQL兩大類,服務(wù)類型可以分為DIY和托管服務(wù)兩大類。SQL的托管服務(wù)為RDS,另一種DIY方式的實質(zhì)就是在虛擬機操作系統(tǒng)上直接安裝數(shù)據(jù)庫軟件。RDS支持MySQL、Oracle、Microsoft SQL Server或PostgreSQL。當(dāng)前已用于現(xiàn)有數(shù)據(jù)庫的代碼、應(yīng)用程序和工具可用在RDS上。RDS可自動升級補丁和備份。只需通過一次API調(diào)用,即可靈活地擴展與DB Instance相關(guān)聯(lián)的計算資源或存儲容量。直接在虛擬機上安裝數(shù)據(jù)庫可實現(xiàn)對數(shù)據(jù)庫的完全掌控,在數(shù)據(jù)庫的可用性、性能、管理和監(jiān)控、授權(quán)、支持方面,和原有的物理環(huán)境比較相似(實質(zhì)上性能和可用性需要的架構(gòu)和原有環(huán)境有很大不同,在合理設(shè)計之后可實現(xiàn)和原有環(huán)境相同或更高的能力)。本文以DIY的Oracle數(shù)據(jù)庫為例介紹數(shù)據(jù)庫的安全解決方案。
1) 數(shù)據(jù)庫可用性解決方案,如圖3所示。通過Active Data Guard實現(xiàn)不同AZ之間數(shù)據(jù)庫的同步、讀寫分離,實現(xiàn)高可用和負(fù)載分擔(dān)。備份解決方案有兩種,通過RMAN+OSB備份至S3或通過RMAN備份至EBS,也可以再給備份的EBS做個快照存至S3,實現(xiàn)數(shù)據(jù)的高持久性。長期不經(jīng)常使用的數(shù)據(jù)可設(shè)置失效時限,放到Glacier。
同城容災(zāi):多AZ的實現(xiàn)方案,S3備份,讀寫分庫且多AZ。
異地容災(zāi):RMAN+OSB異地到S3或pilot light(長明燈,有一個基本虛擬機一直在運行著,掛載的是Active Data Guard同步的EBS,可以實現(xiàn)比備份、恢復(fù)更短的RPO)方案。
圖3 數(shù)據(jù)庫可用性解決方案
2) 網(wǎng)絡(luò)安全方案(如圖4所示)。使用VPC可創(chuàng)建邏輯私有、隔離的網(wǎng)絡(luò),通過Ipsec VPN和原有物理數(shù)據(jù)中心建立安全的數(shù)據(jù)連接(如果是混合架構(gòu)),通過VPC的路由表+安全組(Security Group)可以創(chuàng)建靈活的網(wǎng)絡(luò)訪問方式;使用NAT保證數(shù)據(jù)庫服務(wù)器具備互聯(lián)網(wǎng)流出功能,而不能被互聯(lián)網(wǎng)主動訪問;使用堡壘機確保安全登錄及配置。
圖4 網(wǎng)絡(luò)及加密解決方案
3) 加密方案(如圖4所示)。通過透明頁面加密實現(xiàn)對靜態(tài)數(shù)據(jù)的加密,加密方式為AES或者3DES。
4) 數(shù)據(jù)訪問控制。使用虛擬私有數(shù)據(jù)庫控制對數(shù)據(jù)庫行和列的安全接入,使用Oracle Database Vault保證特殊敏感信息,使用IAM進行EC2等相關(guān)資源的授權(quán)和認(rèn)證。
云環(huán)境與傳統(tǒng)環(huán)境(私有云或者傳統(tǒng)IT架構(gòu))下的數(shù)據(jù)安全相比,加密算法、證書等技術(shù)相同,但接入控制、權(quán)限控制、架構(gòu)等大不相同。通過對傳輸中的數(shù)據(jù)及非流動性的數(shù)據(jù)安全解決方案分析,總結(jié)出可使用諸如加密、備份、證書、接入控制、權(quán)限控制、合理的架構(gòu)等方案來實現(xiàn)數(shù)據(jù)的高安全,保證傳統(tǒng)環(huán)境下的信息系統(tǒng)向公有云服務(wù)遷移中及遷移后的數(shù)據(jù)安全。
參考文獻(xiàn)
[1]The Data Security Lifecycle[EB/OL].[2015-01-02].http://www.securosis.com/blog/data-security-lifecycle-2.0
[2]Sun Y S,Zhang J S,Xiong Y P.Data Security and Privacy in Cloud Computing[J/OL].[2015-01-02].International Journal of Distributed Sensor Networks.http://dx.doi.org/10.1155/2014/190903
[3]陳馳,于晶.云計算安全體系[M].北京:北京科學(xué)出版社,2014
[4]曾慶凱,許峰,張有東.信息安全體系結(jié)構(gòu)[M].北京:電子工業(yè)出版社,2010
[5]Extend Your IT Infrastructure with Amazon Virtual Private Cloud[EB/OL].[2015-01-02].http://aws.amazon.com/whitepapers/
[6]Securing Data at Rest with Encryption[EB/OL].[2015-01-02].http://aws.amazon.com/whitepapers/