透明資料加密TDE(Transparent Data Encryption)可對資料檔案執行即時I/O加密和解密,資料在寫入磁碟之前進行加密,從磁碟讀入記憶體時進行解密。TDE不會增加資料檔案的大小,您無需更改任何應用程式,即可使用TDE功能。為提高資料安全性,您可以通過控制台啟用TDE功能,對執行個體資料進行加密。
前提條件
執行個體架構為複本集執行個體或分區叢集執行個體。
執行個體的儲存引擎為WiredTiger。
執行個體的儲存類型為本地碟版。
執行個體的資料庫版本為4.0或4.2版本。如果執行個體資料庫版本過低,您可以升級資料庫大版本。
說明正式開通TDE功能前,您可以建立一個4.0或4.2版本的隨用隨付執行個體來測試應用與版本相容性,測試完畢可釋放該執行個體。
如果您的執行個體不滿足執行個體架構或儲存引擎的條件,您可以通過其他方式變更,詳情請參見變更配置方案概覽。
影響
開通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執行個體間遷移。
操作步驟
訪問MongoDB複本集執行個體列表或MongoDB分區叢集執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在目標執行個體頁面的左側導覽列,單擊 。
開啟TDE狀態:右側的開關。
在彈出的開通TDE對話方塊中,根據實際需要選擇產生方式。
使用自動產生秘鑰:使用系統自動產生的密鑰。
使用自訂秘鑰:根據業務需要,在下拉式清單中選擇密鑰。如果下拉式清單中不存在目標密鑰,您可以先建立密鑰,然後進行選擇。建立方法請參見建立密鑰。
單擊確定。
執行個體進入TDE修改中狀態,當轉變為運行中狀態時,代表操作完成。
設定指定的集合不被加密
開啟TDE加密後,所有新建立的集合都會被加密。如果業務上有特殊需求,您可以在建立集合時,指定該集合不被加密。
通過Mongo Shell串連資料庫。如何串連,請參見串連複本集執行個體或串連分區叢集執行個體。
執行如下命令建立集合,指定該集合不被加密。
文法:
db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
說明命令中的
collection_name
為集合名。樣本:
db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })