component_keyring_encrypted_file 是 MySQL 企业版(商业产品)中包含的扩展。要了解有关商业产品的更多信息,请参阅 https://mysqlserver.cn/products/.
component_keyring_encrypted_file 密钥环组件将密钥环数据存储在服务器主机本地的加密、密码保护的文件中。
对于加密密钥管理,component_keyring_file 和 component_keyring_encrypted_file 组件并非旨在用作监管合规解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统在密钥库或硬件安全模块 (HSM) 中保护、管理和保护加密密钥。
要使用 component_keyring_encrypted_file 进行密钥存储管理,您必须
编写一个清单,指示服务器加载
component_keyring_encrypted_file,如 第 8.4.4.2 节,“密钥环组件安装” 中所述。为
component_keyring_encrypted_file编写一个配置文件,如本文所述。
初始化时,component_keyring_encrypted_file 将读取全局配置文件或全局配置文件与本地配置文件配对
该组件尝试从组件库文件安装的目录(即服务器插件目录)读取其全局配置文件。
如果全局配置文件指示使用本地配置文件,则该组件尝试从数据目录读取其本地配置文件。
虽然全局配置文件和本地配置文件位于不同的目录中,但这两个位置的文件名都是
component_keyring_encrypted_file.cnf。如果不存在预配置文件,则会出现错误。没有有效的配置,
component_keyring_encrypted_file无法初始化。
本地配置文件允许设置多个服务器实例以使用 component_keyring_encrypted_file,以便每个服务器实例的组件配置特定于给定的数据目录实例。这使相同的密钥环组件能够与每个实例的单独数据文件一起使用。
component_keyring_encrypted_file 配置文件具有以下属性
配置文件必须采用有效的 JSON 格式。
配置文件允许以下配置项
"read_local_config":此项仅在全局配置文件中允许。如果此项不存在,则该组件仅使用全局配置文件。如果此项存在,则其值为true或false,指示该组件是否应从本地配置文件读取配置信息。如果
"read_local_config"项存在于全局配置文件中,并且包含其他项,则该组件首先检查"read_local_config"项的值如果值为
false,则该组件处理全局配置文件中的其他项,并忽略本地配置文件。如果值为
true,则该组件忽略全局配置文件中的其他项,并尝试读取本地配置文件。
"path":此项的值是一个字符串,用于指定用于存储密钥环数据的文件。该文件应使用绝对路径命名,而不是相对路径。此项在配置中是必需的。如果未指定,则component_keyring_encrypted_file初始化失败。"password":此项的值是一个字符串,用于指定访问数据文件的密码。此项在配置中是必需的。如果未指定,则component_keyring_encrypted_file初始化失败。"read_only": 该项的值表示密钥环数据文件是否只读。项的值为true(只读)或false(读写)。此项在配置中是必需的。如果未指定,component_keyring_encrypted_file初始化将失败。
数据库管理员负责创建任何要使用的配置文件,并确保其内容正确。如果发生错误,服务器启动将失败,管理员必须更正服务器错误日志中诊断指示的任何问题。
任何存储密码的配置文件都应具有限制性模式,并且只能由用于运行 MySQL 服务器的帐户访问。
鉴于前面的配置文件属性,要配置 component_keyring_encrypted_file,请在安装 component_keyring_encrypted_file 库文件所在的目录中创建一个名为 component_keyring_encrypted_file.cnf 的全局配置文件,并可选择在数据目录中创建一个名为 component_keyring_encrypted_file.cnf 的本地配置文件。以下说明假定要使用名为 /usr/local/mysql/keyring/component_keyring_encrypted_file 的密钥环数据文件,以读写方式使用。您还必须选择一个密码。
要仅使用全局配置文件,文件内容如下所示
{ "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file", "password": "password", "read_only": false }在安装
component_keyring_encrypted_file库文件所在的目录中创建此文件。或者,要使用全局和本地配置文件对,全局文件如下所示
{ "read_local_config": true }在安装
component_keyring_encrypted_file库文件所在的目录中创建此文件。本地文件如下所示
{ "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file", "password": "password", "read_only": false }在数据目录中创建此文件。
密钥环操作是事务性的:component_keyring_encrypted_file 在写入操作期间使用备份文件,以确保如果操作失败,它可以回滚到原始文件。备份文件与数据文件同名,后缀为 .backup。
component_keyring_encrypted_file 支持构成标准 MySQL 密钥环服务接口的功能。这些函数执行的密钥环操作在 SQL 语句中是可访问的,如 第 8.4.4.12 节,“通用密钥环密钥管理功能” 中所述。
示例
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');有关 component_keyring_encrypted_file 允许的键值特征的信息,请参见 第 8.4.4.10 节,“支持的密钥环键类型和长度”。