本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
云盤加密是指通過加密算法保護存儲在云盤中的數據免受未經授權的訪問和泄露。在數據被寫入云盤時對其進行加密,并確保數據在未授權情況下無法被訪問或解密,即使云盤數據泄露也無法解密,并在授權用戶讀取云盤數據時自動解密,從而確保云盤數據的機密性和完整性。本文介紹云盤加密原理、使用限制以及如何實現云盤加密等。
加密概述
加密原理
在ECS的加密過程中,云盤、鏡像和快照的加密都是采用行業標準的AES-256加密算法,并且通過密鑰管理服務KMS(Key Management Service)進行加密。加密密鑰采用雙層設計,并通過信封加密的機制實現對數據的加密,第一層為用戶的主密鑰CMK(Customer Master Key),第二層為根據主密鑰生成的數據密鑰DK(Data Key)。其中,主密鑰CMK用于對數據密鑰DK進行加解密操作和保護,數據密鑰DK用于對真實業務數據進行加解密操作和保護。加密流程和信封加密機制如下:
加密數據密鑰DK。
在使用數據密鑰DK之前,會用主密鑰CMK加密數據密鑰。加密后的數據密鑰(非明文)可以安全地與加密的業務數據一同存儲。這樣即使存儲介質被訪問,沒有CMK也無法解密數據密鑰。
存儲和讀取加密數據。
當需要讀取加密數據時,首先通過KMS請求解密數據密鑰。KMS驗證請求后,返回數據密鑰的明文形式,這一過程通常在內存中完成,不會存儲在任何存儲介質上。然后,使用管理程序在內存中的明文數據密鑰來解密云盤I/O操作中的數據。
整個信封加密過程中,主密鑰的明文不會在KMS托管的密碼機之外進行存儲和使用。同時,數據密鑰明文僅會在用戶使用的服務實例所在的宿主機的內存中進行使用,永遠不會以明文形式存儲在任何存儲介質上。
更多信息,請參見云產品集成KMS加密概述。
加密密鑰
密鑰類型
KMS提供默認密鑰(服務密鑰)、默認密鑰(主密鑰)、軟件密鑰等多種密鑰類型供云產品使用。當您希望對ECS實例中的某些資源進行加密時,可以選擇使用服務密鑰進行加密,也可以選擇使用自行創建或管理的用戶主密鑰進行加密。關于密鑰類型的更多說明,請參見密鑰服務概述。
服務密鑰
您首次在一個地域加密云盤時,系統會自動在當前地域KMS中創建一個專為ECS使用的服務密鑰。每個用戶在每個地域的服務密鑰是唯一的,由云產品創建和管理。服務密鑰可以幫助您獲得最基本的數據保護能力,但是對于高安全要求級別的場景,服務密鑰可能存在一些密鑰管理上的短板,例如不能自主管理密鑰的生命周期。
ECS使用的服務密鑰別名為:
華北5(呼和浩特)、華北6(烏蘭察布)、華南2(河源)、西南1(成都)4個地域:alias/acs/ecs
其他地域:Default Service CMK
主密鑰
您可以選擇自己創建或者上傳主密鑰到KMS,并且管理主密鑰的生命周期。使用主密鑰可以獲得更多的安全能力。您可以禁用或啟用密鑰、通過KMS導入自帶的密鑰等操作進一步增強密鑰生命周期管理能力和控制ECS數據加解密的能力。創建密鑰、禁用密鑰等操作,請參見管理密鑰。
密鑰規格
KMS支持常見的對稱密鑰規格和非對稱密鑰規格,以保證數據加密的安全性。使用主密鑰創建加密云盤、復制加密快照或加密鏡像時,僅支持使用對稱密鑰規格的密鑰。更多信息,請參見密鑰管理類型和密鑰規格。
密鑰輪轉
在ECS的加密最佳實踐中建議不要廣泛重復使用加密密鑰,建議您使用KMS的密鑰輪轉功能來加強密鑰使用的安全性。
啟用密鑰輪轉只會對新的加密資源(云盤、快照或鏡像)使用新的密鑰材料進行加密,存量的加密資源不會受到影響。
僅由KMS生成密鑰材料的對稱密鑰支持輪轉,自行導入密鑰材料的密鑰(BYOK)不支持輪轉。
更多信息,請參見密鑰輪轉。
如何證明數據落盤已加密
在云盤加密機制中,您對云盤數據是否加密是無感的,您可以按照以下思路來證明數據落盤存儲時是加密的。
由于加密云盤關聯的KMS加密密鑰失效,導致ECS實例無法重啟,系統盤出現IO hang,云盤無法進行讀寫操作,從而證明用戶數據在落盤存儲時是被加密的。
計費說明
KMS為您提供免費的默認密鑰(服務密鑰和主密鑰),默認密鑰無需購買KMS實例可直接使用。如果您需要擴展主密鑰、使用憑據管家能力或為自建應用構建應用層密碼技術方案,您需要付費購買軟件密鑰管理實例或硬件密鑰管理實例。關于使用KMS的更多計費信息,請參見產品計費。
使用限制
限制項 | 說明 |
實例規格 |
|
云盤類型 |
|
主密鑰 |
|
權限策略 | 對于部分高安全合規要求的企業,針對企業賬號下所有RAM子賬號可能要求必須使用加密以保護數據的機密性。ECS支持配置自定義權限策略限制RAM子賬號僅支持創建加密云盤,詳細的策略信息,請參見限制RAM用戶僅支持創建加密云盤。 |
注意事項
加密行為不可逆,一旦創建為加密云盤,無法轉換為非加密云盤。
由于刪除、禁用密鑰等操作會導致密鑰失效,密鑰失效后會存在已創建的加密云盤、加密鏡像、加密快照數據不可恢復的風險。建議您在刪除、禁用密鑰前,使用禁用密鑰功能,或者自行排查該密鑰是否存在關聯使用的云資源,避免密鑰丟失后數據不可恢復。
警告聲明:由用戶自行操作密鑰失效后導致關聯的云盤資源相關數據丟失后不可恢復的風險,由用戶自行承擔責任。
如何加密云盤
新建ECS實例或云盤時加密云盤
控制臺方式
API方式
新建ECS實例
通過調用API接口RunInstances創建ECS實例時,設置系統盤SystemDisk或數據盤DataDisk的
Encrypted
值和KMSKeyId
值,來加密系統盤和數據盤。新建云盤
通過調用API接口CreateDisk創建數據盤時,設置
Encrypted
值和KMSKeyId
值,來加密數據盤。
將存量非加密盤轉換為加密云盤
您可以通過以下幾種方式加密存量系統盤或數據盤。
控制臺方式
加密系統盤
為ECS實例創建鏡像。具體操作,請參見使用實例創建自定義鏡像。
將鏡像復制為加密鏡像。具體操作,請參見復制自定義鏡像。
基于加密鏡像實現加密系統盤。
使用加密鏡像更換源ECS實例的系統盤,源ECS實例的系統盤會自動加密。具體操作,請參見更換操作系統(系統盤)。
使用加密鏡像重新創建新的ECS實例,新ECS實例的系統盤以及數據盤(如果有)會自動加密。具體操作,請參見使用自定義鏡像創建實例。
加密數據盤
OOS自動編排方案
您可以通過OOS公共模板ACS-ECS-BulkyEncryptSystemDisk實現對多臺ECS實例中的系統盤批量加密。具體操作,請參見通過OOS批量加密系統盤。