• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • php7教程
  • MySQL手册
  • apache手册
  • 位置: MySQL8中文手册 -> MySQL服务器安全

    MySQL密钥环

    MySQL Server支持一个密钥环,该密钥环使内部服务器组件和插件能够安全地存储敏感信息,以便以后检索。实现是基于插件的:

    • keyring_file插件将密钥环数据存储在服务器主机本地的文件中。该插件在所有MySQL发行版(社区版和企业版)中均可用。请参见“使用keyring_file基于文件的插件”。
    • keyring_encrypted_file插件将密钥环数据存储在服务器主机本地的加密文件中。该插件在MySQL企业版发行版中可用。请参见“使用keyring_encrypted_file密钥环插件”。
    • keyring_okv是KMIP 1.1插件,可与兼容KMIP的后端密钥环存储产品(例如Oracle Key Vault和Gemalto SafeNet KeySecure Appliance)一起使用。该插件在MySQL企业版发行版中可用。请参见“使用keyring_okv KMIP插件”。
    • keyring_aws插件与Amazon Web Services密钥管理服务进行通信以生成密钥,并使用本地文件进行密钥存储。该插件在MySQL企业版发行版中可用。请参阅“使用keyring_aws Amazon Web Services密钥环插件”。
    • MySQL 8.0.18及更高版本包括keyring_hashicorp,该插件与HashiCorp Vault通信以进行后端存储。该插件在MySQL企业版发行版中可用。请参见“使用HashiCorp Vault密匙环插件”。
    • MySQL服务器操作模式允许在基础密钥环密钥库之间迁移密钥。这使DBA可以将MySQL安装从一个密钥环插件切换到另一个。请参见“在密钥环密钥库之间迁移密钥”。
    • 用于密钥环密钥管理的SQL接口被实现为一组用户定义函数(UDF)。请参见“通用密钥环密钥管理功能”。
    • 在MySQL 8.0.16及更高版本中,该keyring_keys表公开了密钥环中密钥的元数据。密钥元数据包括密钥ID,密钥所有者和后端密钥ID。该keyring_keys表未公开任何敏感的密钥环数据,例如密钥内容。请参见“ keyring_keys表”。
    警告

    用于加密密钥管理的keyring_filekeyring_encrypted_file插件并非旨在作为法规遵从性解决方案。PCI,FIPS等安全性标准要求使用密钥管理系统来保护,管理和保护密钥库或硬件安全模块(HSM)中的加密密钥。

    MySQL中的密钥环的用途包括:

    • InnoDB存储引擎使用密钥环存储它的表空间加密密钥。InnoDB可以使用任何受支持的密钥环插件。
    • MySQL Enterprise Audit使用密钥环来存储审核日志文件加密密码。审核日志插件可以使用任何受支持的密钥环插件。
    • 为MySQL服务器激活二进制日志加密后(通过设置binlog_encryption=ON),用于加密二进制日志文件和中继日志文件的文件密码的二进制日志加密密钥存储在密钥环中。任何受支持的密钥环插件均可用于存储二进制日志加密密钥。只要服务器上有使用它们加密的文件,二进制日志加密密钥就会保留。手动旋转二进制日志主密钥时,将从密钥环中清除不再适用于任何保留的二进制日志文件或中继日志文件的所有二进制日志加密密钥。如果无法初始化保留的二进制日志文件或中继日志文件以进行重新加密,则不会删除相关的二进制日志加密密钥,以防将来可以恢复该文件。例如,如果二进制日志索引文件中列出的文件当前不可读,或者通道无法初始化,则可能是这种情况。有关更多信息,请参见“加密二进制日志文件和中继日志文件”。

    有关常规密钥环安装说明,请参见“密钥环插件安装”。有关给定密钥环插件的特定信息,请参阅描述该插件的部分。

    有关使用密钥环UDF的信息,请参见“通用密钥环密钥管理功能”。

    密钥环插件和UDF访问密钥环服务,该服务为密钥环的服务器组件提供接口。有关访问密钥环插件服务和编写密钥环插件的信息,请参见“密钥环服务”和“编写密钥环插件”。