全部產品
Search
文件中心

ApsaraDB for MongoDB:設定透明資料加密TDE

更新時間:Jun 19, 2024

透明資料加密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執行個體間遷移

操作步驟

  1. 訪問MongoDB複本集執行個體列表MongoDB分區叢集執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在目標執行個體頁面的左側導覽列,單擊數據安全性 > TDE

  3. 開啟TDE狀態:右側的開關。

  4. 在彈出的開通TDE對話方塊中,根據實際需要選擇產生方式。

    • 使用自動產生秘鑰:使用系統自動產生的密鑰。

    • 使用自訂秘鑰:根據業務需要,在下拉式清單中選擇密鑰。如果下拉式清單中不存在目標密鑰,您可以先建立密鑰,然後進行選擇。建立方法請參見建立密鑰

  5. 單擊確定

    執行個體進入TDE修改中狀態,當轉變為運行中狀態時,代表操作完成。

設定指定的集合不被加密

開啟TDE加密後,所有新建立的集合都會被加密。如果業務上有特殊需求,您可以在建立集合時,指定該集合不被加密。

  1. 通過Mongo Shell串連資料庫。如何串連,請參見串連複本集執行個體串連分區叢集執行個體

  2. 執行如下命令建立集合,指定該集合不被加密。

    • 文法:

      db.createCollection("<collection_name>",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })
      說明

      命令中的collection_name為集合名。

    • 樣本:

      db.createCollection("customer",{ storageEngine: { wiredTiger: { configString: "encryption=(name=none)" } } })