透明数据加密

PolarDB-X Operator 从 1.6.0 版本开始支持透明数据加密功能。本文介绍如何对 PolarDB-X 开启透明数据加密功能(TDE)。

前置条件

  1. PolarDB-X Operator 升级到 1.6.0 及以上版本

开启TDE

创建开启TDE功能的PolarDB-X实例

参照如下示例创建开启TDE功能的PolarDB-X实例

apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
  name: polardb-x
spec:
  topology:
    nodes:
      cn:
        template:
          image: polardbx/polardbx-sql:v2.4.0_5.4.19
      dn:
        template:
          image: polardbx/polardbx-engine:v2.4.0_8.4.19
  tde:
    enable: true

参数说明:

  • tde.enable: 是否开启TDE功能

原有PolarDB-X实例开启TDE功能

注意:该功能需要 polardbx-operator v1.6.0 及以上版本创建的集群才支持。

我们可以使用 kubectl edit 或是 kubectl patch 的方式修改 .spec.tde.enable 下的字段,这里演示 kubectl patch的方式:

kubectl patch --type='merge' pxc polardb-x --type='json' -p='[{"op": "replace", "path": "/spec/tde/enable", "value": true}]'

稍后观察集群状态,PHASE会进入 TdeOpening 状态,表明正在开启TDE功能:

kubectl get pxc polardbx-test
NAME            GMS   CN    DN    CDC   PHASE      DISK   AGE
polardb-x       1/1   1/1   0/1   1/1   TdeOpening 6.2Gi  93s

PHASE重新变为 Running时,TDE功能已经开启。

TDE使用说明

检查TDE是否启动

进入DN pod上的mysql后执行 show plugins,检查是否存在keyring_file相关插件。 plugin

查看主密钥

主密钥位置在 keyring_file_data 指定。刚创建实例时主密钥不存在,在执行过一次TDE开启后密钥才生成 keyring

开启TDE加密

执行如下语句开启对表的TDE加密

ALTER TABLE table_name ENCRYPTION='Y';

查看表的加密情况如下图所示: tdeopen.png

关闭TDE加密

执行如下语句关闭对表的TDE加密

ALTER TABLE table_name ENCRYPTION='N';

查看表的加密情况如下图所示: tdecolse.png

注意事项

  • TDE功能开启后不允许关闭。
  • TDE的keyring默认存储在 /data/mysql/mysql-keyring/keyring 路径下,路径无法修改。

results matching ""

    No results matching ""