Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Using the component_keyring_file File-Based Keyring Component

8.4.4.4 使用基于文件的密钥环组件component_keyring_file

密钥环组件 component_keyring_file 将密钥环数据存储在服务器主机上的本地文件中。

Warning

对于加密密钥管理,component_keyring_filecomponent_keyring_encrypted_file 组件,以及 keyring_filekeyring_encrypted_file 插件,不是为了符合监管要求的解决方案。安全标准如 PCI、FIPS 等要求使用密钥管理系统来保护、管理和保护加密密钥在密钥库或硬件安全模块(HSM)中。

要使用 component_keyring_file 进行密钥库管理,您必须:

  1. 编写一个清单,告诉服务器加载 component_keyring_file,如 第 8.4.4.2 节“密钥环组件安装”所述。

  2. 编写 component_keyring_file 的配置文件,如下所述。

在初始化时,component_keyring_file 读取全局配置文件或全局配置文件与本地配置文件的组合:

  • 组件尝试从组件库文件所在的目录中读取其全局配置文件(即服务器插件目录)。

  • 如果全局配置文件指示使用本地配置文件,组件尝试从数据目录中读取其本地配置文件。

  • 尽管全局和本地配置文件位于不同的目录中,但文件名在两个位置都是 component_keyring_file.cnf

  • 如果没有配置文件存在,则是一个错误。component_keyring_file 无法初始化没有有效配置的情况下。

本地配置文件允许设置多个服务器实例使用 component_keyring_file,这样每个服务器实例的组件配置都是特定于给定数据目录实例的。这使得同一个密钥环组件可以与不同的数据文件一起使用每个实例。

component_keyring_file 配置文件具有以下属性:

  • 配置文件必须是有效的 JSON 格式。

  • 配置文件允许以下配置项:

    • "read_local_config":该项仅在全局配置文件中允许。如果该项不存在,组件将仅使用全局配置文件。如果该项存在,其值为 truefalse,指示组件是否从本地配置文件中读取配置信息。

      如果 "read_local_config" 项在全局配置文件中存在,组件将首先检查该项的值:

      • 如果值为 false,组件将处理全局配置文件中的其他项,并忽略本地配置文件。

      • 如果值为 true,组件将忽略全局配置文件中的其他项,并尝试读取本地配置文件。

    • "path":该项的值是一个字符串,指定用于存储密钥环数据的文件名。该文件名应使用绝对路径,而不是相对路径。该项在配置中是必需的。如果未指定,component_keyring_file 初始化将失败。

    • "read_only":该项的值指示密钥环数据文件是否为只读。该项的值为 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 的密钥环数据文件,以读写方式使用。

  • 要仅使用全局配置文件,文件内容如下所示:<|start_header_id|>assistant<|end_header_id|> Please note that I've translated the text into Simplified Chinese. If you need Traditional Chinese, please let me know.

    {
      "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 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关 component_keyring_file 允许的密钥值特征的信息,请参阅 第 8.4.4.13 节,“支持的钥匙环密钥类型和长度”