该keyring_encrypted_file
插件是商业产品 MySQL Enterprise Edition 中包含的扩展。要了解有关商业产品的更多信息,请参阅
https://www.mysql.com/products/。
密钥环keyring_encrypted_file
插件将密钥环数据存储在服务器主机本地的加密、受密码保护的文件中。必须为文件指定密码。这个插件从 MySQL 5.7.21 开始可用。
对于加密密钥管理,该
keyring_encrypted_file
插件并非旨在作为法规遵从性解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。
要安装keyring_encrypted_file
,请使用
第 6.4.4.1 节“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.12 节,“密钥环系统变量”。
为确保仅当存在正确的密钥环存储文件时才刷新密钥,keyring_encrypted_file
请在文件中存储密钥环的 SHA-256 校验和。在更新文件之前,插件会验证它是否包含预期的校验和。此外,
keyring_encrypted_file
在写入文件前使用AES加密文件内容,并在读取文件后解密文件内容。
The keyring_encrypted_file
plugin supports
the functions that comprise the standard MySQL Keyring service
interface. Keyring operations performed by those functions are
accessible at two levels:
SQL interface: In SQL statements, call the functions described in Section 6.4.4.8, “General-Purpose Keyring Key-Management Functions”.
C interface: In C-language code, call the keyring service functions described in Section 5.5.6.2, “The Keyring Service”.
Example (using the SQL interface):
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
有关 允许的密钥值的特征的信息keyring_encrypted_file
,请参阅
第 6.4.4.6 节,“支持的密钥环密钥类型和长度”。