密钥环插件 keyring_file
将密钥环数据存储在服务器主机的本地文件中。
该插件已弃用,并将在未来 MySQL 版本中删除。建议使用 component_keyring_file
组件来存储密钥环数据(见 第 8.4.4.4 节,“使用 component_keyring_file 基于文件的密钥环组件”)。
对于加密密钥管理,keyring_file
插件不旨在作为合规解决方案。安全标准如 PCI、FIPS 等要求使用密钥管理系统来保护、管理和保护加密密钥在密钥库或硬件安全模块(HSM)中。
要安装 keyring_file
,请使用 第 8.4.4.3 节,“密钥环插件安装” 中的通用说明,以及特定于 keyring_file
的配置信息。
为了在服务器启动过程中使用,keyring_file
必须使用 --early-plugin-load
选项加载。系统变量 keyring_file_data
可选地配置文件的位置,用于存储数据。默认值是平台特定的。要明确配置文件位置,请在启动时设置变量值。例如,在服务器 my.cnf
文件中使用以下行,根据平台调整 .so
后缀和文件位置:
[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/usr/local/mysql/mysql-keyring/keyring
密钥环操作是事务性的:keyring_file
插件在写操作期间使用备份文件,以确保可以在操作失败时回滚到原始文件。备份文件的名称与 keyring_file_data
系统变量的值相同,但带有 .backup
后缀。
有关 keyring_file_data
的更多信息,请参阅 第 8.4.4.19 节,“密钥环系统变量”。
为了确保仅在正确的密钥环存储文件存在时刷新密钥,keyring_file
将密钥环的 SHA-256 校验和存储在文件中。在更新文件之前,插件验证文件是否包含预期的校验和。
插件 keyring_file
支持标准 MySQL 密钥环服务接口的函数。密钥环操作由这些函数执行,accessible at two levels:
-
SQL 接口:在 SQL 语句中,调用 第 8.4.4.15 节,“通用密钥环密钥管理函数” 中描述的函数。
-
C 接口:在 C 语言代码中,调用 第 7.6.9.2 节,“密钥环服务” 中描述的密钥环服务函数。
示例(使用 SQL 接口):
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
有关 keyring_file
允许的密钥值特征的信息,请参阅 第 8.4.4.13 节,“支持的密钥环密钥类型和长度”。