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