6.4.4 MySQL 密钥环
MySQL Server 支持一个密钥环,该密钥环使内部服务器组件和插件能够安全地存储敏感信息,以便以后检索。该实现包括以下元素:
-
Management 后台存储或与存储后端通信的密钥环插件。这些密钥环插件可用:
-
keyring_file
将密钥环数据存储在服务器主机本地的文件中。从 MySQL 5.7.11 开始,该插件在 MySQL Community Edition 和 MySQL Enterprise Edition 发行版中可用。参见第 6.4.4.2 节“使用 keyring_file 基于文件的插件”。-
keyring_encrypted_file
将密钥环数据存储在服务器主机本地的加密文件中。从 MySQL 5.7.21 开始,该插件在 MySQL 企业版发行版中可用。参见第 6.4.4.3 节“使用 keyring_encrypted_file 密钥环插件”。 -
keyring_okv
是 KMIP 1.1 插件,可与兼容 KMIP 的后端密钥环存储产品(例如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance)一起使用。从 MySQL 5.7.12 开始,该插件在 MySQL 企业版发行版中可用。参见第 6.4.4.4 节“使用 keyring_okv KMIP 插件”。 -
keyring_aws
与 Amazon Web Services 密钥 Management 服务进行通信以生成密钥,并使用本地文件进行密钥存储。从 MySQL 5.7.19 开始,该插件在 MySQL 企业版发行版中可用。参见第 6.4.4.5 节“使用 keyring_aws Amazon Web Services 密钥环插件”。
-
-
关键的迁移能力。 MySQL 5.7.21 及更高版本支持服务器操作模式,该模式允许在基础密钥环密钥库之间迁移密钥,从而允许 DBA 将 MySQL 安装从一个密钥环插件切换到另一个密钥环插件。参见第 6.4.4.7 节“在密钥环密钥库之间迁移密钥”。
-
用于密钥环密钥 Management 的密钥环服务接口(MySQL 5.7.13 及更高版本),可在两个级别访问:
-
一个实现为一组用户定义函数(UDF)的 SQL 接口。参见第 6.4.4.8 节“通用密钥环密钥 Management 功能”。
- 一个 C 接口,实现为一组 C 语言密钥环服务功能。参见第 28.3.2 节“密钥环服务”。
-
关键元数据访问。在 MySQL 8.0.16 及更高版本中,性能模式keyring_keystable 公开了密钥环中密钥的元数据。密钥元数据包括密钥 ID,密钥所有者和后端密钥 ID。 keyring_keystable 不会公开任何敏感的密钥环数据,例如密钥内容。参见keyring_keystable。
Warning
用于加密密钥 Management 的keyring_file
和keyring_encrypted_file
插件不能用作法规遵从性解决方案。诸如 PCI,FIPS 等安全标准要求使用密钥 Management 系统来保护,Management 和保护密钥库或硬件安全模块(HSM)中的加密密钥。
在 MySQL 中,密钥环的用法包括:
-
InnoDB
存储引擎使用密钥环来存储其密钥以进行 table 空间加密。InnoDB
可以使用任何受支持的密钥环插件。参见第 14.14 节“ InnoDB 静态数据加密”。 -
MySQL Enterprise Audit 使用密钥环来存储审核日志文件加密密码。审核日志插件可以使用任何受支持的密钥环插件。参见加密审核日志文件。
有关密钥环的一般安装说明,请参阅第 6.4.4.1 节“安装 Keyring 插件”。有关特定于给定密钥环插件的安装和配置信息,请参阅描述该插件的部分。
有关使用密钥环 UDF 的信息,请参见第 6.4.4.8 节“通用密钥环密钥 Management 功能”。
密匙环插件和 UDF 访问密匙环服务,该服务为密匙环的服务器组件提供接口。有关访问密钥环插件服务和编写密钥环插件的信息,请参阅第 28.3.2 节“密钥环服务”和第 28.2.4.12 节,“编写密钥环插件”。