透明資料加密TDE(Transparent Data Encryption)可對資料檔案執行即時I/O加密和解密,資料在寫入磁碟之前進行加密,從磁碟讀入記憶體時進行解密。TDE不會增加資料檔案的大小,您無需更改任何應用程式,即可使用TDE功能。為提高資料安全性,您可以通過控制台啟用TDE功能,對執行個體資料進行加密。
前提條件
-
執行個體的儲存類型與架構需滿足以下條件:
-
本地碟執行個體:支援複本集和分區叢集,資料庫版本為4.0或4.2版本。
-
雲端硬碟執行個體:支援複本集,資料庫版本為4.2至8.3(全版本)。
-
-
執行個體的儲存引擎為WiredTiger。
-
已開通KMS。
如果您的執行個體不滿足執行個體架構或儲存引擎的條件,您可以通過其他方式變更,詳情請參見變更執行個體配置概覽。
影響
-
開通TDE功能的過程中,執行個體會重啟一次並出現串連閃斷,閃斷期間不會導致資料丟失,已提交的寫入不受影響,建議您在業務低峰期操作並確保應用有重連機制。
-
開通TDE功能後,會增加執行個體的CPU使用率。
-
加密後的集合不再支援通過物理備份恢複至自建資料庫。如果您需要將加密後的集合恢複到自建資料庫,您可以通過邏輯備份恢複至自建資料庫,具體請參見通過邏輯備份恢複至自建資料庫。
注意事項
-
TDE功能開通後無法關閉。
-
已開通TDE功能的執行個體釋放後,不支援從資源回收筒中恢複。
-
當前TDE功能的開通粒度為執行個體,僅支援對集合進行加密。如果您需要對欄位進行加密,請參見手動欄位級加密(僅支援MongoDB 4.2版本執行個體)。
說明如果業務上有特殊需求,您可以在建立集合時,指定該集合不被加密。如何設定,請參見設定指定的集合不被加密。
-
TDE功能開通後,僅加密新建立的集合,已有的集合不會被加密。
-
TDE功能所使用的密鑰,由Key Management Service(Key Management Service)統一產生和管理,ApsaraDB for MongoDB不提供加密所需的密鑰和認證。Key Management Service的更多資訊,請參見什麼是Key Management Service。
-
執行個體開通TDE加密後,不支援更換密鑰。如需更換密鑰,您可以使用DTS將資料移轉到使用新密鑰的新執行個體上,如何遷移資料,請參見ApsaraDB for MongoDB執行個體間遷移。
-
開啟TDE後,由於加密金鑰綁定在特定可用性區域,通過按備份點或按時間點恢複至新執行個體時,僅支援恢複到密鑰所在的可用性區域,暫不支援跨可用性區域恢複。
-
請確保TDE所使用的KMS密鑰始終處於可用狀態。一旦該密鑰被禁用、刪除或欠費,執行個體將被鎖定並變為不可用,且已有備份也將無法用於恢複。
操作步驟
-
訪問MongoDB複本集執行個體列表或MongoDB分區叢集執行個體列表,在上方選擇資源群組和地區,然後單擊目標執行個體ID。
-
在目標執行個體頁面的左側導覽列,單擊。
-
開啟TDE狀態:右側的開關。
-
在彈出的開通TDE對話方塊中,根據實際需要選擇產生方式。
-
使用自動產生秘鑰:使用系統自動產生的密鑰。
-
使用自訂秘鑰:根據業務需要,在下拉式清單中選擇密鑰。如果下拉式清單中不存在目標密鑰,您可以先建立密鑰,然後進行選擇。建立方法請參見建立密鑰。
-
-
單擊確定。
執行個體進入TDE修改中狀態,當轉變為運行中狀態時,代表操作完成。
查看加密金鑰資訊
開啟TDE後,如需查看執行個體加密金鑰的資訊(例如密鑰所在的可用性區域),可調用查詢MongoDB執行個體的某個密鑰的詳情介面查詢,控制台暫不支援查看密鑰詳情。
設定指定的集合不被加密
開啟TDE加密後,所有新建立的集合都會被加密。如果業務上有特殊需求,您可以在建立集合時,指定該集合不被加密。
-
通過Mongo Shell串連資料庫。如何串連,請參見串連複本集執行個體或串連分區叢集執行個體。
-
執行如下命令建立集合,指定該集合不被加密。
-
文法:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })說明命令中的
collection_name為集合名。 -
樣本:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
-
TDE與雲端硬碟加密如何選擇
ApsaraDB for MongoDB提供TDE和雲端硬碟加密兩種待用資料加密方式,均可滿足三級等保對儲存保密性的要求。兩者防護的都是資料在儲存介質上被非法擷取的風險,請根據要防護的威脅情境選擇。
|
威脅情境 |
雲端硬碟加密 |
TDE |
|
物理介質泄漏時,資料檔案 |
防護 |
防護 |
|
物理介質泄漏時,OS日誌等非資料檔案 |
防護(整盤加密) |
不防護(僅加密資料檔案) |
|
物理備份檔案被匯出後泄漏 |
視存放位置(雲上快照延續加密) |
防護(物理備份為密文,無KMS密鑰無法解密) |
|
持資料庫帳號者訪問資料 |
不防護 |
不防護 |
|
資料轉送被竊聽 |
不防護 |
不防護 |
靜態加密不能替代存取控制和傳輸加密。防止合法帳號越權訪問,請參見MongoDB資料庫帳號許可權管理並配合開通審計日誌;防止傳輸鏈路被竊聽,請參見設定SSL加密。
選型建議:
-
要讓物理備份或匯出檔案也保持密文,選擇TDE。
-
要讓整盤(含OS日誌等所有檔案)都加密,選擇雲端硬碟加密。
-
若已開啟雲端硬碟加密,其防護已覆蓋絕大多數介質級泄露情境,通常無需再疊加TDE。