全部產品
Search
文件中心

ApsaraDB for OceanBase:TDE 透明加密

更新時間:Jul 01, 2024

本頁面為您介紹 TDE(Transparent Data Encryption) 透明加密的操作步驟。TDE 透明加密功能開啟之後將無法關閉,請謹慎操作。

背景資訊

OceanBase 支援 TDE(Transparent Data Encryption)透明加密,可對儲存和 RPC 進行加密。

  • 儲存的加密,即磁碟的加密。

  • RPC 的加密,主要是 OBServer 之間的通訊的加密。

說明

OceanBase 資料庫 V3.2.3、V3.2.4 和 V4.2.1 版本支援 TDE 加密功能。

TDE 透明加密功能當前支援服務密鑰和自訂密鑰兩種方式。

服務密鑰

由 OceanBase 雲資料庫產生和管理的密鑰。

自訂密鑰

採用阿里雲 KMS 服務建立的密鑰,當您購買了阿里雲 KMS 服務時,可到 KMS 管理主控台建立您的自訂密鑰,具體操作參見 建立密鑰

使用限制

  • 服務密鑰使用限制

    • TDE 加密功能開啟後將不能關閉。

    • Oracle 租戶支援的密鑰類型包括 AES-256,AES-128,AES-192,SM4-CBC,MySQL 租戶支援通行金鑰類型為 AES-256,設定後不能修改,不能做類型轉換。

  • 自訂密鑰使用限制

    • TDE 加密功能開啟後將不能關閉。

    • Oracle租戶支援的密鑰類型包括 AES-256,AES-128,AES-192,SM4-CBC,MySQL 租戶支援通行金鑰類型為 AES-256,密鑰類型設定後不能修改,不能做類型轉換。

    • 自訂密鑰目前支援 OceanBase 資料庫 V2.2.77 及以上版本。

    • 雲產品將觸發建立服務角色 AliyunServiceRoleForOceanBase(如已建立,不會重複建立),便於您加密 OceanBase 雲端服務資料。請確保您使用的帳號為主帳號,或者具有 AliyunSTSAssumeRoleAccess 許可權的帳號。

    • 請勿在 KMS 平台進行禁用密鑰、設定密鑰計劃刪除或者刪除密鑰的操作,此類操作將導致 TDE 加密功能無法正常開啟。

    • 當您在 KMS 管理平台建立完密鑰後,需要給密鑰添加 oceanbase:encryption: true 標籤。

    • KMS 只能選擇 HSM 的版本。

開啟 TDE 透明加密

  1. 在左側導覽列單擊 執行個體列表,選擇目的地組群執行個體,進入 叢集執行個體工作台 頁面。

  2. 在左側導覽列單擊 安全設定

  3. TDE 透明加密 頁簽中,可查看 TDE 設定列表。1

    1. 單擊 操作 列下的 開啟加密,開啟 TDE 加密功能。

      說明

      TDE 透明加密功能開啟之後將無法關閉,並且對效能有一定的影響,請謹慎操作。

    2. 在彈出框中單擊 確定,設定密鑰類型。

      密鑰類型分為服務密鑰和自訂密鑰:

      • 服務密鑰:由 OceanBase 雲資料庫產生和管理的密鑰。

        說明

        目前支援的密鑰類型為 Aliyun_AES_256,Aliyun_SM4,密鑰類型設定後不能修改,不能做類型轉換。

      • 自訂密鑰:採用阿里雲 KMS 服務建立的密鑰,當您購買了阿里雲 KMS 服務時,可到 KMS 管理主控台建立您的自訂密鑰,具體操作參見 建立密鑰

        說明
        1. 目前支援的密鑰類型為 Aliyun_AES_256,Aliyun_SM4,密鑰類型設定後不能修改,不能做類型轉換。

        2. 雲產品將觸發建立服務角色 AliyunServiceRoleForOceanBase(如已建立,不會重複建立),便於您加密 OceanBase 雲端服務資料。

    3. 選擇您的密鑰類型後,單擊 確定,完成 TDE 加密功能的開啟。

建立資料表空間加密

  1. 單擊 操作 列下的 建立資料表空間

  2. 建立資料表空間 彈窗中填寫 加密資料表空間名密碼編譯演算法

  3. 單擊 確定,建立資料表空間。

  4. 當您完成加密資料表空間的建立之後,還可通過資料研發功能或其他命令列工具進行 DDL 操作,建立表並將表指定到加密的資料表空間,樣本如下:

    • Oracle 租戶

      create table table_name (column1 int, column2 int) tablespace tablespace_name;
    • MySQL 租戶

      create table table_name (column1 int, column2 int) tablespace tablespace_name;
    說明
    1. 開啟 TDE 之後,在當前頁面建立加密資料表空間,再進行建立加密表的 DDL 操作才能進行資料加密。建立加密表 DDL:CREATE TABLE t1 (id int,id2 int) TABLESPACE sectest_ts1;

    2. 若有歷史資料表加入表加密空間,加入後請進行一次全量合并,實現資料的持久化。

  5. 單擊某個租戶前面的“+”號,可以查看該租戶下所有的加密資料表空間資訊,包括加密資料表空間名、密碼編譯演算法和建立時間。

    TDE透明加密3

  6. 單擊加密資料表空間名,可以查看加密表的狀態、加密進度等資訊。加密進度表示當前資料表中,已完成加密的資料區塊百分比。

    TDE透明加密2

對歷史資料表執行全量合并

對歷史資料表執行全量合并的操作步驟如下,以已有表 t1 為例:

  1. 將參數 progressive_merge_num 的值設定為 1

    obclient> ALTER TABLE t1 set progressive_merge_num = 1;
  2. 在叢集執行個體工作台頁面手動觸發一次資料合併,詳情請參見 資料合併

  3. 待資料合併完成後,再將參數 progressive_merge_num 的值設定為 0

    obclient> ALTER TABLE t1 set progressive_merge_num = 0;