加密云盤
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細閱讀。
云盤加密是指通過加密算法保護存儲在云盤中的數(shù)據(jù)免受未經(jīng)授權(quán)的訪問和泄露。在數(shù)據(jù)被寫入云盤時對其進行加密,并確保數(shù)據(jù)在未授權(quán)情況下無法被訪問或解密,即使云盤數(shù)據(jù)泄露也無法解密,并在授權(quán)用戶讀取云盤數(shù)據(jù)時自動解密,從而確保云盤數(shù)據(jù)的機密性和完整性。本文介紹云盤加密原理、使用限制以及如何實現(xiàn)云盤加密等。
加密概述
加密原理
在ECS的加密過程中,云盤、鏡像和快照的加密都是采用行業(yè)標(biāo)準(zhǔn)的AES-256加密算法,并且通過密鑰管理服務(wù)KMS(Key Management Service)進行加密。加密密鑰采用雙層設(shè)計,并通過信封加密的機制實現(xiàn)對數(shù)據(jù)的加密,第一層為用戶的主密鑰CMK(Customer Master Key),第二層為根據(jù)主密鑰生成的數(shù)據(jù)密鑰DK(Data Key)。其中,主密鑰CMK用于對數(shù)據(jù)密鑰DK進行加解密操作和保護,數(shù)據(jù)密鑰DK用于對真實業(yè)務(wù)數(shù)據(jù)進行加解密操作和保護。加密流程和信封加密機制如下:
加密數(shù)據(jù)密鑰DK。
在使用數(shù)據(jù)密鑰DK之前,會用主密鑰CMK加密數(shù)據(jù)密鑰。加密后的數(shù)據(jù)密鑰(非明文)可以安全地與加密的業(yè)務(wù)數(shù)據(jù)一同存儲。這樣即使存儲介質(zhì)被訪問,沒有CMK也無法解密數(shù)據(jù)密鑰。
存儲和讀取加密數(shù)據(jù)。
當(dāng)需要讀取加密數(shù)據(jù)時,首先通過KMS請求解密數(shù)據(jù)密鑰。KMS驗證請求后,返回數(shù)據(jù)密鑰的明文形式,這一過程通常在內(nèi)存中完成,不會存儲在任何存儲介質(zhì)上。然后,使用管理程序在內(nèi)存中的明文數(shù)據(jù)密鑰來解密云盤I/O操作中的數(shù)據(jù)。
整個信封加密過程中,主密鑰的明文不會在KMS托管的密碼機之外進行存儲和使用。同時,數(shù)據(jù)密鑰明文僅會在用戶使用的服務(wù)實例所在的宿主機的內(nèi)存中進行使用,永遠不會以明文形式存儲在任何存儲介質(zhì)上。
更多信息,請參見云產(chǎn)品集成KMS加密概述。
加密密鑰
KMS的默認(rèn)密鑰包含服務(wù)密鑰和主密鑰。ECS默認(rèn)使用服務(wù)密鑰對用戶數(shù)據(jù)進行加密,也支持用戶在KMS上自定義主密鑰對用戶數(shù)據(jù)進行加密。關(guān)于密鑰的更多說明,請參見密鑰服務(wù)概述。
服務(wù)密鑰
您首次在一個地域加密云盤時,系統(tǒng)會自動在當(dāng)前地域KMS中創(chuàng)建一個專為ECS使用的服務(wù)密鑰Default Service CMK(別名為alias/acs/ecs)。每個用戶在每個地域的服務(wù)密鑰是唯一的,您無法管理服務(wù)密鑰的生命周期。服務(wù)密鑰可以幫助您獲得最基本的數(shù)據(jù)保護能力。但是對于高安全要求級別的場景,服務(wù)密鑰可能存在一些密鑰管理上的短板,例如不能自主管理密鑰的生命周期。
主密鑰
您可以選擇自己創(chuàng)建或者上傳主密鑰到KMS,并且管理主密鑰的生命周期。使用主密鑰可以獲得更多的安全能力。您可以禁用或啟用密鑰、通過KMS導(dǎo)入自帶的密鑰等操作進一步增強密鑰生命周期管理能力和控制ECS數(shù)據(jù)加解密的能力。主密鑰還支持密鑰輪轉(zhuǎn)的能力,可以加強密鑰使用的安全性,以提升業(yè)務(wù)數(shù)據(jù)的安全性。禁用密鑰、計劃刪除密鑰等操作,請參見管理密鑰。
重要使用主密鑰創(chuàng)建加密云盤、復(fù)制加密快照或加密鏡像時,不支持非對稱密鑰。更多信息,請參見密鑰管理類型和密鑰規(guī)格。
如何證明數(shù)據(jù)落盤已加密
在云盤加密機制中,您對云盤數(shù)據(jù)是否加密是無感的,您可以按照以下思路來證明數(shù)據(jù)落盤存儲時是加密的。
由于加密云盤關(guān)聯(lián)的KMS加密密鑰失效,導(dǎo)致ECS實例無法重啟,系統(tǒng)盤出現(xiàn)IO hang,云盤無法進行讀寫操作,從而證明用戶數(shù)據(jù)在落盤存儲時是被加密的。
計費說明
KMS為您提供免費的默認(rèn)密鑰(服務(wù)密鑰和主密鑰),默認(rèn)密鑰無需購買KMS實例可直接使用。如果您需要擴展主密鑰、使用憑據(jù)管家能力或為自建應(yīng)用構(gòu)建應(yīng)用層密碼技術(shù)方案,您需要付費購買軟件密鑰管理實例或硬件密鑰管理實例。關(guān)于使用KMS的更多計費信息,請參見產(chǎn)品計費。
使用限制
限制項 | 說明 |
實例規(guī)格 |
|
云盤類型 |
|
主密鑰 |
|
權(quán)限策略 | 對于部分高安全合規(guī)要求的企業(yè),針對企業(yè)賬號下所有RAM子賬號可能要求必須使用加密以保護數(shù)據(jù)的機密性。ECS支持配置自定義權(quán)限策略限制RAM子賬號僅支持創(chuàng)建加密云盤,詳細的策略信息,請參見限制RAM用戶僅支持創(chuàng)建加密云盤。 |
注意事項
加密行為不可逆,一旦創(chuàng)建為加密云盤,無法轉(zhuǎn)換為非加密云盤。
由于刪除、禁用密鑰等操作會導(dǎo)致密鑰失效,密鑰失效后會存在已創(chuàng)建的加密云盤、加密鏡像、加密快照數(shù)據(jù)不可恢復(fù)的風(fēng)險。建議您在刪除、禁用密鑰前,使用禁用密鑰功能,或者自行排查該密鑰是否存在關(guān)聯(lián)使用的云資源,避免密鑰丟失后數(shù)據(jù)不可恢復(fù)。
警告聲明:由用戶自行操作密鑰失效后導(dǎo)致關(guān)聯(lián)的云盤資源相關(guān)數(shù)據(jù)丟失后不可恢復(fù)的風(fēng)險,由用戶自行承擔(dān)責(zé)任。
如何加密云盤
新建ECS實例或云盤時加密云盤
控制臺方式
新建ECS實例
本步驟僅描述創(chuàng)建ECS實例時如何加密系統(tǒng)盤或數(shù)據(jù)盤,其余配置說明,請參見自定義購買實例。
在存儲區(qū)域選擇云盤類型,并配置容量等信息。
選中加密選項,并在下拉列表中選擇一個加密密鑰。
新建云盤
本步驟僅描述創(chuàng)建云盤時如何配置加密選項,其余配置說明,請參見創(chuàng)建空數(shù)據(jù)盤。
在存儲參數(shù)處,選擇云盤類型,并配置容量等信息。
選中加密選項,并在下拉列表中選擇一個加密密鑰。
API方式
新建ECS實例
通過調(diào)用API接口RunInstances創(chuàng)建ECS實例時,設(shè)置系統(tǒng)盤SystemDisk或數(shù)據(jù)盤DataDisk的
Encrypted
值和KMSKeyId
值,來加密系統(tǒng)盤和數(shù)據(jù)盤。新建云盤
通過調(diào)用API接口CreateDisk創(chuàng)建數(shù)據(jù)盤時,設(shè)置
Encrypted
值和KMSKeyId
值,來加密數(shù)據(jù)盤。
將存量非加密盤轉(zhuǎn)換為加密云盤
您可以通過以下幾種方式加密存量系統(tǒng)盤或數(shù)據(jù)盤。
控制臺方式
加密系統(tǒng)盤
為ECS實例創(chuàng)建鏡像。具體操作,請參見使用實例創(chuàng)建自定義鏡像。
將鏡像復(fù)制為加密鏡像。具體操作,請參見復(fù)制鏡像。
基于加密鏡像實現(xiàn)加密系統(tǒng)盤。
使用加密鏡像更換源ECS實例的系統(tǒng)盤,源ECS實例的系統(tǒng)盤會自動加密。具體操作,請參見更換操作系統(tǒng)(系統(tǒng)盤)。
使用加密鏡像重新創(chuàng)建新的ECS實例,新ECS實例的系統(tǒng)盤以及數(shù)據(jù)盤(如果有)會自動加密。具體操作,請參見使用自定義鏡像創(chuàng)建實例。
加密數(shù)據(jù)盤
為數(shù)據(jù)盤創(chuàng)建快照。具體操作,請參見創(chuàng)建快照。
將快照復(fù)制為加密快照。具體操作,請參見復(fù)制快照。
基于加密快照創(chuàng)建新的云盤,云盤數(shù)據(jù)是加密的。具體操作,請參見使用快照創(chuàng)建云盤。
將創(chuàng)建的加密云盤掛載至源ECS實例。具體操作,請參見掛載數(shù)據(jù)盤。
OOS自動編排方案
您可以通過OOS公共模板ACS-ECS-BulkyEncryptSystemDisk實現(xiàn)對多臺ECS實例中的系統(tǒng)盤批量加密。具體操作,請參見通過OOS批量加密系統(tǒng)盤。
系統(tǒng)運維管理 OOS(CloudOps Orchestration Service)是全面、免費的云上自動化運維平臺,可以幫您實現(xiàn)標(biāo)準(zhǔn)化運維任務(wù),從而實踐運維即代碼(Operations as Code)的先進理念。更多信息,請參見什么是系統(tǒng)運維管理。OOS的公共模板說明,請參見公共模板。