8.4.4 MySQL 密钥环
- 8.4.4.1 密钥环组件与密钥环插件比较
- 8.4.4.2 密钥环组件安装
- 8.4.4.3 密钥环插件安装
- 8.4.4.4 使用 component_keyring_file 基于文件的密钥环组件
- 8.4.4.5 使用 component_keyring_encrypted_file 加密文件密钥环组件
- 8.4.4.6 使用 keyring_okv KMIP 插件
- 8.4.4.7 使用 keyring_aws Amazon Web Services 密钥环插件
- 8.4.4.8 使用 HashiCorp Vault 密钥环插件
- 8.4.4.9 使用 Oracle 云基础架构 Vault 密钥环组件
- 8.4.4.10 支持的密钥环密钥类型和长度
- 8.4.4.11 在密钥环密钥库之间迁移密钥
- 8.4.4.12 通用密钥环密钥管理功能
- 8.4.4.13 插件特定的密钥环密钥管理功能
- 8.4.4.14 密钥环元数据
- 8.4.4.15 密钥环命令选项
- 8.4.4.16 密钥环系统变量
MySQL Server 支持一个密钥环,允许内部服务器组件和插件安全地存储敏感信息,以便后续检索。实现包括以下元素:
-
密钥环组件和插件,它们管理背后存储或与存储后端通信。使用密钥环涉及安装可用的组件或插件之一。密钥环组件和插件都管理密钥环数据,但配置方式不同,可能具有操作差异(见第8.4.4.1节,“密钥环组件 versus 密钥环插件”)。
这些密钥环组件可用:
-
component_ keyring_file
: 在服务器主机上存储密钥环数据。可在 MySQL Community Edition 和 MySQL Enterprise Edition 发行版中使用。见第8.4.4.4节,“使用 component_keyring_file 文件基于密钥环组件”。 -
component_ keyring_encrypted_file
: 在服务器主机上存储加密、密码保护的文件。可在 MySQL Enterprise Edition 发行版中使用。见第8.4.4.5节,“使用 component_keyring_encrypted_file 加密文件基于密钥环组件”。 -
component_keyring_oci
: 将密钥环存储在 Oracle Cloud Infrastructure Vault 中。可用在 MySQL Enterprise Edition 发行版中。请参阅第8.4.4.9节,“使用 Oracle Cloud Infrastructure Vault 密钥环组件”。
这些密钥环插件可用:
-
keyring_okv
: KMIP 1.1 插件,用于与KMIP兼容的后端密钥存储产品,如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance。可用在 MySQL Enterprise Edition 发行版中。请参阅第8.4.4.6节,“使用 keyring_okv KMIP 插件”。 -
keyring_aws
: 与 Amazon Web Services Key Management Service 通信,用于密钥生成,并使用本地文件存储密钥。可用在 MySQL Enterprise Edition 发行版中。请参阅第8.4.4.7节,“使用 keyring_aws Amazon Web Services 密钥环插件”。 -
keyring_hashicorp
: 与 HashiCorp Vault 通信,用于后端存储。可用在 MySQL Enterprise Edition 发行版中。请参阅第8.4.4.8节,“使用 HashiCorp Vault 密钥环插件”。
-
-
密钥环服务接口用于密钥管理。该服务在两个级别上可访问:
-
SQL接口:在 SQL 语句中,调用《第8.4.4.12节,“通用密钥环密钥管理函数”》中描述的函数。
-
C接口:在 C 语言代码中,调用《第7.6.9.2节,“密钥环服务”》中描述的密钥环服务函数。
-
-
密钥元数据访问:
-
性能chema
keyring_keys
表公开密钥环中的元数据。密钥元数据包括密钥 ID、密钥所有者和后端密钥 ID。keyring_keys
表不公开敏感的密钥环数据,如密钥内容。请参阅《第29.12.18.2节,“keyring_keys 表”》。 -
性能schema
keyring_component_status
表提供密钥环组件的状态信息,如果安装了一个。请参阅《第29.12.18.1节,“keyring_component_status 表”》。
-
-
一个关键迁移能力。MySQL 支持将密钥迁移到不同的密钥存储库之间,允许 DBAs 将 MySQL 安装从一个密钥存储库到另一个密钥存储库进行切换。请参阅第 8.4.4.11 节,“迁移密钥之间的密钥存储库”。
-
密钥ring 插件的实现被修改,以使用组件基础结构。这是通过名为
daemon_keyring_proxy_plugin
的内置插件来实现的,该插件作为插件和组件服务 API 之间的桥梁。请参阅第 7.6.8 节,“Keyring Proxy Bridge 插件”。
对于加密密钥管理,component_keyring_file
和 component_keyring_encrypted_file
组件不是作为法规遵从性解决方案的。安全标准,如 PCI、FIPS 等要求使用密钥管理系统来保护和管理加密密钥,以便在密钥库或硬件安全模块(HSM)中存储。
MySQL 中的密钥ring 服务消费者包括:
-
InnoDB 存储引擎使用密钥ring 来存储其表空间加密密钥。请参阅第 17.13 节,“InnoDB 数据静态加密”。
-
MySQL Enterprise Audit 使用密钥ring 来存储 audit 日志文件加密密码。请参阅加密 Audit 日志文件。
-
MySQL支持基于keyring的日志文件加密。启用日志文件加密后,keyring将存储用于加密二进制日志文件和relay log文件的密码。请参阅第19.3.2节,“ Encrypting Binary Log Files and Relay Log Files”。
-
存储敏感系统变量的 persisted 值所需的master密钥存储在keyring中。MySQL Server实例必须启用keyring组件,以支持安全地存储persisted系统变量值,而不是keyring插件,因为它们不支持该功能。请参阅 Persisting Sensitive System Variables。
关于keyring安装的常规指南,请参阅第8.4.4.2节,“Keyring Component Installation”和第8.4.4.3节,“Keyring Plugin Installation”。关于特定keyring组件或插件的安装和配置信息,请参阅描述该组件或插件的部分。
关于使用keyring函数的信息,请参阅第8.4.4.12节,“General-Purpose Keyring Key-Management Functions”。
密钥环组件、插件和函数访问一个密钥环服务,该服务提供对密钥环的接口。关于访问该服务和编写密钥环插件,请见第7.6.9.2节,“The Keyring Service”,和编写密钥环插件。