用于虛擬機(jī)的日志結(jié)構(gòu)化卷加密的制作方法
【專(zhuān)利摘要】一種用于提供數(shù)據(jù)的方法、系統(tǒng)和裝置。該方法包括:從第一虛擬機(jī)(VM1)接收用于存儲(chǔ)第一數(shù)據(jù)的第一請(qǐng)求,獲得第一數(shù)據(jù)和授權(quán)用戶(hù)的訪問(wèn)控制列表(ACL),獲得第一數(shù)據(jù)密鑰和第一數(shù)據(jù)密鑰標(biāo)識(shí)符,用所述第一數(shù)據(jù)密鑰對(duì)第一數(shù)據(jù)進(jìn)行加密,對(duì)第一數(shù)據(jù)密鑰和ACL進(jìn)行加密以生成卷包的blob,存儲(chǔ)卷包的blob和加密的第一數(shù)據(jù),并且向在ACL上的一個(gè)或者多個(gè)用戶(hù)提供第一數(shù)據(jù)密鑰標(biāo)識(shí)符。該方法還包括從第二虛擬機(jī)(VM2)接收對(duì)于第一數(shù)據(jù)的快照的第二請(qǐng)求、包括做出該請(qǐng)求的用戶(hù)的標(biāo)識(shí),對(duì)卷包的blob進(jìn)行解密,獲得第一數(shù)據(jù),按照ACL對(duì)該用戶(hù)進(jìn)行認(rèn)證和授權(quán),使用第一數(shù)據(jù)密鑰對(duì)加密的第一數(shù)據(jù)進(jìn)行解密,并且提供解密的第一數(shù)據(jù)的快照。
【專(zhuān)利說(shuō)明】用于虛擬機(jī)的日志結(jié)構(gòu)化卷加密
[0001]有關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求對(duì)通過(guò)引用將公開(kāi)內(nèi)容結(jié)合于此、標(biāo)題為L(zhǎng)OG STRUCTURED VOLUMEENCRYPT1N FOR VIRTUAL MACHINES、提交于 2012 年 2 月 24 日的第 13/405,036 號(hào)美國(guó)申請(qǐng)的優(yōu)先權(quán)。
【技術(shù)領(lǐng)域】
[0003]本說(shuō)明書(shū)涉及安全數(shù)據(jù)存儲(chǔ),并且具體地涉及用于虛擬機(jī)的安全數(shù)據(jù)存儲(chǔ)。
【背景技術(shù)】
[0004]云計(jì)算是基于網(wǎng)絡(luò)的計(jì)算,其中在數(shù)據(jù)中心或者“服務(wù)器群”中容納的通常大型的服務(wù)器匯集根據(jù)需要向遠(yuǎn)程終端用戶(hù)提供計(jì)算資源和數(shù)據(jù)存儲(chǔ)。一些云計(jì)算服務(wù)允許終端用戶(hù)在云中運(yùn)行用戶(hù)提供的服務(wù)器軟件應(yīng)用(例如電子商務(wù)服務(wù)器應(yīng)用、web服務(wù)器或者文件服務(wù)器)。一些其它云計(jì)算服務(wù)向通過(guò)web瀏覽器或者其它客戶(hù)端側(cè)軟件利用軟件應(yīng)用、比如字處理器和其它常用應(yīng)用的終端用戶(hù)提供對(duì)這些應(yīng)用的訪問(wèn)。用戶(hù)的電子數(shù)據(jù)文件通常存儲(chǔ)于服務(wù)器群中而不是用戶(hù)的個(gè)人計(jì)算設(shè)備上。
【發(fā)明內(nèi)容】
[0005]一般而言,可以在包括一種用于數(shù)據(jù)加密的方法的一個(gè)或者多種數(shù)據(jù)處理裝置實(shí)施的方法中體現(xiàn)在本文中描述的主題內(nèi)容的一個(gè)方面。該方法包括從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)數(shù)據(jù)的第一請(qǐng)求。該方法還包括基于第一請(qǐng)求來(lái)獲得數(shù)據(jù)和被授權(quán)訪問(wèn)數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表。該方法還包括獲得具有數(shù)據(jù)密鑰標(biāo)識(shí)符的數(shù)據(jù)密鑰。該方法還包括使用一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用卷包密鑰對(duì)數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob。該方法還包括使用一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)。該方法還包括在日志結(jié)構(gòu)化卷中存儲(chǔ)卷包的blob和加密的數(shù)據(jù)。該方法還包括向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供數(shù)據(jù)密鑰標(biāo)識(shí)符。該方法還包括從第二虛擬機(jī)接收對(duì)于獲得數(shù)據(jù)的快照的第二請(qǐng)求。該方法還包括基于第二請(qǐng)求獲得包含數(shù)據(jù)密鑰和訪問(wèn)控制列表的未卷包的blob。該方法還包括從未卷包的blob獲得數(shù)據(jù)密鑰和訪問(wèn)控制列表。該方法還包括認(rèn)證與第二請(qǐng)求關(guān)聯(lián)的用戶(hù)并且按照訪問(wèn)控制列表向用戶(hù)授權(quán)。該方法還包括在確定用戶(hù)被認(rèn)證和授權(quán)時(shí)使用一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。該方法還包括向第二虛擬機(jī)提供數(shù)據(jù)的快照。
[0006]實(shí)現(xiàn)方式可以包括以下特征中的一個(gè)或者多個(gè)特征。該方法還包括確定與數(shù)據(jù)在日志結(jié)構(gòu)化卷上的存儲(chǔ)關(guān)聯(lián)的閾值條件已經(jīng)出現(xiàn)。該方法還包括獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密、使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob、使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)、在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)、向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符并且防止數(shù)據(jù)密鑰的后續(xù)使用。閾值條件包括數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量。數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量是累計(jì)數(shù)量。數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量是當(dāng)前數(shù)量。閾值條件包括數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間。該方法還包括審核對(duì)數(shù)據(jù)的訪問(wèn)并且確定數(shù)據(jù)已經(jīng)被不在訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且數(shù)據(jù)密鑰已經(jīng)被破解。該方法還包括獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密、使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob、使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)、在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)、向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符并且防止數(shù)據(jù)密鑰的后續(xù)使用。存儲(chǔ)加密的數(shù)據(jù)包括壓縮加密的數(shù)據(jù)。
[0007]另一方面,一種系統(tǒng)可以包括一個(gè)或者多個(gè)被編程為執(zhí)行操作的數(shù)據(jù)處理裝置。操作包括從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)數(shù)據(jù)的第一請(qǐng)求。操作還包括基于第一請(qǐng)求來(lái)獲得數(shù)據(jù)和被授權(quán)訪問(wèn)數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表。操作還包括獲得具有數(shù)據(jù)密鑰標(biāo)識(shí)符的數(shù)據(jù)密鑰。操作還包括使用卷包密鑰對(duì)數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob。操作還包括使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)。操作還包括在日志結(jié)構(gòu)化卷中存儲(chǔ)卷包的blob和加密的數(shù)據(jù)。操作還包括向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供數(shù)據(jù)密鑰標(biāo)識(shí)符。操作還包括從第二虛擬機(jī)接收對(duì)于獲得數(shù)據(jù)的快照的第二請(qǐng)求。操作還包括基于第二請(qǐng)求獲得包含數(shù)據(jù)密鑰和訪問(wèn)控制列表的未卷包的blob。操作還包括從未卷包的blob獲得數(shù)據(jù)密鑰和訪問(wèn)控制列表。操作還包括認(rèn)證與第二請(qǐng)求關(guān)聯(lián)的用戶(hù)并且按照訪問(wèn)控制列表向用戶(hù)授權(quán)。操作還包括在確定用戶(hù)被認(rèn)證和授權(quán)時(shí)使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。操作還包括向第二虛擬機(jī)提供數(shù)據(jù)的快照。
[0008]實(shí)現(xiàn)方式可以包括以下特征中的一個(gè)或者多個(gè)特征。操作還包括:確定與數(shù)據(jù)在日志結(jié)構(gòu)化卷上的存儲(chǔ)關(guān)聯(lián)的閾值條件是否已經(jīng)出現(xiàn)。操作還包括:獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密、使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob、使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)、在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)、向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符并且防止數(shù)據(jù)密鑰的后續(xù)使用。閾值條件包括數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量。數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量是累計(jì)數(shù)量。數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量是當(dāng)前數(shù)量。閾值條件包括數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間。操作還包括審核對(duì)數(shù)據(jù)的訪問(wèn)并且確定數(shù)據(jù)已經(jīng)被不在訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且數(shù)據(jù)密鑰已經(jīng)被破解。操作還包括獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密、使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob、使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)、在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)、向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符并且防止數(shù)據(jù)密鑰的后續(xù)使用。存儲(chǔ)加密的數(shù)據(jù)包括壓縮加密的數(shù)據(jù)。
[0009]另一方面,一種存儲(chǔ)介質(zhì)具有在其上存儲(chǔ)的指令,指令在被執(zhí)行時(shí)使數(shù)據(jù)處理裝置執(zhí)行操作。操作包括從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)數(shù)據(jù)的第一請(qǐng)求并且基于第一請(qǐng)求來(lái)獲得數(shù)據(jù)和被授權(quán)訪問(wèn)數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表。操作還包括獲得具有數(shù)據(jù)密鑰標(biāo)識(shí)符的數(shù)據(jù)密鑰。操作還包括使用卷包密鑰對(duì)數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob。操作還包括使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)。操作還包括在日志結(jié)構(gòu)化卷中存儲(chǔ)卷包的blob和加密的數(shù)據(jù)。操作還包括向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供數(shù)據(jù)密鑰標(biāo)識(shí)符。操作還包括從第二虛擬機(jī)接收對(duì)于獲得數(shù)據(jù)的快照的第二請(qǐng)求并且基于第二請(qǐng)求獲得包含數(shù)據(jù)密鑰和訪問(wèn)控制列表的未卷包的blob。操作還包括從未卷包的blob獲得數(shù)據(jù)密鑰和訪問(wèn)控制列表。操作還包括認(rèn)證與第二請(qǐng)求關(guān)聯(lián)的用戶(hù)并且按照訪問(wèn)控制列表向用戶(hù)授權(quán)并且在確定用戶(hù)被認(rèn)證和授權(quán)時(shí)使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。操作還包括向第二虛擬機(jī)提供數(shù)據(jù)的快照。
[0010]實(shí)現(xiàn)方式可以包括以下特征中的一個(gè)或者多個(gè)特征。操作還包括:確定與數(shù)據(jù)在日志結(jié)構(gòu)化卷上的存儲(chǔ)關(guān)聯(lián)的閾值條件是否已經(jīng)出現(xiàn)。操作還包括獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密、使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob、使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)、在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)、向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符并且防止數(shù)據(jù)密鑰的后續(xù)使用。閾值條件包括數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量。數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量是累計(jì)數(shù)量。數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量是當(dāng)前數(shù)量。閾值條件包括數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間。操作還包括審核對(duì)數(shù)據(jù)的訪問(wèn)并且確定數(shù)據(jù)已經(jīng)被不在訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且數(shù)據(jù)密鑰已經(jīng)被破解。操作還包括獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰、使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密、使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob、使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)、在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)、向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符并且防止數(shù)據(jù)密鑰的后續(xù)使用。存儲(chǔ)加密的數(shù)據(jù)包括壓縮加密的數(shù)據(jù)。
[0011]可以實(shí)施在本文中描述的主題內(nèi)容的具體實(shí)施例以便實(shí)現(xiàn)以下優(yōu)點(diǎn)中的一個(gè)或者多個(gè)優(yōu)點(diǎn)。在一些實(shí)現(xiàn)方式中,基本卷密鑰可以用來(lái)在基本卷的基礎(chǔ)上對(duì)持久數(shù)據(jù)進(jìn)行加密。與持久數(shù)據(jù)關(guān)聯(lián)的每個(gè)快照集合在一些實(shí)現(xiàn)方式中可以具有與它關(guān)聯(lián)的快照組密鑰。這些類(lèi)型的密鑰一包括用來(lái)訪問(wèn)在持久盤(pán)中的內(nèi)容的基本卷密鑰和快照組密鑰(例如對(duì)稱(chēng)密鑰)一可以稱(chēng)為持久盤(pán)密鑰或者這里稱(chēng)為數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,可以基于兩個(gè)認(rèn)證來(lái)預(yù)測(cè)對(duì)任何數(shù)據(jù)密鑰的訪問(wèn):用于云群集訪問(wèn)的第一認(rèn)證和用于用戶(hù)級(jí)訪問(wèn)、例如用于在與數(shù)據(jù)和數(shù)據(jù)密鑰關(guān)聯(lián)的訪問(wèn)控制列表(ACL)中標(biāo)識(shí)的用戶(hù)或者主體的第二認(rèn)證。在一些實(shí)現(xiàn)方式中,這些認(rèn)證特征可以對(duì)于所有盤(pán)默認(rèn)生效,并且特征不能例如被可能?chē)L試對(duì)數(shù)據(jù)的未授權(quán)或者未審核的訪問(wèn)的用戶(hù)停用。
[0012]在一些實(shí)現(xiàn)方式中,可以使用單個(gè)隨機(jī)生成的密鑰來(lái)保護(hù)短暫數(shù)據(jù)(例如未被確保在重新啟動(dòng)期間保留的數(shù)據(jù)),該密鑰用來(lái)保護(hù)在用于任何給定的VM主機(jī)的所有塊設(shè)備上的數(shù)據(jù)。例如數(shù)據(jù)密鑰可能是用于在保存和恢復(fù)操作期間存儲(chǔ)的VM狀態(tài)的短暫數(shù)據(jù)所需要的。密鑰可以?xún)H存在于存儲(chǔ)器中并且可能未被寫(xiě)入到盤(pán)(例如在交換期間)。在一些實(shí)現(xiàn)方式中,內(nèi)核級(jí)過(guò)程可以抹去包含密鑰材料的存儲(chǔ)器。例如無(wú)論何時(shí)不再使用或者不再需要密鑰(例如在VM過(guò)程關(guān)停時(shí)),內(nèi)核級(jí)過(guò)程可以抹去在過(guò)程終止時(shí)間在過(guò)程存儲(chǔ)器中的任何密鑰信息。在一些實(shí)現(xiàn)方式中,這些特征可以默認(rèn)有效而不能被停用。
[0013]在一些實(shí)現(xiàn)方式中,加密可以對(duì)于在VM保存狀態(tài)操作期間向盤(pán)寫(xiě)入的存儲(chǔ)器內(nèi)容而出現(xiàn)。例如用來(lái)保護(hù)向盤(pán)寫(xiě)入的加密的數(shù)據(jù)的任何密鑰材料可以被密鑰管理系統(tǒng)(例如密鑰存儲(chǔ)部件)卷包。密鑰管理系統(tǒng)還可以在執(zhí)行涉及到存儲(chǔ)VM狀態(tài)信息的操作時(shí)管理密鑰卷包和去卷包操作。
[0014]在一些實(shí)現(xiàn)方式中,可以對(duì)于在日志結(jié)構(gòu)化卷上管理的每個(gè)映像集合生成唯一的數(shù)據(jù)密鑰集。例如每個(gè)密鑰可以利用訪問(wèn)控制列表(ACL)來(lái)卷包,該ACL用于具有對(duì)數(shù)據(jù)的訪問(wèn)的每個(gè)用戶(hù)或者主體,并且可以?xún)H向那些用戶(hù)釋放數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,通過(guò)加密而保護(hù)的數(shù)據(jù)的每個(gè)快照可以包括包含元數(shù)據(jù)的塊(例如第一個(gè)塊),元數(shù)據(jù)包括卷包的數(shù)據(jù)密鑰卷包器和關(guān)聯(lián)的ACL。一些實(shí)現(xiàn)方式還可以運(yùn)用“主控密鑰”,云群集授權(quán)服務(wù)的過(guò)程使用該主控密鑰以訪問(wèn)加密的數(shù)據(jù)。
[0015]在一些實(shí)現(xiàn)方式中,密鑰管理系統(tǒng)可以處置密鑰共享。例如單個(gè)數(shù)據(jù)密鑰可以被與用ACL標(biāo)識(shí)為具有對(duì)受保護(hù)的數(shù)據(jù)的訪問(wèn)的若干用戶(hù)關(guān)聯(lián)的VM并行使用。在一些實(shí)現(xiàn)方式中,密鑰管理系統(tǒng)可以執(zhí)行其它操作、比如密鑰旋轉(zhuǎn)、引退和測(cè)繪,以下參照?qǐng)D5A-5C描述用于這些操作的過(guò)程。
[0016]在附圖和以下描述中闡述在本說(shuō)明書(shū)中描述的主題內(nèi)容的一個(gè)或者多個(gè)實(shí)施例的細(xì)節(jié)。主題內(nèi)容的其它特征、方面和優(yōu)點(diǎn)將從說(shuō)明書(shū)、附圖和權(quán)利要求中變得清楚。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0017]圖1示出包括多個(gè)虛擬機(jī)實(shí)例的分布式系統(tǒng)的示例。
[0018]圖2A圖示用于由虛擬機(jī)創(chuàng)建和和訪問(wèn)的數(shù)據(jù)的數(shù)據(jù)加密的示例操作序列。
[0019]圖2B、2C和3是圖示在加密/解密期間用于密鑰管理技術(shù)的示例操作序列的圖。
[0020]圖4是示出用于分組去封裝的技術(shù)的示例的流程圖。
[0021]圖5A是示出用于在虛擬機(jī)上使用的數(shù)據(jù)密鑰的示例密鑰旋轉(zhuǎn)過(guò)程的流程圖。
[0022]圖5B是示出用于在虛擬機(jī)上使用的數(shù)據(jù)密鑰的示例密鑰引退過(guò)程的流程圖。
[0023]圖5C是示出用于在虛擬機(jī)上使用的數(shù)據(jù)密鑰的密鑰撤回過(guò)程的示例的流程圖。
[0024]圖6示出用于被配置為運(yùn)行虛擬機(jī)的分布式系統(tǒng)的聯(lián)網(wǎng)架構(gòu)的示例。
[0025]在各個(gè)附圖中,相似的標(biāo)號(hào)和標(biāo)示指示相似的要素。
【具體實(shí)施方式】
[0026]本文描述用于對(duì)在虛擬機(jī)(VM)中、例如在其中多個(gè)VM存在的“基于云”或者“云群集”計(jì)算中使用的數(shù)據(jù)進(jìn)行加密的系統(tǒng)、方法和裝置。例如這里描述的加密技術(shù)可以用于對(duì)持久數(shù)據(jù)(例如在云中存儲(chǔ)的數(shù)據(jù))、短暫數(shù)據(jù)(例如在VM中使用的持久數(shù)據(jù)的快照)和在從存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)進(jìn)行加密。例如持久存儲(chǔ)裝置可以包括超出VM的壽命持續(xù)的存儲(chǔ)裝置,而短暫存儲(chǔ)裝置可以包括在VM終止時(shí)消失的存儲(chǔ)裝置。在一些實(shí)施例中,這里描述的加密技術(shù)可以用于日志結(jié)構(gòu)化卷(LSV)文件系統(tǒng),這些LSV文件系統(tǒng)是被設(shè)計(jì)用于高寫(xiě)入吞吐量的文件系統(tǒng),并且在這些LSV文件系統(tǒng)中,對(duì)數(shù)據(jù)和元數(shù)據(jù)的更新被依次寫(xiě)入到連續(xù)流(例如“日志”)。
[0027]在一些實(shí)現(xiàn)方式中,可以取代LSV系統(tǒng)或者除了 LSV系統(tǒng)之外還使用其它存儲(chǔ)系統(tǒng)。例如可以使用將后端存儲(chǔ)系統(tǒng)視為黑盒子的存儲(chǔ)系統(tǒng)。其它存儲(chǔ)系統(tǒng)是可能的。
[0028]在更多實(shí)現(xiàn)方式中,可以從除了虛擬機(jī)之外的源接收請(qǐng)求。例如實(shí)現(xiàn)方式可以在用戶(hù)應(yīng)用與密鑰/數(shù)據(jù)管理系統(tǒng)、例如其中存儲(chǔ)裝置經(jīng)由網(wǎng)絡(luò)、例如使用因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)協(xié)議或者其它手段、比如傳統(tǒng)存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)附著到客戶(hù)端的系統(tǒng)之間提供安全屏障。在這一示例中,客戶(hù)端和服務(wù)器部件可以被網(wǎng)絡(luò)屏障分離,但是無(wú)需使用虛擬機(jī)。
[0029]圖1示出包括多個(gè)虛擬機(jī)實(shí)例的分布式系統(tǒng)101的示例。分布式系統(tǒng)101可以在主機(jī)機(jī)器102、104上運(yùn)行虛擬機(jī)(VM) 110、112、114。分布式系統(tǒng)101的單元可以駐留在相同或者不同物理位置。例如,第一主機(jī)機(jī)器102可以駐留在第一數(shù)據(jù)中心中,而第二主機(jī)機(jī)器104可以駐留在第二數(shù)據(jù)中心中。在一些實(shí)現(xiàn)方式中,這些數(shù)據(jù)中心可以位于不同州、國(guó)家或者二者中。
[0030]在一些實(shí)現(xiàn)方式中,分布式系統(tǒng)101可以向虛擬機(jī)110、112、114提供虛擬網(wǎng)絡(luò)用于基于網(wǎng)際協(xié)議(IP)的通信。VM 110、112、114被指派在虛擬網(wǎng)絡(luò)上可路由的網(wǎng)絡(luò)地址(例如IPv4地址或者IPv6地址)。在一些實(shí)現(xiàn)方式中,虛擬網(wǎng)絡(luò)包括專(zhuān)用子網(wǎng)(例如192.168.0.0/16、10.0.0.0/8)。
[0031]在分布式系統(tǒng)101中包括的主機(jī)機(jī)器102、104可以包含一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、比如架裝服務(wù)器或者其它計(jì)算設(shè)備。主機(jī)機(jī)器102、104可以具有不同能力和計(jì)算機(jī)架構(gòu),并且可以位于相同或者不同地理位置中。主機(jī)機(jī)器102、104可以通過(guò)網(wǎng)絡(luò)、比如專(zhuān)用網(wǎng)絡(luò)116 (例如專(zhuān)用或者租賃光纖或者銅線)相互通信。主機(jī)機(jī)器102、104也可以通過(guò)一個(gè)或者多個(gè)網(wǎng)關(guān)120與在外部網(wǎng)絡(luò)、比如因特網(wǎng)122上的設(shè)備通信,該一個(gè)或者多個(gè)網(wǎng)關(guān)是負(fù)責(zé)路由在專(zhuān)用網(wǎng)絡(luò)116與因特網(wǎng)122之間的數(shù)據(jù)通信流量的數(shù)據(jù)處理裝置。其它類(lèi)型的外部網(wǎng)絡(luò)是可能的。
[0032]專(zhuān)用網(wǎng)絡(luò)116可以例如包括一個(gè)或者多個(gè)有線(例如因特網(wǎng))或者無(wú)線(例如W1-FI)網(wǎng)絡(luò)。在一些實(shí)現(xiàn)方式中,專(zhuān)用網(wǎng)絡(luò)116包括連接兩個(gè)數(shù)據(jù)中心的物理通信資產(chǎn)、t匕如光纖或者銅線。在一些實(shí)現(xiàn)方式中,在外部網(wǎng)絡(luò)、比如因特網(wǎng)122之上實(shí)施專(zhuān)用網(wǎng)絡(luò)116。在一些實(shí)現(xiàn)方式中,數(shù)據(jù)中心具有聚合在一起以形成專(zhuān)用網(wǎng)絡(luò)116的相應(yīng)的局域網(wǎng)(LAN)。可以例如通過(guò)使用多協(xié)議標(biāo)簽切換(MPLS)來(lái)路由在數(shù)據(jù)中心之間的IP流量。其它類(lèi)型的路由是可能的。
[0033]每個(gè)主機(jī)機(jī)器102、104執(zhí)行主機(jī)操作系統(tǒng)(例如主機(jī)操作系統(tǒng)106和109)。每個(gè)主機(jī)操作系統(tǒng)106、108管理主機(jī)機(jī)器資源。在這一不例中,主機(jī)操作系統(tǒng)106、108運(yùn)行如下軟件,該軟件虛擬化下層主機(jī)機(jī)器硬件并且管理一個(gè)或者多個(gè)VM的并行執(zhí)行。例如,主機(jī)操作系統(tǒng)106管理兩個(gè)VM (VM 110和VM 112),而不同的主機(jī)操作系統(tǒng)108管理單個(gè)VM114。主機(jī)機(jī)器通??梢怨芾砀髷?shù)量的虛擬機(jī)。然而可以基于主機(jī)機(jī)器的物理資源限制該數(shù)量。
[0034]VM 110、112、114使用下層主機(jī)機(jī)器硬件的可以稱(chēng)為虛擬硬件(例如虛擬硬件110a、112a和114a)的仿真版本。虛擬硬件執(zhí)行的軟件可以稱(chēng)為客戶(hù)軟件。在一些實(shí)現(xiàn)方式中,客戶(hù)軟件不能確定他是否正在被虛擬硬件或者物理主機(jī)機(jī)器執(zhí)行。如果在VM中執(zhí)行的客戶(hù)軟件或者VM本身出故障或者放棄,則不會(huì)影響在主機(jī)機(jī)器上執(zhí)行的其它VM。主機(jī)機(jī)器的微處理器可以包括用于使虛擬硬件能夠通過(guò)允許客戶(hù)軟件指令在主機(jī)機(jī)器的微處理器上被直接執(zhí)行而無(wú)需代碼重新編寫(xiě)、重新編譯或者指令模擬來(lái)高效地執(zhí)行軟件應(yīng)用的處理器級(jí)機(jī)制。
[0035]每個(gè)VM (例如VM 110、112和114)從下層主機(jī)操作系統(tǒng)的虛擬存儲(chǔ)器被分配虛擬存儲(chǔ)器頁(yè)面集合并且從一個(gè)或者多個(gè)虛擬盤(pán)驅(qū)動(dòng)被分配虛擬盤(pán)塊用于由在VM上執(zhí)行的客戶(hù)軟件使用。例如主機(jī)操作系統(tǒng)106向VM 110和VM 112分配存儲(chǔ)器頁(yè)面和盤(pán)塊,并且主機(jī)操作系統(tǒng)108為VM 114同樣如此。在一些實(shí)現(xiàn)方式中,給定的VM不能訪問(wèn)向其它VM指派的虛擬存儲(chǔ)器頁(yè)面。例如VM 110不能訪問(wèn)已經(jīng)向VM 112指派的存儲(chǔ)器頁(yè)面。虛擬盤(pán)驅(qū)動(dòng)可以是跨越VM重啟而持續(xù)的。在一些實(shí)現(xiàn)方式中,在耦合到主機(jī)機(jī)器的物理盤(pán)驅(qū)動(dòng)上分配虛擬盤(pán)塊。VM可以被分配網(wǎng)絡(luò)地址,它們的相應(yīng)過(guò)程可以通過(guò)這些網(wǎng)絡(luò)地址經(jīng)由虛擬網(wǎng)絡(luò)與其它過(guò)程通信。例如在VM 110上執(zhí)行的客戶(hù)軟件可以使用分配的網(wǎng)絡(luò)地址經(jīng)由虛擬網(wǎng)絡(luò)與在VM112或者VM 114上執(zhí)行的客戶(hù)軟件通信。
[0036]VM的客戶(hù)軟件可以包括客戶(hù)操作系統(tǒng)(例如客戶(hù)操作系統(tǒng)110b、112b和114b),該客戶(hù)操作系統(tǒng)是如下軟件,該軟件控制相應(yīng)客戶(hù)軟件應(yīng)用(例如客戶(hù)應(yīng)用110c、112c和114c)在VM內(nèi)的執(zhí)行并且向那些應(yīng)用提供服務(wù)。例如客戶(hù)操作系統(tǒng)可以是操作系統(tǒng)、比如UNIX操作系統(tǒng)的變體。其它操作系統(tǒng)是可能的。每個(gè)VM可以執(zhí)行相同客戶(hù)操作系統(tǒng)或者不同客戶(hù)操作系統(tǒng)。引導(dǎo)VM可以包括使用虛擬引導(dǎo)盤(pán)以將與客戶(hù)操作系統(tǒng)關(guān)聯(lián)的內(nèi)核映像加載到存儲(chǔ)器中??蛻?hù)操作系統(tǒng)對(duì)資源、比如網(wǎng)絡(luò)和虛擬盤(pán)存儲(chǔ)裝置的訪問(wèn)由下層主機(jī)操作系統(tǒng)控制。
[0037]舉例而言并且參照虛擬機(jī)110,在客戶(hù)應(yīng)用I1c或者客戶(hù)操作系統(tǒng)I1b例如嘗試對(duì)虛擬盤(pán)執(zhí)行輸入/輸出操作、發(fā)起網(wǎng)絡(luò)通信或者執(zhí)行權(quán)限操作時(shí),虛擬硬件IlOa被中斷,從而主機(jī)操作系統(tǒng)106可以代表虛擬機(jī)110執(zhí)行動(dòng)作。主機(jī)操作系統(tǒng)106可以用在內(nèi)核過(guò)程空間106b、用戶(hù)過(guò)程空間106a或者二者中執(zhí)行的過(guò)程來(lái)執(zhí)行這些動(dòng)作。
[0038]內(nèi)核過(guò)程空間106b是為主機(jī)操作系統(tǒng)106的內(nèi)核106d保留的虛擬存儲(chǔ)器,該內(nèi)核例如可以包括內(nèi)核擴(kuò)展和設(shè)備驅(qū)動(dòng)。內(nèi)核過(guò)程空間具有提高的權(quán)限(有時(shí)稱(chēng)為“管理程序模式”);也就是說(shuō),內(nèi)核106d可以執(zhí)行某些權(quán)限操作,這些權(quán)限禁止在用戶(hù)過(guò)程空間106a中運(yùn)行的過(guò)程。權(quán)限操作的示例包括對(duì)不同地址空間的訪問(wèn)、對(duì)在主機(jī)機(jī)器中的特殊功能處理器單元、比如存儲(chǔ)器管理單元的訪問(wèn)等。用戶(hù)過(guò)程空間106a是為用戶(hù)模式過(guò)程而保留的分離虛擬存儲(chǔ)器部分。用戶(hù)模式過(guò)程不能直接自動(dòng)權(quán)限操作。
[0039]在各種實(shí)現(xiàn)方式中,在通信過(guò)程(例如通信過(guò)程106c)中實(shí)施VM網(wǎng)絡(luò)通信功能部分。在一些實(shí)現(xiàn)方式中,通信過(guò)程在主機(jī)操作系統(tǒng)(例如主機(jī)操作系統(tǒng)106)的用戶(hù)過(guò)程空間(例如用戶(hù)過(guò)程空間106a)中執(zhí)行。在其它實(shí)現(xiàn)方式中,通信過(guò)程可以在主機(jī)操作系統(tǒng)的內(nèi)核過(guò)程空間(例如內(nèi)核過(guò)程空間106d)中執(zhí)行??梢杂杏糜谠谥鳈C(jī)機(jī)器上執(zhí)行的所有VM的單個(gè)通信過(guò)程,或者可以有多個(gè)通信過(guò)程,一個(gè)通信過(guò)程用于在主機(jī)機(jī)器上執(zhí)行的每個(gè)VM。在進(jìn)而更多實(shí)現(xiàn)方式中,通信過(guò)程的某個(gè)部分在用戶(hù)過(guò)程空間中執(zhí)行,而另一部分在內(nèi)核過(guò)程空間中執(zhí)行。在一些實(shí)現(xiàn)方式中,通信過(guò)程可以使用硬件級(jí)封裝機(jī)制。
[0040]通信過(guò)程106c、108c可以與VM注冊(cè)服務(wù)118通信以在兩個(gè)VM之間建立虛擬網(wǎng)絡(luò)對(duì)(VNP)。在虛擬網(wǎng)絡(luò)中,VNP可以用來(lái)使用一個(gè)或者多個(gè)虛擬連接或者鏈路路由在兩個(gè)端點(diǎn)之間的流量??梢越?jīng)由本地回路(例如如果兩個(gè)VM在相同主機(jī)機(jī)器上)輸送或者經(jīng)由一個(gè)或者多個(gè)網(wǎng)絡(luò)、比如專(zhuān)用網(wǎng)絡(luò)116、因特網(wǎng)122或者其組合輸送與VNP關(guān)聯(lián)的網(wǎng)絡(luò)流量。例如在虛擬機(jī)110與虛擬機(jī)114之間的VNP可以用來(lái)通過(guò)專(zhuān)用網(wǎng)絡(luò)116來(lái)路由在第一和第二通信過(guò)程106c、108c分別管理的VNP端點(diǎn)之間發(fā)送的分組。在一些實(shí)現(xiàn)方式中,服務(wù)器、比如VM注冊(cè)服務(wù)器實(shí)施VM注冊(cè)服務(wù)的功能。VM注冊(cè)服務(wù)118可以管理向VM指派網(wǎng)絡(luò)地址(例如IP地址)并且維持在虛擬網(wǎng)絡(luò)上的VM網(wǎng)絡(luò)地址與運(yùn)行VM的主機(jī)機(jī)器的相應(yīng)網(wǎng)絡(luò)地址之間的映射。
[0041]圖2A圖示在系統(tǒng)200中用于VM創(chuàng)建和訪問(wèn)的數(shù)據(jù)的數(shù)據(jù)加密的操作的示例序列。在一些實(shí)現(xiàn)方式中,系統(tǒng)200包括多個(gè)VM、例如VM A 202和VM B 204以及提供對(duì)數(shù)據(jù)的訪問(wèn)的服務(wù)器系統(tǒng)206。在一些實(shí)現(xiàn)方式中,服務(wù)器系統(tǒng)206被配置為運(yùn)行在虛擬網(wǎng)絡(luò)上通信的VM。例如VM被指派在虛擬網(wǎng)絡(luò)上的網(wǎng)絡(luò)地址。在一些實(shí)現(xiàn)方式中,服務(wù)器系統(tǒng)206使用分離隧道以實(shí)現(xiàn)在虛擬網(wǎng)絡(luò)上向相應(yīng)虛擬機(jī)遞送分組。在一些實(shí)現(xiàn)方式中,環(huán)境200包括密鑰管理系統(tǒng)208,該密鑰管理系統(tǒng)指派在加密/解密中使用的密鑰(例如使用隨機(jī)密鑰生成技術(shù))、關(guān)聯(lián)數(shù)據(jù)密鑰標(biāo)識(shí)符與密鑰并且在卷包器中卷包密鑰。如這里所用術(shù)語(yǔ)“卷包”和“卷包的”涵蓋它們的字面和普通含義、包括但不限于對(duì)密鑰進(jìn)行加密的動(dòng)作。另外,在對(duì)除了僅密鑰之外進(jìn)行加密時(shí),該整個(gè)結(jié)構(gòu)常稱(chēng)為“卷包的blob”??梢酝ㄟ^(guò)關(guān)聯(lián)元數(shù)據(jù)來(lái)“卷包”加密的用戶(hù)數(shù)據(jù),該元數(shù)據(jù)包含用于對(duì)具體數(shù)據(jù)塊進(jìn)行加密的加密細(xì)節(jié)(例如加密算法、加密密鑰索引、認(rèn)證標(biāo)簽等)。為了清楚而不失一般性,術(shù)語(yǔ)“數(shù)據(jù)卷包器”還將用來(lái)標(biāo)示可以或者可以未一起存儲(chǔ)的加密的數(shù)據(jù)和加密元數(shù)據(jù)的這樣的組合。
[0042]在一些實(shí)現(xiàn)方式中,用于虛擬機(jī)的虛擬機(jī)管理器可以使用庫(kù)以與例如在主機(jī)的第三個(gè)環(huán)(或者無(wú)權(quán)限應(yīng)用域)中執(zhí)行的LSV子系統(tǒng)交互。例如代碼可以動(dòng)作以提供服務(wù)器系統(tǒng)206的作用。
[0043]一般而言,數(shù)據(jù)密鑰標(biāo)識(shí)符唯一地標(biāo)識(shí)密鑰。可以用各種方式生成數(shù)據(jù)密鑰標(biāo)識(shí)符。在一些實(shí)現(xiàn)方式中,密鑰管理系統(tǒng)208的方法可以使用密鑰材料的哈希和基于密鑰類(lèi)型來(lái)生成密鑰標(biāo)識(shí)符。在一些實(shí)現(xiàn)方式中,可以使用其它生成密鑰標(biāo)識(shí)符的方式。
[0044]在一些實(shí)現(xiàn)方式中,服務(wù)器系統(tǒng)206從第一 VM(例如VM A 202)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)數(shù)據(jù)的第一請(qǐng)求210?;谠撜?qǐng)求,服務(wù)器系統(tǒng)206生成212數(shù)據(jù)密鑰并且請(qǐng)求213按照被授權(quán)訪問(wèn)數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表(ACL)來(lái)卷包數(shù)據(jù)密鑰。例如可以由用戶(hù)授權(quán)系統(tǒng)(例如單個(gè)簽約系統(tǒng))提供ACL。在一些實(shí)現(xiàn)方式中,密鑰管理系統(tǒng)208向服務(wù)器系統(tǒng)206提供214包括卷包的密鑰的卷包的blob。服務(wù)器系統(tǒng)206使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)216進(jìn)行加密并且在日志結(jié)構(gòu)化卷中存儲(chǔ)加密的數(shù)據(jù)和卷包的blob。服務(wù)器系統(tǒng)206向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)、例如與VM A 202和VM B 204關(guān)聯(lián)的用戶(hù)提供218數(shù)據(jù)密鑰標(biāo)識(shí)符。
[0045]服務(wù)器系統(tǒng)206從第二虛擬機(jī)(例如VM B 204)接收對(duì)于獲得數(shù)據(jù)的快照的第二請(qǐng)求220。基于第二請(qǐng)求,服務(wù)器系統(tǒng)206將卷包的blob與證書(shū)一起發(fā)送221給密鑰管理系統(tǒng)208。密鑰管理系統(tǒng)208使用它的卷包密鑰、例如主控密鑰對(duì)blob進(jìn)行解密、取回密鑰及其關(guān)聯(lián)ACL并且向服務(wù)器系統(tǒng)206提供222未卷包的blob。如果證書(shū)按照在關(guān)聯(lián)ACL中的用于請(qǐng)求的密鑰的標(biāo)識(shí)來(lái)認(rèn)證224,則密鑰管理系統(tǒng)208向服務(wù)器系統(tǒng)206返回該密鑰226,該服務(wù)器系統(tǒng)使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)228進(jìn)行解密并且向第二虛擬機(jī)(例如VM B 204)提供數(shù)據(jù)的快照230。
[0046]圖2B、2C和3是圖示分別用于在加密/解密期間的密鑰管理技術(shù)的示例操作序列240a-240c的圖??梢酝ㄟ^(guò)例如使用用來(lái)直接保護(hù)盤(pán)和VM保存狀態(tài)內(nèi)容的對(duì)稱(chēng)密鑰來(lái)使用這些技術(shù)。在一些實(shí)現(xiàn)方式中,可以使用密鑰管理系統(tǒng)的卷包和去卷包函數(shù)、例如使用由密鑰存儲(chǔ)庫(kù)生成并且在密鑰存儲(chǔ)庫(kù)中維持的數(shù)據(jù)密鑰來(lái)管理數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,數(shù)據(jù)密鑰被密鑰材料的使用基于密鑰類(lèi)型的方法而生成的哈希引用。
[0047]可以例如在包括用戶(hù)242、應(yīng)用編程接口(API) 244和被用戶(hù)242用來(lái)例如使用API 244來(lái)簽約到VM上的用戶(hù)授權(quán)246的環(huán)境中執(zhí)行操作240a。在一些實(shí)現(xiàn)方式中,密鑰生成器248生成和卷包在密鑰存儲(chǔ)庫(kù)250中存儲(chǔ)的數(shù)據(jù)密鑰。
[0048]參照?qǐng)D2B中所示序列240a,在用戶(hù)242創(chuàng)建數(shù)據(jù)(例如持久數(shù)據(jù))時(shí),API 244例如從遠(yuǎn)程設(shè)備接收訪問(wèn)令牌258??梢岳缬脕?lái)自VM的用于在日志結(jié)構(gòu)化卷中存儲(chǔ)數(shù)據(jù)的請(qǐng)求來(lái)包括數(shù)據(jù)。向用戶(hù)授權(quán)246轉(zhuǎn)發(fā)訪問(wèn)令牌258,該用戶(hù)授權(quán)生成向API 244傳遞回的用戶(hù)證書(shū)260。用戶(hù)證書(shū)例如包括標(biāo)識(shí)被授權(quán)訪問(wèn)數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表(ACL)。密鑰生成器248接收用戶(hù)證書(shū)260并且生成用來(lái)在數(shù)據(jù)存儲(chǔ)于日志結(jié)構(gòu)化卷中之前對(duì)數(shù)據(jù)進(jìn)行加密的用戶(hù)密鑰262。密鑰262然后被卷包以產(chǎn)生卷包的密鑰264。產(chǎn)生密鑰資源266,該密鑰資源包括數(shù)據(jù)密鑰標(biāo)識(shí)符和數(shù)據(jù)密鑰卷包器(例如卷包的密鑰264)。數(shù)據(jù)密鑰卷包器包含用數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的數(shù)據(jù)密鑰。數(shù)據(jù)密鑰卷包器還包含標(biāo)識(shí)被授權(quán)訪問(wèn)數(shù)據(jù)的用戶(hù)的ACL。
[0049]參照?qǐng)D2C,序列240包括利用用于訪問(wèn)在云內(nèi)的受保護(hù)的數(shù)據(jù)的用戶(hù)密鑰進(jìn)行去卷包。例如在創(chuàng)建VM(例如由相同或者不同用戶(hù))時(shí),API 244例如從遠(yuǎn)程設(shè)備接收訪問(wèn)令牌270。在這一示例中,訪問(wèn)令牌270與用戶(hù)242對(duì)于訪問(wèn)數(shù)據(jù)的快照的請(qǐng)求關(guān)聯(lián)。數(shù)據(jù)令牌270被轉(zhuǎn)發(fā)到提供用戶(hù)證書(shū)272的用戶(hù)授權(quán)246。用戶(hù)證書(shū)272和密鑰資源266 (包括卷包的密鑰264)被傳遞到密鑰生成器248。在驗(yàn)證用戶(hù)被授權(quán)訪問(wèn)數(shù)據(jù)時(shí),卷包的密鑰264被去卷包(例如在密鑰存儲(chǔ)庫(kù)250)從而產(chǎn)生用戶(hù)密鑰262?;谠频淖C書(shū)268和基于云的密鑰274被提供給創(chuàng)建卷包的密鑰276的密鑰存儲(chǔ)庫(kù)250。
[0050]參照?qǐng)D3,序列240c包括使用基于云的卷包的密鑰272以獲得對(duì)在云中的受保護(hù)的數(shù)據(jù)的訪問(wèn)。例如卷包的密鑰272和基于云的證書(shū)268被提供給調(diào)解器252。如果請(qǐng)求訪問(wèn)受保護(hù)的數(shù)據(jù)的用戶(hù)242被授權(quán)訪問(wèn)數(shù)據(jù),則卷包的密鑰276被去卷包(例如由密鑰存儲(chǔ)庫(kù)250)以提供去卷包的密鑰274。在一些實(shí)現(xiàn)方式中,密鑰使用過(guò)程278使用去卷包的密鑰274以對(duì)數(shù)據(jù)進(jìn)行解密用于在VM上由用戶(hù)242訪問(wèn)。
[0051]在一些實(shí)現(xiàn)方式中,調(diào)解器252包括如下過(guò)程,這些過(guò)程維護(hù)與用戶(hù)對(duì)在VM上的數(shù)據(jù)的訪問(wèn)對(duì)應(yīng)的長(zhǎng)壽命授權(quán)訪問(wèn)令牌。調(diào)解器252可以根據(jù)需要請(qǐng)求訪問(wèn)令牌以對(duì)密鑰進(jìn)行去卷包。例如調(diào)解器252可以使用它的授權(quán)服務(wù)作用證書(shū)以讓密鑰存儲(chǔ)庫(kù)250對(duì)按照云群集作用而被卷包的數(shù)據(jù)密鑰進(jìn)行去卷包。
[0052]在一些實(shí)現(xiàn)方式中,密鑰存儲(chǔ)庫(kù)250使用授權(quán)服務(wù)證書(shū)以獲得對(duì)主控密鑰的訪問(wèn)。例如主控密鑰可以用來(lái)對(duì)卷包的密鑰進(jìn)行解密以局部地揭示與密鑰關(guān)聯(lián)的ACL。密鑰存儲(chǔ)庫(kù)250然后可以驗(yàn)證與訪問(wèn)令牌(例如訪問(wèn)令牌270)對(duì)應(yīng)的標(biāo)識(shí)在ACL中具有條目以允許訪問(wèn)它的對(duì)應(yīng)密鑰。這時(shí),密鑰存儲(chǔ)庫(kù)250可以向復(fù)制器過(guò)程返回密鑰,只要VM活躍,該復(fù)制器過(guò)程將關(guān)聯(lián)密鑰與存儲(chǔ)設(shè)備。復(fù)制器可以繼續(xù)使用與在訪問(wèn)持久盤(pán)的過(guò)程中用于訪問(wèn)新的密鑰所需要的訪問(wèn)令牌相同的訪問(wèn)令牌。在訪問(wèn)令牌到期時(shí),復(fù)制器可以請(qǐng)求新的訪問(wèn)令牌。一旦不再需要密鑰或者令牌,保持密鑰或者令牌的任何過(guò)程然后可以卷包該包含存儲(chǔ)器。
[0053]在一些實(shí)現(xiàn)方式中,日志結(jié)構(gòu)化卷(LSV)確定是否在讀取時(shí)對(duì)數(shù)據(jù)進(jìn)行解密(例如如果它是否已經(jīng)被解密)并且總是在寫(xiě)入時(shí)對(duì)數(shù)據(jù)進(jìn)行加密。在一些實(shí)現(xiàn)方式中,LSV在元數(shù)據(jù)塊內(nèi)維持關(guān)于每個(gè)塊的加密狀態(tài)的信息。LSV管理工具還處置ACL或者在快照邊界上的其它密碼性質(zhì)改變。例如在快照密碼性質(zhì)改變時(shí),在新快照中自動(dòng)更新改變。在一些實(shí)現(xiàn)方式中,與任何給定的快照關(guān)聯(lián)的密碼元數(shù)據(jù)駐留在在數(shù)據(jù)塊內(nèi)存儲(chǔ)的快照元數(shù)據(jù)段中。對(duì)于涉及到對(duì)數(shù)據(jù)密鑰的修改(例如用于密鑰旋轉(zhuǎn)、引退等)的快照,密鑰管理工具生成新的卷包的密鑰。在一些實(shí)現(xiàn)方式中,從先前快照設(shè)置的卷包密鑰被復(fù)制到用于當(dāng)前快照的元數(shù)據(jù)。
[0054]一些實(shí)現(xiàn)方式使用未記錄的安全調(diào)用和/或事務(wù)來(lái)傳遞秘密密鑰材料。例如使用安全調(diào)用可以防止秘密密鑰材料在日志、監(jiān)視工具或者與標(biāo)準(zhǔn)調(diào)用和事務(wù)關(guān)聯(lián)的其它資源中出現(xiàn)。另外,對(duì)于關(guān)聯(lián)和維護(hù)密鑰信息(例如密鑰狀態(tài)緩沖器)與盤(pán)的過(guò)程,密鑰信息不包括秘密密鑰材料、但是僅提供關(guān)于密鑰的元數(shù)據(jù)、包括密鑰類(lèi)型和密鑰標(biāo)識(shí)符。
[0055]在一些實(shí)現(xiàn)方式中,在內(nèi)部管理的高速緩存中維護(hù)包括秘密密鑰材料的密鑰狀態(tài)對(duì)象。例如在起動(dòng)新的VM實(shí)例時(shí),首先使用安全調(diào)用在高速緩存中傳遞所有秘密密鑰材料作為VM驗(yàn)證。系統(tǒng)過(guò)程然后向構(gòu)成VM的盤(pán)添加其秘密密鑰材料被擦去的密鑰狀態(tài)對(duì)象。在系統(tǒng)過(guò)程發(fā)送VM規(guī)范作為VM創(chuàng)建的部分時(shí),使用密鑰標(biāo)識(shí)符向VM規(guī)范中注入先前接收的秘密密鑰材料以匹配密鑰材料。
[0056]圖4是示出用于對(duì)用于虛擬機(jī)的數(shù)據(jù)進(jìn)行加密的示例過(guò)程400的流程圖。例如過(guò)程400可以由參照?qǐng)D2A描述的服務(wù)器系統(tǒng)206執(zhí)行。
[0057]在402,從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)數(shù)據(jù)的第一請(qǐng)求。作為示例,服務(wù)器系統(tǒng)206可以從第一VM(例如VM A 202)接收請(qǐng)求210。該請(qǐng)求可以是存儲(chǔ)數(shù)據(jù)、比如用戶(hù)(例如用戶(hù)A)在VM A 202上創(chuàng)建的新創(chuàng)建的數(shù)據(jù)文件(例如記賬電子表格)。
[0058]在404,基于該請(qǐng)求,獲得數(shù)據(jù)和被授權(quán)訪問(wèn)該數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表(ACL)。例如服務(wù)器系統(tǒng)206可以從正在訪問(wèn)VM的用戶(hù)設(shè)備接收待存儲(chǔ)的數(shù)據(jù)(例如記賬電子表格)。同時(shí),服務(wù)器系統(tǒng)206可以接收ACL,該ACL標(biāo)識(shí)被授權(quán)訪問(wèn)數(shù)據(jù)的用戶(hù)(例如用戶(hù)A、B和C)。
[0059]在406,獲得用數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的數(shù)據(jù)密鑰。例如密鑰管理系統(tǒng)208可以生成用由密鑰管理系統(tǒng)208指派的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的數(shù)據(jù)密鑰(例如加密密鑰)。
[0060]在407,使用卷包密鑰對(duì)數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob。在408,使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)。在409,在日志結(jié)構(gòu)化卷中存儲(chǔ)卷包的blob和加密的數(shù)據(jù)。作為示例,服務(wù)器系統(tǒng)206可以在LSV上存儲(chǔ)每項(xiàng)。
[0061]在410,向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供數(shù)據(jù)密鑰標(biāo)識(shí)符。例如服務(wù)器系統(tǒng)206可以向被授權(quán)訪問(wèn)數(shù)據(jù)的所有用戶(hù)、例如在與數(shù)據(jù)關(guān)聯(lián)的ACL上的所有用戶(hù)提供所提供的數(shù)據(jù)密鑰。
[0062]在412,從第二虛擬機(jī)接收對(duì)于獲得數(shù)據(jù)的快照的第二請(qǐng)求。作為示例,相同用戶(hù)(例如用戶(hù)A)或者不同用戶(hù)(例如用戶(hù)B)可以發(fā)送對(duì)于獲得記賬電子表格的副本的請(qǐng)求。該請(qǐng)求可以包括數(shù)據(jù)密鑰標(biāo)識(shí)符和做出該請(qǐng)求的用戶(hù)的標(biāo)識(shí)。
[0063]在414,基于第二請(qǐng)求,獲得包含數(shù)據(jù)密鑰和訪問(wèn)控制列表的去卷包的blob。在415,從去卷包的blob獲得數(shù)據(jù)密鑰和訪問(wèn)控制列表。例如使用數(shù)據(jù)密鑰標(biāo)識(shí)符,服務(wù)器系統(tǒng)206可以從自密鑰管理系統(tǒng)208請(qǐng)求和接收數(shù)據(jù)密鑰卷包器。
[0064]在416,認(rèn)證與第二請(qǐng)求關(guān)聯(lián)的用戶(hù),按照訪問(wèn)控制列表向用戶(hù)授權(quán),并且確定用戶(hù)是否被認(rèn)證和授權(quán)。作為示例,服務(wù)器系統(tǒng)206可以按照ACL校驗(yàn)與請(qǐng)求關(guān)聯(lián)的用戶(hù)證書(shū)(例如用戶(hù)標(biāo)識(shí))以驗(yàn)證用戶(hù)(例如用戶(hù)B)被授權(quán)訪問(wèn)記賬電子表格。
[0065]在418,在確定用戶(hù)被認(rèn)證和授權(quán),使用數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。例如,如果用戶(hù)B被標(biāo)識(shí)為在ACL上,則服務(wù)器系統(tǒng)206可以使用數(shù)據(jù)密鑰對(duì)記賬電子表格進(jìn)行解密。
[0066]在420,向第二虛擬機(jī)提供數(shù)據(jù)的快照。作為示例,服務(wù)器系統(tǒng)206可以向用戶(hù)B提供記賬電子表格用于在用戶(hù)B的VM上使用。
[0067]除了密鑰材料的加密/解密之外,過(guò)程400執(zhí)行的加密和解密也可以在個(gè)別塊基礎(chǔ)上出現(xiàn)。在一些實(shí)現(xiàn)方式中,可以使用并行地密碼變換數(shù)據(jù)組塊的多線程引擎來(lái)實(shí)施加密/解密。
[0068]在一些實(shí)現(xiàn)方式中,固定線程池可以用于并行塊加密和解密。例如默認(rèn)數(shù)目的線程可以等于在主機(jī)(例如服務(wù)器系統(tǒng)206)上的該數(shù)目的檢測(cè)到的CPU。在一些實(shí)現(xiàn)方式中,I/O線程可以使用固定存儲(chǔ)器段作為陰影緩沖器。然后,在用于密碼變換數(shù)據(jù)的時(shí)間到來(lái)時(shí),段可以被劃分成用于在密碼變換線程池中的個(gè)別線程的組塊。在一些實(shí)現(xiàn)方式中,默認(rèn)組塊大小可以是512KB或者某個(gè)其它可配置大小。
[0069]在一些實(shí)現(xiàn)方式中,位圖可以用來(lái)在增量盤(pán)基礎(chǔ)上跟蹤盤(pán)的加密。例如塊可以包括未加密的塊,這些未加密的塊不包含來(lái)自未加密的基礎(chǔ)圖像的任何數(shù)據(jù)(稀疏)或者塊。在塊被寫(xiě)入和加密時(shí),可以更新位圖。位圖機(jī)制可以例如僅用于暫時(shí)圖像,從而對(duì)增量盤(pán)的增量原始盤(pán)部件加密而未對(duì)增量盤(pán)的只讀基礎(chǔ)原始盤(pán)部件加密。在一些實(shí)現(xiàn)方式中,打開(kāi)未加密的原始盤(pán)基礎(chǔ)圖像用于讀取/寫(xiě)入而加密被啟用可能造成破壞用于其它VM的后續(xù)打開(kāi)的基礎(chǔ)圖像。
[0070]圖5A是示出用于在虛擬機(jī)上使用的數(shù)據(jù)密鑰的示例密鑰旋轉(zhuǎn)過(guò)程500的流程圖。例如過(guò)程500可以用來(lái)在調(diào)度的基礎(chǔ)上、例如每七天或者某個(gè)其它時(shí)間段旋轉(zhuǎn)數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,過(guò)程500可以用來(lái)滾動(dòng)云群集主控密鑰從而使先前密鑰為“活躍”密鑰以及使新的密鑰為“主要”密鑰。無(wú)論何時(shí)使用活躍主控密鑰版本對(duì)數(shù)據(jù)密鑰進(jìn)行去卷包,也可以重新卷包主要主控密鑰版本從而用新的卷包的主要密鑰替換卷包的活躍密鑰。
[0071]在502,建立與數(shù)據(jù)在日志結(jié)構(gòu)化卷上的存儲(chǔ)關(guān)聯(lián)的閾值條件,其中閾值條件可用于旋轉(zhuǎn)數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,閾值條件包括數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量、比如數(shù)據(jù)密鑰在當(dāng)前時(shí)間保護(hù)的數(shù)據(jù)量的數(shù)據(jù)塊數(shù)目、文件數(shù)目或者某個(gè)其它測(cè)量。在一些實(shí)現(xiàn)方式中,密鑰保護(hù)的數(shù)據(jù)量是累計(jì)數(shù)量、比如使用相同數(shù)據(jù)密鑰隨時(shí)間保護(hù)的總數(shù)據(jù)量。在一些實(shí)現(xiàn)方式中,閾值條件包括數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間。例如用于使用數(shù)據(jù)密鑰的最大持續(xù)時(shí)間可以被設(shè)置成任何小時(shí)數(shù)、天數(shù)、周數(shù)等。
[0072]在504,如在以下步驟中描述的那樣進(jìn)行閾值條件已經(jīng)出現(xiàn)并且用于旋轉(zhuǎn)數(shù)據(jù)密鑰的時(shí)間到來(lái)的確定。在506,獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,可以從密鑰管理系統(tǒng)208接收新的數(shù)據(jù)密鑰。
[0073]在508,使用數(shù)據(jù)密鑰、即待引退的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。這是數(shù)據(jù)密鑰在它的引退之前的最后使用。
[0074]在509,使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob。在510,使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密已生成加密的數(shù)據(jù)。在511,在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)。在512,向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符。
[0075]在514,破壞待引退的數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,對(duì)數(shù)據(jù)密鑰的破壞通過(guò)向數(shù)據(jù)密鑰的存儲(chǔ)位置改寫(xiě)任意非密鑰數(shù)據(jù)來(lái)出現(xiàn)。
[0076]圖5B是示出用于在虛擬機(jī)上使用的數(shù)據(jù)密鑰的示例密鑰引退過(guò)程520的流程圖。在一些實(shí)現(xiàn)方式中,為所有卷包的密鑰維持目錄、包括關(guān)于哪個(gè)主控密鑰版本用于卷包密鑰的信息。一些實(shí)現(xiàn)方式還維持所有活躍數(shù)據(jù)密鑰的目錄。例如目錄包括對(duì)從其獲得它們的卷包的密鑰和對(duì)當(dāng)前正在其中保持它們的VM實(shí)例的引用。一些實(shí)現(xiàn)方式包括與每個(gè)密鑰關(guān)聯(lián)的指示何時(shí)創(chuàng)建每個(gè)密鑰的時(shí)間戳。在一些實(shí)現(xiàn)方式中,時(shí)間戳和/或其它信息可以用來(lái)觸發(fā)數(shù)據(jù)密鑰的引退。在一些實(shí)現(xiàn)方式中,引退在120天出現(xiàn),這意味著不晚于經(jīng)過(guò)生成卷包的密鑰這一點(diǎn)的120天、按照當(dāng)前主要主控密鑰重新卷包每個(gè)現(xiàn)有卷包的密鑰。在一些實(shí)現(xiàn)方式中,設(shè)置警報(bào)(例如從密鑰創(chuàng)建日期起的120天),通過(guò)這些警報(bào),觸發(fā)事件出現(xiàn)以指示用于密鑰引退的時(shí)間。一旦已經(jīng)重新卷包受活躍主控密鑰保護(hù)的所有卷包的密鑰,通過(guò)破壞活躍主控密鑰來(lái)完成主控密鑰引退過(guò)程。用于引退的示例步驟如下。
[0077]在522,建立與數(shù)據(jù)在日志結(jié)構(gòu)化卷上的存儲(chǔ)關(guān)聯(lián)的閾值條件,其中閾值條件可用于數(shù)據(jù)密鑰的引退。在一些實(shí)現(xiàn)方式中,閾值條件包括數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間、例如用來(lái)使達(dá)到120天之久的數(shù)據(jù)密鑰引退。
[0078]在524,發(fā)起確定閾值條件已經(jīng)出現(xiàn)和數(shù)據(jù)密鑰引退。該確定例如可以通過(guò)出現(xiàn)警報(bào)或者通過(guò)比較當(dāng)前日期與數(shù)據(jù)密鑰的創(chuàng)建日期以確定差值是否足以觸發(fā)閾值條件來(lái)出現(xiàn)。
[0079]在526,獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰。例如密鑰管理系統(tǒng)208可以生成新的密鑰并且提供用于新的密鑰的密鑰標(biāo)識(shí)符。
[0080]在528,使用待引退的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。這是舊的數(shù)據(jù)密鑰的最后使用。
[0081]在529,使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob。在530,使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)。在531,在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)。在532,向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符。
[0082]在534,破壞待引退的數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,對(duì)數(shù)據(jù)密鑰的破壞通過(guò)向數(shù)據(jù)密鑰的存儲(chǔ)位置改寫(xiě)空值、清除值、一或者零來(lái)出現(xiàn)。
[0083]圖5C是示出用于在虛擬機(jī)上使用的數(shù)據(jù)密鑰的密鑰撤回過(guò)程540的示例的流程圖。例如在主控密鑰版本被破解的情況下,可以滾動(dòng)主控密鑰和受破解的主控密鑰保護(hù)的所有數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,滾動(dòng)數(shù)據(jù)密鑰包括按照新生成的數(shù)據(jù)密鑰重新加密數(shù)據(jù)內(nèi)容??梢杂眯律傻闹饕骺孛荑€卷包新生成的數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,破壞用先前數(shù)據(jù)密鑰加密的任何數(shù)據(jù)。
[0084]在542,審核對(duì)數(shù)據(jù)的訪問(wèn)。在一些實(shí)現(xiàn)方式中,審核數(shù)據(jù)通過(guò)跟蹤訪問(wèn)數(shù)據(jù)的過(guò)程和用戶(hù)來(lái)出現(xiàn)。在544,確定數(shù)據(jù)已經(jīng)被不在訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且數(shù)據(jù)密鑰已經(jīng)被破解。
[0085]在546,發(fā)起用于替換被破解的數(shù)據(jù)密鑰的動(dòng)作。在548,獲得用新的數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的新的數(shù)據(jù)密鑰。
[0086]在550,使用待引退的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行解密。這是舊的數(shù)據(jù)密鑰的最后使用。
[0087]在551,使用卷包密鑰對(duì)新的數(shù)據(jù)密鑰和訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob。在552,使用新的數(shù)據(jù)密鑰對(duì)數(shù)據(jù)進(jìn)行加密以生成加密的數(shù)據(jù)。在553,在日志結(jié)構(gòu)化卷中存儲(chǔ)新的卷包的blob和加密的數(shù)據(jù)。在554,向在訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供新的數(shù)據(jù)密鑰標(biāo)識(shí)符。
[0088]在556,破壞舊的數(shù)據(jù)密鑰。在一些實(shí)現(xiàn)方式中,對(duì)數(shù)據(jù)密鑰的破壞通過(guò)向數(shù)據(jù)密鑰的存儲(chǔ)位置改寫(xiě)空值、清除值、一或者零來(lái)出現(xiàn)。
[0089]在一些實(shí)現(xiàn)方式中,在數(shù)據(jù)密鑰被滾動(dòng)時(shí),如果數(shù)據(jù)密鑰被VM活躍使用,則轉(zhuǎn)換以非破壞方式出現(xiàn)。例如滾動(dòng)出現(xiàn)而未中斷VM的用于如正常地使用的那樣使用盤(pán)的能力。
[0090]圖6示出用于被配置為運(yùn)行虛擬機(jī)的分布式系統(tǒng)的聯(lián)網(wǎng)架構(gòu)的示例。分布式系統(tǒng)可以包含服務(wù)器系統(tǒng),這些服務(wù)器系統(tǒng)包括主機(jī)機(jī)器615a、615b,這些主機(jī)機(jī)器被配置為運(yùn)行一個(gè)或者多個(gè)虛擬機(jī)620a、620b、620c、620d。主機(jī)機(jī)器615a、615b使用IP隧道660a、660b、660c以輸送在虛擬機(jī)620a-d之間的IP流量和在虛擬機(jī)620a_d與VM網(wǎng)關(guān)640a、640b之間的IP流量。VM網(wǎng)關(guān)640a、b被配置為向虛擬機(jī)620a_d提供因特網(wǎng)650訪問(wèn)。
[0091]主機(jī)機(jī)器615a、615b可以經(jīng)由相應(yīng)本地局域網(wǎng)(LAN)655a、655b連接到因特網(wǎng)650。在一些實(shí)現(xiàn)方式中,主機(jī)機(jī)器615a、615b被指派在因特網(wǎng)650上可見(jiàn)的IP地址(例如134.130.78.11,224.10.202.6)??梢越?jīng)由因特網(wǎng)650從在第一 LAN 655a上的主機(jī)機(jī)器615向在第二 LAN 655b上的主機(jī)機(jī)器615b路由在主機(jī)機(jī)器間IP隧道660a上的流量(例如IP隧道分組)(隧道660a輸送在VM-1620a與VM_13620c之間的流量)??梢酝耆卦谥鳈C(jī)機(jī)器615a以?xún)?nèi)路由在主機(jī)機(jī)器間IP隧道660b上的流量。
[0092]VM網(wǎng)關(guān)640a、640b可以通過(guò)改變?cè)诜纸M首部中的源或者目的地地址信息來(lái)路由在因特網(wǎng)650與虛擬網(wǎng)絡(luò)601之間的流量,從而在網(wǎng)關(guān)640a、640b的IP地址后面隱藏虛擬網(wǎng)絡(luò)601的地址空間。具體而言,從因特網(wǎng)650到達(dá)網(wǎng)關(guān)640a、640b并且去往虛擬網(wǎng)絡(luò)601的分組讓它們的IP數(shù)據(jù)報(bào)目的地地址從網(wǎng)關(guān)640a、640b的IP地址(例如134.130.78.1或者224.10.202.1)改變成目的地VM的IP地址(例如192.168.1.10)。從虛擬網(wǎng)絡(luò)601到達(dá)網(wǎng)關(guān)640a、640b并且去往因特網(wǎng)650的分組讓它們的IP源地址從VM的IP地址(例如192.168.1.10)改變成VM網(wǎng)關(guān)640a、640b的在因特網(wǎng)650上可見(jiàn)的IP地址(例如134.130.78.1,224.10.202.1)?;谑褂脤?zhuān)用子網(wǎng)的虛擬網(wǎng)絡(luò)601,VM網(wǎng)關(guān)640a、b可以執(zhí)行網(wǎng)絡(luò)地址翻譯(NAT)以在專(zhuān)用子網(wǎng)地址與公用地址之間翻譯。
[0093]在主機(jī)機(jī)器615a_b上運(yùn)行的虛擬機(jī)620a、620b、620c、620d可以運(yùn)行過(guò)程、比如與在客戶(hù)端630a、630b、630c上運(yùn)行的瀏覽器軟件交互的web服務(wù)器過(guò)程??蛻?hù)端可以是數(shù)據(jù)處理裝置、如比如服務(wù)器、個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、智能電話(huà)、電視——該電視具有嵌入在電視中的或者耦合到電視的一個(gè)或者多個(gè)數(shù)據(jù)處理器、嵌入設(shè)備(例如智能電表)或者寫(xiě)字板計(jì)算機(jī)。在這一示例中,客戶(hù)端630c通過(guò)向VM網(wǎng)關(guān)640b發(fā)送IP分組來(lái)與VM(例如VM-21620d)通信。VM網(wǎng)關(guān)640b封裝來(lái)自客戶(hù)端630c的分組并且經(jīng)由IP隧道660c向運(yùn)行VM-21620d的主機(jī)機(jī)器615b發(fā)送封裝的分組。運(yùn)行VM-21 620d的主機(jī)機(jī)器615b可以去封裝分組并且向VM-21 620d遞送分組。
[0094]在虛擬網(wǎng)絡(luò)140上的IP流量可以由IP隧道輸送。主機(jī)機(jī)器102、104可以執(zhí)行用于去往和來(lái)自每個(gè)VM 110、112、114的IP封裝和去封裝142。來(lái)自一個(gè)VM的封裝的IP流量可以經(jīng)由IP隧道傳輸被發(fā)送到另一 VM。IP隧道可以提供傳送層。例如IP隧道傳輸可以包括發(fā)送包括封裝的分組的IP隧道分組。封裝的分組可以是IP分組。其它類(lèi)型的封裝的分組是可能的。在一些情況下,IP隧道可以在相同主機(jī)機(jī)器上進(jìn)行始發(fā)和終止二者(例如源和目的地VM在相同主機(jī)機(jī)器上)。在一些情況下,IP隧道可以在一個(gè)主機(jī)機(jī)器始發(fā)并且在不同主機(jī)機(jī)器終止(例如源和目的地VM在不同主機(jī)機(jī)器上)。可以經(jīng)由網(wǎng)絡(luò)150、比如因特網(wǎng)通過(guò)虛擬專(zhuān)用網(wǎng)絡(luò)(VPN)輸送在主機(jī)機(jī)器102、104之間的IP隧道流量。
[0095]主機(jī)機(jī)器102、104可以使用虛擬網(wǎng)絡(luò)路由表以取回IP隧道的端點(diǎn)位置。在一些實(shí)現(xiàn)方式中,基于輸入的VM標(biāo)識(shí)符或者VM IP地址,虛擬網(wǎng)絡(luò)路由表可以提供在網(wǎng)絡(luò)150上的主機(jī)機(jī)器對(duì)應(yīng)的可路由IP地址,該主機(jī)機(jī)器運(yùn)行與輸入的VM標(biāo)識(shí)符或者VM IP地址關(guān)聯(lián)的VM。
[0096]可以在數(shù)字電子電路裝置中或者在包括本說(shuō)明書(shū)中公開(kāi)的結(jié)構(gòu)及其結(jié)構(gòu)等效物的計(jì)算機(jī)軟件、固件或者硬件中或者在它們中的一項(xiàng)或者多項(xiàng)的組合中實(shí)現(xiàn)在本說(shuō)明書(shū)中描述的主題內(nèi)容和操作的實(shí)施例。可以將在本說(shuō)明書(shū)中描述的主題內(nèi)容的實(shí)施例實(shí)施為一個(gè)或者多個(gè)計(jì)算機(jī)程序、即在計(jì)算機(jī)存儲(chǔ)介質(zhì)上編碼的用于由數(shù)據(jù)處理裝置執(zhí)行或者控制數(shù)據(jù)處理裝置的操作的一個(gè)或者多個(gè)計(jì)算機(jī)程序指令模塊。備選地或者附加地,可以在機(jī)器生成的電、光或者電磁信號(hào)上對(duì)程序指令進(jìn)行編碼,該信號(hào)被生成為對(duì)信息進(jìn)行編碼用于向適當(dāng)接收器裝置傳輸用于由數(shù)據(jù)處理裝置執(zhí)行。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)基板、隨機(jī)或者串行存取存儲(chǔ)器陣列或者設(shè)備或者它們中的一項(xiàng)或者多項(xiàng)的組合或者被包含于計(jì)算機(jī)可讀存儲(chǔ)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)基板、隨機(jī)或者串行存取存儲(chǔ)器陣列或者設(shè)備或者它們中的一項(xiàng)或者多項(xiàng)的組合中。另外,盡管計(jì)算機(jī)存儲(chǔ)介質(zhì)不是傳播的信號(hào),但是計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是在人為生成的傳播的信號(hào)中編碼的計(jì)算機(jī)程序指令的源或者目的地。計(jì)算機(jī)存儲(chǔ)介質(zhì)也可以是一個(gè)或者多個(gè)分離物理部件或者介質(zhì)(例如多個(gè)CD、盤(pán)或者其它存儲(chǔ)設(shè)備)或者被包含于一個(gè)或者多個(gè)分離物理部件或者介質(zhì)中。
[0097]可以將在本說(shuō)明書(shū)中描述的操作實(shí)施為由數(shù)據(jù)處理裝置對(duì)在一個(gè)或者多個(gè)計(jì)算機(jī)可讀存儲(chǔ)設(shè)備上存儲(chǔ)的或者從其它來(lái)源接收的數(shù)據(jù)執(zhí)行的操作。
[0098]術(shù)語(yǔ)“數(shù)據(jù)處理裝置”涵蓋所有種類(lèi)的用于處理數(shù)據(jù)的裝置、設(shè)備和機(jī)器、舉例而言包括可編程處理器、計(jì)算機(jī)、片上系統(tǒng)或者前述各項(xiàng)的多項(xiàng)或者組合。該裝置可以包括專(zhuān)用邏輯電路裝置、例如FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)或者ASIC(專(zhuān)用集成電路)。該裝置除了硬件之外也可以包括為討論的計(jì)算機(jī)程序創(chuàng)建執(zhí)行環(huán)境的代碼、例如構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫(kù)管理系統(tǒng)、操作系統(tǒng)、跨平臺(tái)運(yùn)行時(shí)間環(huán)境、虛擬機(jī)或者它們中的一項(xiàng)或者多項(xiàng)的組合的代碼。該裝置和執(zhí)行環(huán)境可以實(shí)現(xiàn)各種不同計(jì)算模型基礎(chǔ)設(shè)施、比如web服務(wù)、分布式計(jì)算和網(wǎng)格計(jì)算基礎(chǔ)設(shè)施。
[0099]可以用包括編譯或者解譯語(yǔ)言、說(shuō)明或者過(guò)程語(yǔ)言的任何形式的編程語(yǔ)言編寫(xiě)計(jì)算機(jī)程序(也稱(chēng)為程序、軟件、軟件應(yīng)用、腳本或者代碼),并且可以用任何形式部署它、包括部署為單獨(dú)程序或者部署為適合于在計(jì)算環(huán)境中使用的模塊、部件、子例程、對(duì)象或者其它單元。計(jì)算機(jī)程序可以、但是無(wú)需對(duì)應(yīng)于文件系統(tǒng)中的文件。程序可以存儲(chǔ)于保持其它程序或者數(shù)據(jù)的文件(例如存儲(chǔ)于標(biāo)記語(yǔ)言文檔中的一個(gè)或者多個(gè)腳本)的部分中、專(zhuān)用于討論的程序的單個(gè)文件中或者多個(gè)協(xié)調(diào)的文件(例如存儲(chǔ)一個(gè)或者多個(gè)模塊、子程序或者代碼部分的文件)中。計(jì)算機(jī)程序可以被部署為在一個(gè)計(jì)算機(jī)上或者在位于一個(gè)地點(diǎn)或者分布于多個(gè)地點(diǎn)并且由通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行。
[0100]在本說(shuō)明書(shū)中描述的過(guò)程和邏輯流程可以被一個(gè)或者多個(gè)可編程處理器執(zhí)行,該一個(gè)或者多個(gè)可編程處理器執(zhí)行一個(gè)或者多個(gè)計(jì)算機(jī)程序以通過(guò)對(duì)輸入數(shù)據(jù)進(jìn)行操作并且生成輸出來(lái)執(zhí)行動(dòng)作。過(guò)程和邏輯流程也可以由專(zhuān)用邏輯電路裝置、例如FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)或者ASIC(專(zhuān)用集成電路)執(zhí)行并且也可以實(shí)施裝置為該專(zhuān)用邏輯電路裝置。
[0101]舉例而言,適合用于執(zhí)行計(jì)算機(jī)程序的處理器包括通用和專(zhuān)用微處理器以及任何種類(lèi)的數(shù)字計(jì)算機(jī)的任何一個(gè)或者多個(gè)處理器。一般而言,處理器可以從只讀存儲(chǔ)器或者隨機(jī)存取存儲(chǔ)器或者二者接收指令和數(shù)據(jù)。計(jì)算機(jī)的基本單元是用于根據(jù)指令執(zhí)行動(dòng)作的處理器以及用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或者多個(gè)存儲(chǔ)器設(shè)備。一般而言,計(jì)算機(jī)也可以包括用于存儲(chǔ)數(shù)據(jù)的一個(gè)或者多個(gè)海量存儲(chǔ)設(shè)備、例如磁盤(pán)、光磁盤(pán)或者光盤(pán)或者被操作地耦合用于從該一個(gè)或者多個(gè)海量存儲(chǔ)設(shè)備接收數(shù)據(jù)或者向該一個(gè)或者多個(gè)海量存儲(chǔ)設(shè)備傳送數(shù)據(jù)或者二者。然而計(jì)算機(jī)無(wú)需具有這樣的設(shè)備。另外,可以在另一設(shè)備、聊舉數(shù)例例如電視——該電視具有在電視中嵌入的或者耦合到電視的一個(gè)或者多個(gè)處理器、移動(dòng)電話(huà)、個(gè)人數(shù)字助理(PDA)、移動(dòng)音頻或者視頻播放器、游戲控制器、全球定位系統(tǒng)(GPS)接收器或者便攜存儲(chǔ)設(shè)備(例如通用串行總線(USB)閃存驅(qū)動(dòng))中嵌入計(jì)算機(jī)。適合用于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的設(shè)備包括所有形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)器設(shè)備、舉例而言包括半導(dǎo)體存儲(chǔ)器設(shè)備、例如EPROM、EEPROM和閃存設(shè)備;磁盤(pán)、例如內(nèi)部硬盤(pán)或者可拆卸盤(pán);光磁盤(pán);以及⑶-ROM和DVD-ROM盤(pán)。處理器和存儲(chǔ)器可以由專(zhuān)用邏輯電路裝置補(bǔ)充或者并入于專(zhuān)用邏輯電路裝置中。
[0102]為了提供與用戶(hù)的交互,可以在計(jì)算機(jī)上實(shí)施在本說(shuō)明書(shū)中描述的主題內(nèi)容的實(shí)施例,該計(jì)算機(jī)具有用于向用戶(hù)顯示信息的顯示設(shè)備、例如CRT(陰極射線管)或者LCD(液晶顯示器)監(jiān)視器以及用戶(hù)可以用來(lái)向計(jì)算機(jī)提供輸入的鍵盤(pán)和指示設(shè)備、例如鼠標(biāo)或者跟蹤球。其它種類(lèi)的設(shè)備也可以用來(lái)提供與用戶(hù)的交互;例如向用戶(hù)提供的反饋可以是任何形式的感官反饋、例如視覺(jué)反饋、聽(tīng)覺(jué)反饋或者觸覺(jué)反饋;并且可以用包括聲音、話(huà)音或者觸覺(jué)輸入的任何形式接收來(lái)自用戶(hù)的輸入。此外,計(jì)算機(jī)可以通過(guò)向用戶(hù)使用的設(shè)備發(fā)送文檔和從該設(shè)備接收文檔;例如通過(guò)響應(yīng)于從在用戶(hù)的客戶(hù)端設(shè)備上的web瀏覽器接收的請(qǐng)求向web瀏覽器發(fā)送網(wǎng)頁(yè)來(lái)與用戶(hù)交互。
[0103]可以在計(jì)算系統(tǒng)中實(shí)施在本說(shuō)明書(shū)中描述的主題內(nèi)容的實(shí)施例,該計(jì)算系統(tǒng)包括后端部件、例如作為數(shù)據(jù)服務(wù)器或者包括中間件部件、例如應(yīng)用服務(wù)器或者包括前端部件、例如具有圖形用戶(hù)界面或者Web瀏覽器一用戶(hù)可以通過(guò)該圖形用戶(hù)界面或者Web瀏覽器與在本說(shuō)明書(shū)中描述的主題內(nèi)容的實(shí)現(xiàn)方式交互——的客戶(hù)端計(jì)算機(jī)或者一個(gè)或者多個(gè)這樣的后端、中間件或者前端部件的任何組合。系統(tǒng)的部件可以由任何數(shù)字?jǐn)?shù)據(jù)通信形式或者介質(zhì)、例如通信網(wǎng)絡(luò)互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)和廣域網(wǎng)(“WAN”)、互連網(wǎng)絡(luò)(例如因特網(wǎng))和對(duì)等網(wǎng)絡(luò)(例如自組織對(duì)等網(wǎng)絡(luò))。
[0104]計(jì)算系統(tǒng)可以包括客戶(hù)端和服務(wù)器??蛻?hù)端和服務(wù)器一般相互遠(yuǎn)離并且通常通過(guò)通信網(wǎng)絡(luò)交互。借助在相應(yīng)計(jì)算機(jī)上運(yùn)行并且相互具有客戶(hù)端-服務(wù)器關(guān)系的計(jì)算機(jī)程序產(chǎn)生客戶(hù)端和服務(wù)器的關(guān)系。在一些實(shí)施例中,服務(wù)器向客戶(hù)端設(shè)備發(fā)送數(shù)據(jù)(例如HTML頁(yè)面)(例如用于向與客戶(hù)端設(shè)備交互的用戶(hù)顯示數(shù)據(jù)和從該用戶(hù)接收用戶(hù)輸入)。可以在服務(wù)器從客戶(hù)端設(shè)備接收在客戶(hù)端設(shè)備生成的數(shù)據(jù)(例如用戶(hù)交互的結(jié)果)。
[0105]盡管本說(shuō)明書(shū)包含許多具體實(shí)施細(xì)節(jié),但是不應(yīng)解釋這些為限制任何發(fā)明的或者可以要求保護(hù)的內(nèi)容的范圍而實(shí)際上描述具體發(fā)明的具體實(shí)施例特有的特征。也可以在單個(gè)實(shí)施例中組合實(shí)施在本說(shuō)明書(shū)中在分離實(shí)施例的情境中描述的某些特征。反言之,也可以在多個(gè)實(shí)施例中分離地或者在任何適當(dāng)子組合中實(shí)施在單個(gè)實(shí)施例的情境中描述的各種特征。另外,雖然以上可以描述特征為在某些組合中動(dòng)作并且甚至起初這樣要求保護(hù),但是來(lái)自要求保護(hù)的組合的一個(gè)或者多個(gè)特征可以在一些情況下從該組合中被刪除,并且要求保護(hù)的組合可以涉及子組合或者子組合的變化。
[0106]相似地,盡管在附圖中以特定順序描繪操作,但是這不應(yīng)理解為要求以所示特定順序或者以依次順序執(zhí)行這樣的操作或者執(zhí)行所有所示操作以實(shí)現(xiàn)希望的結(jié)果。在某些境況中,多任務(wù)和并行處理可以是有利的。另外,在以上描述的實(shí)施例中的各種系統(tǒng)部件的分離不應(yīng)理解為在所有實(shí)施例中要求這樣的分離,并且應(yīng)當(dāng)理解描述的程序部件和系統(tǒng)一般可以一起集成于單個(gè)軟件產(chǎn)品中或者封裝成多個(gè)軟件產(chǎn)品。
[0107]因此,已經(jīng)描述主題內(nèi)容的具體實(shí)施例。其它實(shí)施例例在所附權(quán)利要求的范圍內(nèi)。在一些情況下,在權(quán)利要求中記載的動(dòng)作可以按不同順序來(lái)執(zhí)行而仍然實(shí)現(xiàn)希望的結(jié)果。此外,在附圖中描繪的過(guò)程未必需要所示具體順序或者依次順序以實(shí)現(xiàn)希望的結(jié)果。在某些實(shí)現(xiàn)方式中,多任務(wù)和并行處理可以是有利的。
【權(quán)利要求】
1.一種由一個(gè)或者多個(gè)數(shù)據(jù)處理裝置實(shí)施的方法,所述方法包括: 從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)第一數(shù)據(jù)的第一請(qǐng)求,并且基于所述第一請(qǐng)求: 獲得所述第一數(shù)據(jù)和被授權(quán)訪問(wèn)所述第一數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表; 獲得具有第一數(shù)據(jù)密鑰標(biāo)識(shí)符的第一數(shù)據(jù)密鑰; 使用所述一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用卷包密鑰對(duì)所述第一數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob ; 使用所述一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用所述第一數(shù)據(jù)密鑰對(duì)所述第一數(shù)據(jù)進(jìn)行加密以生成加密的第一數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述卷包的blob和所述加密的第一數(shù)據(jù);以及向在所述訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供所述第一數(shù)據(jù)密鑰標(biāo)識(shí)符;以及從第二虛擬機(jī)接收對(duì)于獲得所述第一數(shù)據(jù)的快照的第二請(qǐng)求,其中所述第二請(qǐng)求包括所述第一數(shù)據(jù)密鑰標(biāo)識(shí)符和做出所述第二請(qǐng)求的用戶(hù)的標(biāo)識(shí),并且基于所述第二請(qǐng)求: 使用所述一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用所述卷包密鑰對(duì)所述卷包的blob進(jìn)行解密以獲得所述第一數(shù)據(jù)密鑰和所述訪問(wèn)控制列表; 認(rèn)證做出所述第二請(qǐng)求的所述用戶(hù)并且按照所述訪問(wèn)控制列表向所述用戶(hù)授權(quán),并且在確定所述用戶(hù)被認(rèn)證和授權(quán)時(shí): 使用所述一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第一數(shù)據(jù)進(jìn)行解密以獲得解密的第一數(shù)據(jù);以及 向所述第二虛擬機(jī)提供所述解密的第一數(shù)據(jù)的快照。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 確定旋轉(zhuǎn)條件已經(jīng)出現(xiàn),其中所述旋轉(zhuǎn)條件與在所述日志結(jié)構(gòu)化卷上存儲(chǔ)的加密的第二數(shù)據(jù)關(guān)聯(lián),其中使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第二數(shù)據(jù)進(jìn)行加密,并且其中所述加密的第二數(shù)據(jù)包括所述加密的第一數(shù)據(jù); 獲得具有第二數(shù)據(jù)密鑰標(biāo)識(shí)符的第二數(shù)據(jù)密鑰; 使用所述第二數(shù)據(jù)密鑰對(duì)所述加密的第二數(shù)據(jù)進(jìn)行解密以獲得第二數(shù)據(jù); 使用所述卷包密鑰對(duì)所述第二數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob ; 使用所述第二數(shù)據(jù)密鑰對(duì)所述第二數(shù)據(jù)進(jìn)行加密以生成新的加密的第二數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述新的卷包的blob和所述新的加密的第二數(shù)據(jù); 向在所述訪問(wèn)控制列表上的所述一個(gè)或者多個(gè)用戶(hù)提供所述第二數(shù)據(jù)密鑰標(biāo)識(shí)符;以及 防止所述第一數(shù)據(jù)密鑰的后續(xù)使用。
3.根據(jù)權(quán)利要求2所述的方法,其中所述旋轉(zhuǎn)條件包括由所述第一數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量超過(guò)閾值數(shù)據(jù)量,并且其中所述閾值數(shù)據(jù)量是累計(jì)數(shù)量或當(dāng)前數(shù)量。
4.根據(jù)權(quán)利要求2所述的方法,其中所述旋轉(zhuǎn)條件包括所述第一數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間超過(guò)閾值持續(xù)時(shí)間。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 審核對(duì)所述加密的第一數(shù)據(jù)的訪問(wèn); 確定所述加密的第一數(shù)據(jù)已經(jīng)被不在所述訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且所述第一數(shù)據(jù)密鑰已經(jīng)被破解; 獲得具有第二數(shù)據(jù)密鑰標(biāo)識(shí)符的第二數(shù)據(jù)密鑰; 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第一數(shù)據(jù)進(jìn)行解密以獲得解密的第一數(shù)據(jù);使用所述卷包密鑰對(duì)所述第二數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob ; 使用所述第二數(shù)據(jù)密鑰對(duì)所述解密的第一數(shù)據(jù)進(jìn)行加密以生成新的加密的第一數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述新的卷包的blob和所述新的加密的第一數(shù)據(jù); 向在所述訪問(wèn)控制列表上的所述一個(gè)或者多個(gè)用戶(hù)提供所述第二數(shù)據(jù)密鑰標(biāo)識(shí)符;以及 防止所述第一數(shù)據(jù)密鑰的后續(xù)使用。
6.根據(jù)權(quán)利要求1所述的方法,其中存儲(chǔ)所述加密的第一數(shù)據(jù)包括壓縮所述加密的第一數(shù)據(jù)。
7.一種系統(tǒng),包括: 被編程為執(zhí)行操作的一個(gè)或者多個(gè)數(shù)據(jù)處理裝置,所述操作包括: 從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)第一數(shù)據(jù)的第一請(qǐng)求,并且基于所述第一請(qǐng)求: 獲得所述第一數(shù)據(jù)和被授權(quán)訪問(wèn)所述第一數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表; 獲得具有第一數(shù)據(jù)密鑰標(biāo)識(shí)符的第一數(shù)據(jù)密鑰; 使用卷包密鑰對(duì)所述第一數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob ; 使用所述第一數(shù)據(jù)密鑰對(duì)所述第一數(shù)據(jù)進(jìn)行加密以生成加密的第一數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述卷包的blob和所述加密的第一數(shù)據(jù);以及向在所述訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供所述第一數(shù)據(jù)密鑰標(biāo)識(shí)符;以及從第二虛擬機(jī)接收對(duì)于獲得所述第一數(shù)據(jù)的快照的第二請(qǐng)求,其中所述第二請(qǐng)求包括所述第一數(shù)據(jù)密鑰標(biāo)識(shí)符和做出所述第二請(qǐng)求的用戶(hù)的標(biāo)識(shí),并且基于所述第二請(qǐng)求: 使用所述一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用所述卷包密鑰對(duì)所述卷包的blob進(jìn)行解密以獲得所述第一數(shù)據(jù)密鑰和所述訪問(wèn)控制列表; 認(rèn)證做出所述第二請(qǐng)求的所述用戶(hù)并且按照所述訪問(wèn)控制列表向所述用戶(hù)授權(quán),并且在確定所述用戶(hù)被認(rèn)證和授權(quán)時(shí): 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第一數(shù)據(jù)進(jìn)行解密以獲得解密的第一數(shù)據(jù);以及 向所述第二虛擬機(jī)提供所述解密的第一數(shù)據(jù)的快照。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述操作還包括: 確定旋轉(zhuǎn)條件已經(jīng)出現(xiàn),其中所述旋轉(zhuǎn)條件與在所述日志結(jié)構(gòu)化卷上存儲(chǔ)的加密的第二數(shù)據(jù)關(guān)聯(lián),其中使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第二數(shù)據(jù)進(jìn)行加密,并且其中所述加密的第二數(shù)據(jù)包括所述加密的第一數(shù)據(jù); 獲得用第二數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的第二數(shù)據(jù)密鑰; 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第二數(shù)據(jù)進(jìn)行解密以獲得第二數(shù)據(jù); 使用所述卷包密鑰對(duì)所述第二數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob ; 使用所述第二數(shù)據(jù)密鑰對(duì)所述第二數(shù)據(jù)進(jìn)行加密以生成新的加密的第二數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述新的卷包的blob和所述新的加密的第二數(shù)據(jù); 向在所述訪問(wèn)控制列表上的所述一個(gè)或者多個(gè)用戶(hù)提供所述第二數(shù)據(jù)密鑰標(biāo)識(shí)符;以及 防止所述第一數(shù)據(jù)密鑰的后續(xù)使用。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述旋轉(zhuǎn)條件包括由所述第一數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量超過(guò)閾值數(shù)據(jù)量,并且其中所述閾值數(shù)據(jù)量是累計(jì)數(shù)量或當(dāng)前數(shù)量。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述旋轉(zhuǎn)條件包括所述第一數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間超過(guò)閾值持續(xù)時(shí)間。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述操作還包括: 審核對(duì)所述加密的第一數(shù)據(jù)的訪問(wèn); 確定所述加密的第一數(shù)據(jù)已經(jīng)被不在所述訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且所述第一數(shù)據(jù)密鑰已經(jīng)被破解; 獲得用第二數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的第二數(shù)據(jù)密鑰; 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第一數(shù)據(jù)進(jìn)行解密以獲得解密的第一數(shù)據(jù);使用所述卷包密鑰對(duì)所述第二數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob ; 使用所述第二數(shù)據(jù)密鑰對(duì)所述解密的第一數(shù)據(jù)進(jìn)行加密以生成新的加密的第一數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述新的卷包的blob和所述新的加密的第一數(shù)據(jù); 向在所述訪問(wèn)控制列表上的所述一個(gè)或者多個(gè)用戶(hù)提供所述第二數(shù)據(jù)密鑰標(biāo)識(shí)符;以及 防止所述第一數(shù)據(jù)密鑰的后續(xù)使用。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其中存儲(chǔ)所述加密的第一數(shù)據(jù)包括壓縮所述加密的第一數(shù)據(jù)。
13.一種具有在其上存儲(chǔ)的指令的存儲(chǔ)介質(zhì),所述指令在被執(zhí)行時(shí)使數(shù)據(jù)處理裝置執(zhí)行操作,所述操作包括: 被編程為執(zhí)行操作的一個(gè)或者多個(gè)數(shù)據(jù)處理裝置,所述操作包括: 從第一虛擬機(jī)接收用于在日志結(jié)構(gòu)化卷中存儲(chǔ)第一數(shù)據(jù)的第一請(qǐng)求,并且基于所述第一請(qǐng)求: 獲得所述第一數(shù)據(jù)和被授權(quán)訪問(wèn)所述第一數(shù)據(jù)的一個(gè)或者多個(gè)用戶(hù)的訪問(wèn)控制列表; 獲得具有第一數(shù)據(jù)密鑰標(biāo)識(shí)符的第一數(shù)據(jù)密鑰; 使用卷包密鑰對(duì)所述數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成卷包的blob ; 使用所述數(shù)據(jù)密鑰對(duì)所述第一數(shù)據(jù)進(jìn)行加密以生成加密的第一數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述卷包的blob和所述加密的第一數(shù)據(jù);以及向在所述訪問(wèn)控制列表上的一個(gè)或者多個(gè)用戶(hù)提供所述第一數(shù)據(jù)密鑰標(biāo)識(shí)符;以及從第二虛擬機(jī)接收對(duì)于獲得所述第一數(shù)據(jù)的快照的第二請(qǐng)求,其中所述第二請(qǐng)求包括所述第一數(shù)據(jù)密鑰標(biāo)識(shí)符和做出所述第二請(qǐng)求的用戶(hù)的標(biāo)識(shí),并且基于所述第二請(qǐng)求: 使用所述一個(gè)或者多個(gè)數(shù)據(jù)處理裝置、使用所述卷包密鑰對(duì)所述卷包的blob進(jìn)行解密以獲得所述第一數(shù)據(jù)密鑰和所述訪問(wèn)控制列表; 認(rèn)證做出所述第二請(qǐng)求的所述用戶(hù)并且按照所述訪問(wèn)控制列表向所述用戶(hù)授權(quán),并且在確定所述用戶(hù)被認(rèn)證和授權(quán)時(shí): 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第一數(shù)據(jù)進(jìn)行解密以獲得解密的第一數(shù)據(jù);以及 向所述第二虛擬機(jī)提供所述解密的第一數(shù)據(jù)的快照。
14.根據(jù)權(quán)利要求13所述的存儲(chǔ)介質(zhì),其中所述操作還包括: 確定旋轉(zhuǎn)條件已經(jīng)出現(xiàn),其中所述旋轉(zhuǎn)條件與在所述日志結(jié)構(gòu)化卷上存儲(chǔ)的加密的第二數(shù)據(jù)關(guān)聯(lián),其中使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第二數(shù)據(jù)進(jìn)行加密,并且其中所述加密的第二數(shù)據(jù)包括所述加密的第一數(shù)據(jù); 獲得具有第二數(shù)據(jù)密鑰標(biāo)識(shí)符的第二數(shù)據(jù)密鑰; 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第二數(shù)據(jù)進(jìn)行解密以獲得第二數(shù)據(jù); 使用所述卷包密鑰對(duì)所述第二數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob ; 使用所述第二數(shù)據(jù)密鑰對(duì)所述第二數(shù)據(jù)進(jìn)行加密以生成新的加密的第二數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述新的卷包的blob和所述新的加密的第二數(shù)據(jù); 向在所述訪問(wèn)控制列表上的所述一個(gè)或者多個(gè)用戶(hù)提供所述第二數(shù)據(jù)密鑰標(biāo)識(shí)符;以及 防止所述第一數(shù)據(jù)密鑰的后續(xù)使用。
15.根據(jù)權(quán)利要求13所述的存儲(chǔ)介質(zhì),其中所述旋轉(zhuǎn)條件包括所述由第一數(shù)據(jù)密鑰保護(hù)的數(shù)據(jù)量超過(guò)閾值數(shù)據(jù)量,并且其中所述閾值數(shù)據(jù)量是累計(jì)數(shù)量或當(dāng)前數(shù)量。
16.根據(jù)權(quán)利要求13所述的存儲(chǔ)介質(zhì),其中所述旋轉(zhuǎn)條件包括所述第一數(shù)據(jù)密鑰已經(jīng)被使用的持續(xù)時(shí)間超過(guò)閾值持續(xù)時(shí)間。
17.根據(jù)權(quán)利要求13所述的存儲(chǔ)介質(zhì),其中所述操作還包括: 審核對(duì)所述加密的第一數(shù)據(jù)的訪問(wèn);以及 確定所述加密的第一數(shù)據(jù)已經(jīng)被不在所述訪問(wèn)控制列表上的用戶(hù)訪問(wèn)并且所述第一數(shù)據(jù)密鑰已經(jīng)被破解; 獲得用第二數(shù)據(jù)密鑰標(biāo)識(shí)符標(biāo)識(shí)的第二數(shù)據(jù)密鑰; 使用所述第一數(shù)據(jù)密鑰對(duì)所述加密的第一數(shù)據(jù)進(jìn)行解密以獲得解密的第一數(shù)據(jù);使用所述卷包密鑰對(duì)所述第二數(shù)據(jù)密鑰和所述訪問(wèn)控制列表進(jìn)行加密以生成新的卷包的blob ; 使用所述第二數(shù)據(jù)密鑰對(duì)所述解密的第一數(shù)據(jù)進(jìn)行加密以生成新的加密的第一數(shù)據(jù); 在所述日志結(jié)構(gòu)化卷中存儲(chǔ)所述新的卷包的blob和所述新的加密的第一數(shù)據(jù); 向在所述訪問(wèn)控制列表上的所述一個(gè)或者多個(gè)用戶(hù)提供所述第二數(shù)據(jù)密鑰標(biāo)識(shí)符;以 及 防止所述第一數(shù)據(jù)密鑰的后續(xù)使用。
18.根據(jù)權(quán)利要求13所述的存儲(chǔ)介質(zhì),其中存儲(chǔ)所述加密的第一數(shù)據(jù)包括壓縮所述加密的第一數(shù)據(jù)。
【文檔編號(hào)】G06F21/62GK104246789SQ201380019961
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2013年2月22日 優(yōu)先權(quán)日:2012年2月24日
【發(fā)明者】A·卡達(dá)施, M·A·哈爾克勞 申請(qǐng)人:谷歌公司