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  /  ...  /  Keyring Plugin Installation

8.4.4.3 密钥环插件安装

密钥环服务消费者需要安装一个密钥环组件或插件:

Note

在任何时候,只能启用一个密钥环组件或插件。启用多个密钥环组件或插件是未支持的,结果可能不如预期。

如果您需要支持 persisted 系统变量值的安全存储,而不是密钥环插件(它们不支持该功能),则必须在 MySQL 服务器实例上启用密钥环组件。请见 Persisting Sensitive System Variables

MySQL 提供以下密钥环插件选择:

  • keyring_okv: 对于 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance 等 KMIP 兼容后端密钥存储产品的 KMIP 1.1 插件。仅在 MySQL Enterprise Edition 发行版中可用。

  • keyring_aws: 使用 Amazon Web Services Key Management Service 作为密钥生成和存储的后端,使用本地文件存储密钥。仅在 MySQL Enterprise Edition 发行版中可用。

  • keyring_hashicorp: 使用 HashiCorp Vault 作为密钥存储的后端。仅在 MySQL Enterprise Edition 发行版中可用。

服务器可以使用插件库文件时,该文件必须位于 MySQL 插件目录(由plugin_系统变量指定的目录)中。如果必要,可以在服务器启动时通过设置plugin_的值来配置插件目录位置。

密钥ring 组件或插件必须在服务器启动序列的早期阶段加载,以便其他组件可以在它们自己的初始化过程中访问它。例如,InnoDB 存储引擎使用密钥ring 对表空间加密,因此在 InnoDB 初始化之前,必须先加载和可用密钥ring 组件或插件。

每个密钥ring 插件的安装都类似。以下是如何安装 keyring_okv 的说明。要使用不同的密钥ring 插件,只需将其名称替换为 keyring_okv

keyring_okv插件库文件的基本名称是keyring_okv。文件名后缀因平台而异(例如,Unix和Unix-like系统中为.so,Windows中为.dll)。

要加载插件,请使用--early-plugin-load选项指定包含插件的库文件名称。例如,在平台上where插件库文件后缀为.so,在服务器my.cnf文件中使用以下行,根据您的平台需要调整.so后缀:

[mysqld]
early-plugin-load=keyring_okv.so

在启动服务器前,请查看您选择的keyring插件的配置说明,以获取该插件特定的配置信息:

在执行插件特定的配置后,启动服务器。验证插件安装通过检查信息schema中的PLUGINS表或使用SHOW PLUGINS语句(见第7.6.2节,“获取服务器插件信息”)。例如:

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+

如果插件无法初始化,检查服务器错误日志以获取诊断消息。

插件可以通过方法其他于--early-plugin-load加载,例如--plugin-load--plugin-load-add选项或INSTALL PLUGIN语句。然而,使用这些方法加载的keyring插件可能在服务器启动序列中太晚,以至于某些组件无法使用keyring,如--plugin-load--plugin-load-add选项:

  • 使用--plugin-load--plugin-load-add加载插件的顺序在InnoDB初始化后发生。

  • 使用INSTALL PLUGIN安装的插件将在mysql.plugin系统表中注册,并自动加载在服务器重启后。然而,因为mysql.plugin是一个InnoDB表,所以只有在InnoDB初始化完成后才能在启动时加载插件。

如果组件尝试访问密钥ring服务时没有可用的keyring组件或插件,那么该服务对该组件不可用。结果,该组件可能无法初始化或只能以有限功能初始化。例如,如果InnoDB在初始化时发现有加密的表空间,它将尝试访问密钥ring。如果密钥ring不可用,InnoDB只能访问未加密的表空间。为了确保InnoDB也可以访问加密的表空间,请使用--early-plugin-load将keyring插件加载到早期。