Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Using the component_keyring_encrypted_file Encrypted File-Based Keyring Component

8.4.4.5 使用加密文件密钥环组件

Note

component_keyring_encrypted_file 是 MySQL Enterprise Edition 的扩展,一个商业产品。要了解更多关于商业产品,请访问https://www.mysql.com/products/

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

Warning

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

要使用component_keyring_encrypted_file进行keystore管理,您必须:

  1. 编写一个清单文件,告诉服务器加载component_keyring_encrypted_file,如第8.4.4.2节,“Keyring Component Installation”中所述。

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

当初始化时,component_keyring_encrypted_file将读取全局配置文件或全局配置文件与本地配置文件 pair:

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

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

  • 虽然全球和本地配置文件位于不同的目录中,但文件名都是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":项值是一个字符串,指定用于存储密钥ring数据的文件名。该文件应使用绝对路径,而不是相对路径。这项是配置中的必需项目。如果未指定,component_ keyring_encrypted_file初始化将失败。

    • "password":项值是一个字符串,指定访问数据文件的密码。这项是配置中的必需项目。如果未指定,component_keyring_ encrypted_file初始化将失败。

    • "read_only":项值指示密钥ring数据文件是否为只读。项值是true(只读)或false(可读/可写)。这项是配置中的必需项目。如果未指定,component_keyring_ encrypted_file初始化将失败。

  • 数据库管理员负责创建用于存储的配置文件,并确保其内容正确。如果出现错误,服务器启动失败,管理员必须根据服务器错误日志中的诊断信息进行更正。

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

根据前面的配置文件属性,为了配置component_keyring_encrypted_file,在component_keyring_encrypted_file库文件安装目录下创建一个全局配置文件名为component_keyring_encrypted_file.cnf, optionally 在数据目录下创建一个本地配置文件,也名为component_keyring_encrypted_file.cnf。以下指令假设将使用读/写方式的keyring数据文件名为/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库文件安装目录下。

  • alternatively,如果要使用全局和本地配置文件对,则全局文件内容如下所示:

    {
      "read_local_config": true
    }

    将该文件创建在component_keyring_encrypted_file库文件安装目录下。

    本地文件内容如下所示:

    {
      "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file",
      "password": "password",
      "read_only": false
    }

    将该文件创建在数据目录下。

Keyring操作是事务性的:component_keyring_encrypted_file在写操作期间使用备份文件,以确保可以回滚到原始文件,如果操作失败。备份文件的名称与数据文件相同,但后缀为.backup

component_keyring_encrypted_file支持标准MySQL Keyring服务接口中的函数。Keyring操作由这些函数执行是可访问的两个级别:

示例(使用 SQL 接口):

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

关于 component_keyring_encrypted_file 允许的密钥值特征信息,请见 第8.4.4.10节,“支持的密钥环密钥类型和长度”