透明数据加密(TDE)

注意!
YMatrix 数据库从 v6.5.0 版本开始支持透明数据加密能力。用户可以在部署数据库集群时选择开启或关闭此功能,一旦数据库集群在部署后,其透明数据加密功能的状态不可再改变。

透明数据加密(Transparent Data Encryption,缩写 TDE)是一种用于保护数据库静态数据(即存储在磁盘上的数据)不被未经授权访问的技术。它通过在数据库层对数据文件进行自动加密与解密,使得应用程序和用户在正常使用数据库时无需修改即可透明地读写加密数据。

加密方式

透明数据加密使用 master key 来进行加密和解密。YMatrix 提供 KMIP 协议的外部 KMS 管理 master key 或 本地文件管理 master key 两种部署方式。

目前透明数据加密仅支持 HEAP 数据表和 MARS3 数据表的数据文件。

TDE 的使用

部署前配置

在部署数据库时,若要打开透明数据加密功能需进行以下操作。

  1. 在部署前选择合适的 master key 的管理方式
  2. 在将要部署数据库的集群的所有机器上准备 master_key.tomlmaster_pub.pem 文件。其中,master_key.toml 用于配置使用 master key 的方式;master_pub.pem 用于记录 master key 的 PEM 编码的公钥。

数据库部署

在准备好上诉文件后,可使用 MatrixUI 或者命令行的方式部署数据库集群。在部署过程中,程序会自动检测上述文件配置并打开数据库的透明数据加密功能。

启动数据库

在使用打开透明数据加密功能的数据库时,任意 segment 启动时都需要使用 master key 的私钥。

状态查看

新增只读 GUC mx_crypto_suite 用于查看集群的透明数据加密功能的状态。

  • none 表示此集群的透明数据加密功能未打开
  • general 表示此集群的透明数据加密功能已打开
    GUC              : mx_crypto_suite
    Coordinator value: general
    Segment     value: general