密钥环component_keyring_file
组件将密钥环数据存储在服务器主机的本地文件中。
对于加密密钥管理,
component_keyring_file
和
component_keyring_encrypted_file
组件以及 和keyring_file
和
keyring_encrypted_file
插件并非旨在作为法规遵从性解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。
要component_keyring_file
用于密钥库管理,您必须:
编写一个清单,告诉服务器加载
component_keyring_file
,如 第 6.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"
:该项值表示keyring数据文件是否只读。项目值为true
(只读)或false
(读/写)。此项在配置中是必填项。如果未指定,则component_keyring_file
初始化失败。
数据库管理员有责任创建要使用的任何配置文件,并确保其内容正确。如果发生错误,服务器启动失败,管理员必须更正服务器错误日志中诊断指示的任何问题。
鉴于上述配置文件属性,要配置
,在安装库文件的目录中component_keyring_file
创建一个名为的全局配置文件
,并可选择在数据目录中创建一个本地配置文件,也命名为。以下说明假定
以读/写方式使用名为的密钥环数据文件。
component_keyring_file.cnf
component_keyring_file
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 Keyring 服务接口的功能。可以在两个级别访问由这些函数执行的密钥环操作:
SQL 接口:在 SQL 语句中,调用 第 6.4.4.15 节“通用密钥环密钥管理函数”中描述的函数。
C 接口:在 C 语言代码中,调用第 5.6.9.2 节“密钥环服务”中描述的密钥环服务函数。
示例(使用 SQL 接口):
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
有关 允许的密钥值特征的信息component_keyring_file
,请参阅
第 6.4.4.13 节,“支持的密钥环密钥类型和长度”。