Documentation Home
MySQL 8.0 参考手册  / 第 4 章 MySQL 程序  / 4.6 管理和实用程序  / 4.6.8 mysql_migrate_keyring — 密钥环密钥迁移实用程序  /  6.4.4.7 使用 keyring_encrypted_file 加密文件密钥环插件

6.4.4.7 使用 keyring_encrypted_file 加密文件密钥环插件

笔记

keyring_encrypted_file插件是商业产品 MySQL Enterprise Edition 中包含的扩展。要了解有关商业产品的更多信息,请参阅 https://www.mysql.com/products/

密钥环keyring_encrypted_file插件将密钥环数据存储在服务器主机本地的加密、受密码保护的文件中。

警告

对于加密密钥管理,该 keyring_encrypted_file插件并非旨在作为法规遵从性解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。

要安装keyring_encrypted_file,请使用 第 6.4.4.3 节“Keyring 插件安装”中的一般说明,以及此处提供的特定配置信息 keyring_encrypted_file

要在服务器启动过程中可用, keyring_encrypted_file必须使用该--early-plugin-load选项加载。要指定用于加密密钥环数据文件的密码,请设置 keyring_encrypted_file_password 系统变量。(密码是强制性的;如果在服务器启动时未指定,则keyring_encrypted_file 初始化失败。) keyring_encrypted_file_data 系统变量可选择配置keyring_encrypted_file插件用于数据存储的文件位置。默认值是特定于平台的。要明确配置文件位置,请在启动时设置变量值。例如,在服务器 my.cnf文件中使用这些行,调整 .so根据需要为您的平台添加后缀和文件位置,并替换您选择的密码:

[mysqld]
early-plugin-load=keyring_encrypted_file.so
keyring_encrypted_file_data=/usr/local/mysql/mysql-keyring/keyring-encrypted
keyring_encrypted_file_password=password

因为该my.cnf文件在写入时存储了一个密码,所以它应该具有限制模式并且只能由用于运行 MySQL 服务器的帐户访问。

Keyring 操作是事务性的: keyring_encrypted_file插件在写入操作期间使用备份文件,以确保在操作失败时可以回滚到原始文件。备份文件与系统变量的值同名, keyring_encrypted_file_data 后缀为.backup.

有关用于配置keyring_encrypted_file插件的系统变量的其他信息,请参阅第 6.4.4.19 节,“密钥环系统变量”

为确保仅当存在正确的密钥环存储文件时才刷新密钥,keyring_encrypted_file 请在文件中存储密钥环的 SHA-256 校验和。在更新文件之前,插件会验证它是否包含预期的校验和。此外, keyring_encrypted_file在写入文件前使用AES加密文件内容,并在读取文件后解密文件内容。

keyring_encrypted_file插件支持构成标准 MySQL Keyring 服务接口的功能。可以在两个级别访问由这些函数执行的密钥环操作:

示例(使用 SQL 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关 允许的密钥值特征的信息keyring_encrypted_file,请参阅 第 6.4.4.13 节,“支持的密钥环密钥类型和长度”