このトピックでは、透過データ暗号化(TDE)機能の使用方法について説明します。 TDE 機能を有効にすると、無効にすることはできません。 慎重に行ってください。
背景情報
ApsaraDB for OceanBase は、ストレージとリモートプロシージャコール(RPC)に TDE 機能を提供します。
ストレージの暗号化は、ディスク上のデータを保護します。
RPC 暗号化は、OceanBase サーバノード間の通信を保護します。
TDE 機能は、ApsaraDB for OceanBase V3.2.3、V3.2.4、および V4.2.1 で提供されています。
現在、TDE はサービスキーとカスタムキーをサポートしています。
サービスキー
サービスキーは、ApsaraDB for OceanBase によって生成および管理されます。
カスタムキー
カスタムキーは、Alibaba Cloud Key Management Service (KMS) を使用して作成されます。Alibaba Cloud KMS を購入すると、KMS コンソールでカスタムキーを作成できます。詳細については、「CMK の作成」をご参照ください。
制限事項
サービスキーの制限事項
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 キーのみをサポートします。キータイプを指定すると、変更したり、このタイプのキーを別のタイプのキーに変換したりすることはできません。
現在、カスタムキーは ApsaraDB for OceanBase V2.2.77 以降でのみサポートされています。
クラウドプロダクトごとに一意のサービロールが作成されます。 ApsaraDB for OceanBase の場合、ApsaraDB for OceanBase のデータを暗号化するために AliyunServiceRoleForOceanBase ロールが作成されます。 Alibaba Cloud アカウントまたは AliyunSTSAssumeRoleAccess 権限を持つアカウントを使用する必要があります。
KMS コンソールでキーを無効にしたり、キーの削除タスクをスケジュールしたり、キーを削除したりしないでください。そうしないと、TDE を有効にできません。
KMS コンソールでキーを作成した後、
oceanbase:encryption: trueタグをキーに追加します。KMS の HSM バージョンを選択する必要があります。
TDE を有効にしても更新パフォーマンスには影響しませんが、他の操作ではわずかなパフォーマンス低下が発生する可能性があります。詳細については、「TDE テストレポート」をご参照ください。
手順
左側のナビゲーションウィンドウで、[インスタンス] をクリックし、ターゲットクラスタインスタンスを選択して [クラスタインスタンスワークスペース] ページに移動します。
左側のナビゲーションウィンドウで、[セキュリティ設定] をクリックします。
[TDE] タブで、TDE 設定を構成します。

[操作] 列の [TDE を有効にする] をクリックします。
説明TDE 機能を有効にすると、データベースのパフォーマンスに影響し、無効にすることはできません。 慎重に行ってください。
表示されるダイアログボックスで、[OK] をクリックしてキータイプを指定します。
サービスキーとカスタムキーがサポートされています。
サービスキーは、ApsaraDB for OceanBase によって生成および管理されます。
説明現在、キータイプ Aliyun_AES_256 および Aliyun_SM4 がサポートされています。キータイプを指定すると、変更したり、このタイプのキーを別のタイプのキーに変換したりすることはできません。
カスタムキーは Alibaba Cloud KMS を使用して作成されます。Alibaba Cloud KMS を購入すると、KMS コンソールでカスタムキーを作成できます。詳細については、「CMK の作成」をご参照ください。
説明現在、キータイプ Aliyun_AES_256 および Aliyun_SM4 がサポートされています。キータイプを指定すると、変更したり、このタイプのキーを別のタイプのキーに変換したりすることはできません。
クラウドプロダクトごとに一意のサービロールが作成されます。 ApsaraDB for OceanBase の場合、ApsaraDB for OceanBase のデータを暗号化するために AliyunServiceRoleForOceanBase ロールが作成されます。
キータイプを指定した後、[OK] をクリックします。
暗号化された表領域の作成
[操作] 列の [表領域の作成] をクリックします。
[表領域の作成] ダイアログボックスで、[暗号化された表領域名] と [暗号化アルゴリズム] を指定します。
[OK] をクリックします。
暗号化された表領域を作成した後、データ R&D ツールまたは他の CLI ツールを使用して 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 を有効にし、TDE タブで表領域を作成し、DDL 操作を実行して暗号化された表を作成する必要があります。 暗号化された表を作成するための DDL 文の例:
obclient> 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;