本頁面為您介紹 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 透明加密
在左側導覽列單擊 執行個體列表,選擇目的地組群執行個體,進入 叢集執行個體工作台 頁面。
在左側導覽列單擊 安全設定。
在 TDE 透明加密 頁簽中,可查看 TDE 設定列表。
單擊 操作 列下的 開啟加密,開啟 TDE 加密功能。
說明TDE 透明加密功能開啟之後將無法關閉,並且對效能有一定的影響,請謹慎操作。
在彈出框中單擊 確定,設定密鑰類型。
密鑰類型分為服務密鑰和自訂密鑰:
服務密鑰:由 OceanBase 雲資料庫產生和管理的密鑰。
說明目前支援的密鑰類型為 Aliyun_AES_256,Aliyun_SM4,密鑰類型設定後不能修改,不能做類型轉換。
自訂密鑰:採用阿里雲 KMS 服務建立的密鑰,當您購買了阿里雲 KMS 服務時,可到 KMS 管理主控台建立您的自訂密鑰,具體操作參見 建立密鑰。
說明目前支援的密鑰類型為 Aliyun_AES_256,Aliyun_SM4,密鑰類型設定後不能修改,不能做類型轉換。
雲產品將觸發建立服務角色 AliyunServiceRoleForOceanBase(如已建立,不會重複建立),便於您加密 OceanBase 雲端服務資料。
選擇您的密鑰類型後,單擊 確定,完成 TDE 加密功能的開啟。
建立資料表空間加密
單擊 操作 列下的 建立資料表空間。
在 建立資料表空間 彈窗中填寫 加密資料表空間名 和 密碼編譯演算法。
單擊 確定,建立資料表空間。
當您完成加密資料表空間的建立之後,還可通過資料研發功能或其他命令列工具進行 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;
說明開啟 TDE 之後,在當前頁面建立加密資料表空間,再進行建立加密表的 DDL 操作才能進行資料加密。建立加密表 DDL:
CREATE TABLE t1 (id int,id2 int) TABLESPACE sectest_ts1;
若有歷史資料表加入表加密空間,加入後請進行一次全量合并,實現資料的持久化。
單擊某個租戶前面的“+”號,可以查看該租戶下所有的加密資料表空間資訊,包括加密資料表空間名、密碼編譯演算法和建立時間。
單擊加密資料表空間名,可以查看加密表的狀態、加密進度等資訊。加密進度表示當前資料表中,已完成加密的資料區塊百分比。
對歷史資料表執行全量合并
對歷史資料表執行全量合并的操作步驟如下,以已有表 t1
為例:
將參數
progressive_merge_num
的值設定為1
。obclient> ALTER TABLE t1 set progressive_merge_num = 1;
在叢集執行個體工作台頁面手動觸發一次資料合併,詳情請參見 資料合併。
待資料合併完成後,再將參數
progressive_merge_num
的值設定為0
。obclient> ALTER TABLE t1 set progressive_merge_num = 0;