Documentation Home
MySQL 8.0 参考手册  / 第 4 章 MySQL 程序  / 4.6 管理和实用程序  / 4.6.8 mysql_migrate_keyring — 密钥环密钥迁移实用程序  /  6.4.4.5 使用 component_keyring_encrypted_file 加密文件密钥环组件

6.4.4.5 使用 component_keyring_encrypted_file 加密文件密钥环组件

笔记

component_keyring_encrypted_file是 MySQL 企业版中包含的一个扩展,是一个商业产品。要了解有关商业产品的更多信息,请参阅 https://www.mysql.com/products/

密钥环component_keyring_encrypted_file组件将密钥环数据存储在服务器主机本地的加密、受密码保护的文件中。

警告

对于加密密钥管理, component_keyring_filecomponent_keyring_encrypted_file 组件以及 和keyring_filekeyring_encrypted_file插件并非旨在作为法规遵从性解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。

component_keyring_encrypted_file用于密钥库管理,您必须:

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

  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":此项仅在全局配置文件中允许。如果该项不存在,则组件仅使用全局配置文件。如果该项存在,则其值为 truefalse,指示组件是否应从本地配置文件读取配置信息。

      如果该"read_local_config"项目与其他项目一起出现在全局配置文件中,则组件 "read_local_config"首先检查项目值:

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

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

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

    • "password": 项目值为字符串,指定访问数据文件的密码。此项在配置中是必填项。如果未指定,则 component_keyring_encrypted_file 初始化失败。

    • "read_only":该项值表示keyring数据文件是否只读。项目值为true(只读)或 false(读/写)。此项在配置中是必填项。如果未指定,则 component_keyring_encrypted_file 初始化失败。

  • 数据库管理员有责任创建要使用的任何配置文件,并确保其内容正确。如果发生错误,服务器启动失败,管理员必须更正服务器错误日志中诊断指示的任何问题。

  • 任何存储密码的配置文件都应该具有限制模式,并且只能由用于运行 MySQL 服务器的帐户访问。

鉴于上述配置文件属性,要配置 ,在安装库文件的目录中 component_keyring_encrypted_file创建一个名为的全局配置文件 ,并可选择 在数据目录中创建一个本地配置文件,也命名为。以下说明假定 以读/写方式使用名为的密钥环数据文件。您还必须选择一个密码。 component_keyring_encrypted_file.cnfcomponent_keyring_encrypted_filecomponent_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 Keyring 服务接口的功能。可以在两个级别访问由这些函数执行的密钥环操作:

示例(使用 SQL 接口):

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

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