全部產品
Search
文件中心

Key Management Service:服務端整合加密概述

更新時間:Jul 06, 2024

阿里雲為您提供雲產品落盤儲存Data Encryption Service,並統一使用Key Management Service(KMS)進行密鑰管理。阿里雲的儲存加密功能提供了256位密鑰的儲存加密強度(AES256),滿足敏感性資料的加密儲存需求。

雲產品和KMS在服務端的整合為您帶來了如下收益:
  • 增加雲上資料的安全和隱私

    通過使用您在KMS中管理的密鑰,雲產品可以加密任何歸屬於您的資料。這些資料既可以是您可以直接存取的資料,也可以是您無法直接存取的雲產品內部資料(例如資料庫引擎產生的檔案),從而為您提供對雲上資料更大的控制權,保證資料的安全性和隱私性。

  • 降低自研資料加密帶來的研發成本
    自研資料加密往往會帶來如下研發成本:
    • 需要考慮合理的密鑰階層和對應的資料劃分方式,以平衡加密效能和安全性
    • 需要考慮密鑰輪轉、資料重加密
    • 需要掌握密碼學技術,保證密碼編譯演算法的健壯性、安全性以及防篡改能力等
    • 需要考慮自研系統的工程健壯性和可靠性,以確保資料持久性
    雲端服務端整合加密為您考慮和解決了所有這些複雜的工程和安全問題,降低了研發成本。

選擇合適的密鑰

您可以根據資料保護需求,選擇託管在KMS中的不同類型密鑰用於服務端加密:

  • 服務託管的密鑰

    如果您介意密鑰管理帶來的開銷,雲產品可以為您在KMS中託管一個用於服務端加密的預設密鑰,稱為服務密鑰。服務密鑰由對應雲產品管理,您對雲產品使用此服務密鑰的授權是隱式的。通過Action Trail服務,您可以對雲產品使用服務密鑰的情況進行審計。

    為了方便使用者識別,服務密鑰的Creator屬性為對應雲產品的代碼,同時服務密鑰被關聯了特殊的別名,格式為acs/<雲產品代碼>。例如,Object Storage Service服務OSS為使用者建立的服務密鑰,Creator屬性為OSS,同時被關聯了別名acs/oss。

  • 使用者託管的密鑰

    您可以選擇自己託管的密鑰進行雲產品服務端加密,從而擷取對資料加密行為更大的控制權。由於雲產品並不是密鑰託管者,對密鑰的使用需要獲得您的顯式授權。RAM服務是雲產品和KMS之間的許可權鑒別仲裁者,您通過RAM服務配置權限原則,允許或者拒絕雲產品使用特定的主要金鑰,雲產品訪問KMS時,KMS向RAM服務驗證雲產品是否具備使用特定主要金鑰的許可權。

    您除了可以讓KMS產生密鑰,還可以通過匯入內建密鑰(BYOK)的方式,將線下的密鑰材料安全的匯入KMS的主要金鑰,以獲得對密鑰的更大控制權。例如,您並不可以立即刪除KMS產生的密鑰材料,但是可以立即刪除匯入到KMS中的密鑰材料。使用內建密鑰將產生額外的管理成本,需謹慎使用,詳情請參見匯入密鑰材料

雲產品加密的方式

不同產品基於業務形態和客戶需求,其加密的具體設計略有不同。通常,儲存加密中密鑰階層會至少分為兩層,並通過信封加密的機制實現對資料的加密。

第一層為KMS中的使用者主要金鑰(CMK),第二層為資料密鑰(DK)。CMK對DK進行加解密操作和保護,DK對業務資料進行加解密操作和保護。在業務資料落盤儲存時,雲產品會將DK的密文(由KMS使用CMK加密)與業務資料的密文(由雲產品使用DK加密)一同寫入持久化儲存介質中。信封加密中的“信封”是指在概念上DK的密文和業務資料的密文被打包在一個“信封”(Envelope)中。在讀取加密資料時,DK的密文也會一同被讀取,並先於業務資料進行解密。只有在DK被解密後,密文的業務資料才能夠被正常解密讀取。

在信封加密機制中,CMK受KMS提供的密鑰管理基礎設施的保護。雲產品必須通過恰當的使用者授權,才可以使用對應的主要金鑰來產生DK,用於業務資料的加密,也只有通過使用者授權,才可以使用對應的主要金鑰來解密DK的密文,用於業務資料的解密。DK的明文僅會在您使用的雲產品服務執行個體所在的宿主機的記憶體中使用,不會以明文形式儲存在永久介質上。