密匙环服务消费者要求安装密匙环组件或插件:
要使用密匙环插件,请从这里的说明开始。(此外,有关安装插件的一般信息,请参见章节5.6.1,“安装和卸载插件”.)
要使用密匙环组件,请从章节6.4.4.2,“钥匙环组件安装”.
如果您打算将密匙环用户定义函数(udf)与所选的密匙环组件或插件一起使用,请在安装该组件或插件后安装udf第6.4.4.14节通用密匙环密匙管理功能.
一次只能启用一个密匙环组件或插件。不支持启用多个密匙环组件或插件,结果可能不如预期。
MySQL提供了以下keyring插件:
keyring_file
:将keyring数据保存在服务器本地的文件中。在MySQL社区版和MySQL企业版发行版中可用。keyring_encrypted_file
:将密匙环数据保存在服务器本地的加密、密码保护文件中。在MySQL企业版发行版中可用。keyring_okv
:一个KMIP 1.1插件,用于与KMIP兼容的后端密匙环存储产品,如Oracle Key Vault和Gemalto SafeNet KeySecure Appliance。在MySQL企业版发行版中可用。keyring_aws
:作为后端与Amazon Web Services密钥管理服务通信以生成密钥,并使用本地文件进行密钥存储。在MySQL企业版发行版中可用。keyring_hashicorp
:与HashiCorp Vault进行后端存储通信。在MySQL企业版发行版中可用。keyring_oci
:与Oracle Cloud Infrastructure Vault进行后端存储通信。看到章节6.4.4.11,“使用Oracle Cloud Infrastructure Vault Keyring插件”.
为了能够被服务器使用,插件库文件必须位于MySQL插件目录中(该目录由plugin_dir
系统变量)。如果需要,可以通过设置的值来配置插件的目录位置plugin_dir
在服务器启动时。
keyring组件或插件必须在服务器启动序列的早期加载,以便其他组件在初始化过程中可以根据需要访问它。例如,InnoDB
存储引擎使用密匙环进行表空间加密,因此必须在之前加载并可用密匙环组件或插件InnoDB
初始化。
每个keyring插件的安装都是类似的。下面的说明说明如何安装keyring_file
.要使用不同的keyring插件,请将其名称替换为keyring_file
.
的keyring_file
插件库文件的基本名称是keyring_file
.文件名后缀因平台而异(例如,所以
对于Unix和类Unix系统,. dll
对于Windows)。
要加载插件,请使用——early-plugin-load
选项来命名包含它的插件库文件。例如,在插件库文件后缀所在的平台上所以
,在服务器中使用这些行my.cnf
文件,调整所以
为你的平台添加必要的后缀:
(mysqld) early-plugin-load = keyring_file.so
在启动服务器之前,请检查所选keyring插件的注释,以获得特定于该插件的配置说明:
keyring_file
:章节6.4.4.6,“使用keyring_file基于文件的Keyring插件”.keyring_encrypted_file
:章节6.4.4.7,“使用keyring_encrypted_file基于加密文件的Keyring插件”.keyring_okv
:章节6.4.4.8,“使用keyring_okv KMIP插件”.keyring_aws
:章节6.4.4.9,“使用keyring_aws Amazon Web Services Keyring插件”keyring_hashicorp
:章节6.4.4.10“使用HashiCorp保险库Keyring插件”keyring_oci
:章节6.4.4.11,“使用Oracle Cloud Infrastructure Vault Keyring插件”
在执行任何特定于插件的配置之后,启动服务器。检查插件安装是否正确INFORMATION_SCHEMA。插件
表或使用显示插件
声明(见章节5.6.2“获取服务器插件信息”).例如:
从信息模式中选择PLUGIN_NAME, PLUGIN_STATUSPLUGIN_NAME像'keyring%'的插件;+--------------+---------------+ | PLUGIN_NAME | PLUGIN_STATUS | +--------------+---------------+ | keyring_file |活跃 | +--------------+---------------+
如果插件初始化失败,请检查服务器错误日志中的诊断消息。
插件可以通过其他方法加载——early-plugin-load
,例如——plugin-load
或——plugin-load-add
选项或安装插件
声明。但是,使用这些方法加载的密匙环插件可能在服务器启动序列中对某些使用密匙环的组件可用过晚,例如InnoDB
:
使用插件加载
——plugin-load
或——plugin-load-add
后发生InnoDB
初始化。使用以下方式安装的插件
安装插件
均在mysql.plugin
系统表,并为后续服务器重新启动自动加载。然而,由于mysql.plugin
是一个InnoDB
表中,任何在其中命名的插件只能在启动时加载InnoDB
初始化。
当组件试图访问keyring服务时,如果没有可用的keyring组件或插件,则该组件不能使用该服务。因此,组件可能无法初始化,或者初始化时功能受限。例如,如果InnoDB
在初始化时发现有加密的表空间,它尝试访问密匙环。如果密匙环不可用,InnoDB
只能访问未加密的表空间。为了确保InnoDB
可以访问加密的表空间以及,使用——early-plugin-load
加载keyring插件。