信封加密
更新時間 2025-08-28 14:51:31
最近更新時間: 2025-08-28 14:51:31
分享文章
本文為您介紹信封加密場景中,如何通過用戶主密鑰、數據密鑰實現數據離線加密。
信封加密(Envelope Encryption)是一種應對海量數據的高性能加解密方案。這種技術不再使用用戶主密鑰(CMK)直接加密和解密數據,而是通過生成加密數據的數據密鑰(DEK),將其封入信封中(即通過CMK加密)存儲、傳遞和使用,由KMS確保數據密鑰的隨機性和安全性。
實際使用時,用戶無需將大量業務數據上傳至KMS服務端,直接通過離線的數據密鑰在本地實現加解密,有效避免安全隱患,保證了業務加密性能的要求。
場景示意圖

操作流程
信封加密
- 通過KMS控制臺或者調用CreateKey接口,創建一個用戶主密鑰(CMK)。
- 調用GenerateDataKey接口創建一個數據密鑰。KMS會返回一個明文的數據密鑰和一個經用戶主密鑰(CMK)加密的密文數據密鑰。
- 使用明文的數據密鑰加密本地文件,產生密文文件,然后銷毀內存中的明文數據密鑰。
- 用戶將密文數據密鑰和密文文件一同存儲到持久化存儲設備或服務中。
信封解密
- 從本地文件中讀取密文數據密鑰。
- 調用KMS服務的Decrypt接口,將密文數據解密為明文數據密鑰。
- 用明文數據密鑰為本地密文文件解密,再銷毀內存中的明文密鑰。
相關API
您可以調用以下KMS API,實現對本地數據的加密或解密操作。
| API名稱 | 說明 |
|---|---|
| createKey | 創建用戶主密鑰(CMK) |
| generateDataKey | 生成信封加密的數據密鑰,返回數據密鑰的明文和經過指定用戶主密鑰加密的密文 |
| decrypt | 解密由generateDataKey接口生成的數據密鑰密文,不需要指定CMK |