MySQL 服务器支持密钥环,使内部服务器组件和插件能够安全地存储敏感信息以供以后检索。实施包括以下要素:
管理后备存储或与存储后端通信的密钥环插件。这些密钥环插件可用:
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 Enterprise Edition 发行版中可用。请参阅 第 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 Enterprise Edition 发行版中可用。请参阅第 6.4.4.4 节,“使用 keyring_okv KMIP 插件”。keyring_aws
:与 Amazon Web Services Key Management Service 通信以生成密钥,并使用本地文件存储密钥。从 MySQL 5.7.19 开始,在 MySQL Enterprise Edition 发行版中可用。请参阅 第 6.4.4.5 节,“使用 keyring_aws Amazon Web Services 密钥环插件”。
用于密钥环密钥管理的密钥环服务接口(MySQL 5.7.13 及更高版本)。此服务可在两个级别访问:
SQL 接口:在 SQL 语句中,调用 第 6.4.4.8 节“通用密钥环密钥管理函数”中描述的函数。
C 接口:在 C 语言代码中,调用第 5.5.6.2 节“密钥环服务”中描述的密钥环服务函数。
一个关键的迁移能力。MySQL 5.7.21 及更高版本支持在密钥库之间迁移密钥,使 DBA 能够将 MySQL 安装从一个密钥库切换到另一个。请参阅 第 6.4.4.7 节,“在密钥环密钥库之间迁移密钥”。
对于加密密钥管理,
keyring_file
和
keyring_encrypted_file
插件并非旨在作为法规遵从性解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块 (HSM) 中的加密密钥。
在 MySQL 中,密钥环服务消费者包括:
The
InnoDB
storage engine uses the keyring to store its key for tablespace encryption. See Section 14.14, “InnoDB Data-at-Rest Encryption”.MySQL Enterprise Audit uses the keyring to store the audit log file encryption password. See Encrypting Audit Log Files.
For general keyring installation instructions, see Section 6.4.4.1, “Keyring Plugin Installation”. For installation and configuration information specific to a given keyring plugin, see the section describing that plugin.
For information about using the keyring functions, see Section 6.4.4.8, “General-Purpose Keyring Key-Management Functions”.
密钥环插件和函数访问提供密钥环接口的密钥环服务。有关访问此服务和编写密钥环插件的信息,请参阅 第 5.5.6.2 节“密钥环服务”和 编写密钥环插件。