MySQL8 中文参考(二十九)(2)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: MySQL8 中文参考(二十九)

MySQL8 中文参考(二十九)(1)https://developer.aliyun.com/article/1566122


8.4.4.4 使用基于文件的密钥环组件

component_keyring_file密钥环组件将密钥环数据存储在服务器主机本地的文件中。

警告

对于加密密钥管理,component_keyring_filecomponent_keyring_encrypted_file组件,以及keyring_filekeyring_encrypted_file插件并不是用作符合法规的解决方案。PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块(HSM)中的加密密钥。

要使用component_keyring_file进行密钥库管理,您必须:

  1. 按照 8.4.4.2 节“密钥环组件安装”中描述的方式编写一个清单,告诉服务器加载component_keyring_file
  2. 按照这里的描述为component_keyring_file编写一个配置文件。

当初始化时,component_keyring_file会读取全局配置文件,或者全局配置文件与本地配置文件配对:

  • 该组件尝试从组件库文件安装的目录(即服务器插件目录)中读取其全局配置文件。
  • 如果全局配置文件指示使用本地配置文件,组件将尝试从数据目录中读取其本地配置文件。
  • 尽管全局和本地配置文件位于不同的目录中,但文件名在两个位置都是component_keyring_file.cnf
  • 如果不存在配置文件,则无法初始化component_keyring_file。没有有效配置是一个错误。

本地配置文件允许设置多个服务器实例使用component_keyring_file,以便每个服务器实例的组件配置特定于给定的数据目录实例。这使得相同的密钥环组件可以与每个实例的不同数据文件一起使用。

component_keyring_file配置文件具有以下属性:

  • 配置文件必须是有效的 JSON 格式。
  • 配置文件允许设置这些配置项:
  • "read_local_config":此项仅允许在全局配置文件中。如果该项不存在,则组件仅使用全局配置文件。如果该项存在,则其值为truefalse,指示组件是否应从本地配置文件中读取配置信息。如果全局配置文件中存在"read_local_config"项以及其他项,则组件首先检查"read_local_config"项的值:
  • 如果值为false,组件将处理全局配置文件中的其他项并忽略本地配置文件。
  • 如果数值为true,组件将忽略全局配置文件中的其他项,并尝试读取本地配置文件。
  • "path":项目值是一个字符串,用于命名用于存储密钥环数据的文件。文件应使用绝对路径而不是相对路径命名。此项目在配置中是强制性的。如果未指定,则component_keyring_file初始化失败。
  • "read_only":项目值指示密钥环数据文件是否为只读。项目值为true(只读)或false(读/写)。此项目在配置中是强制性的。如果未指定,则component_keyring_file初始化失败。
  • 数据库管理员有责任创建要使用的任何配置文件,并确保其内容正确。如果发生错误,服务器启动将失败,并且管理员必须根据服务器错误日志中的诊断信息纠正任何问题。

鉴于前述配置文件属性,要配置component_keyring_file,请在安装了component_keyring_file库文件的目录中创建一个名为component_keyring_file.cnf的全局配置文件,并在数据目录中创建一个名为component_keyring_file.cnf的本地配置文件(可选)。以下说明假定要以读/写方式使用名为/usr/local/mysql/keyring/component_keyring_file的密钥环数据文件。

  • 要仅使用全局配置文件,文件内容如下所示:
{
  "path": "/usr/local/mysql/keyring/component_keyring_file",
  "read_only": false
}
  • 在安装了component_keyring_file库文件的目录中创建此文件。
  • 或者,要使用全局和本地配置文件对,全局文件如下所示:
{
  "read_local_config": true
}
  • 在安装了component_keyring_file库文件的目录中创建此文件。
    本地文件如下所示:
{
  "path": "/usr/local/mysql/keyring/component_keyring_file",
  "read_only": false
}
  • 在数据目录中创建此文件。

密钥环操作是事务性的:component_keyring_file在写操作期间使用备份文件,以确保如果操作失败,可以回滚到原始文件。备份文件与数据文件具有相同的名称,后缀为.backup

component_keyring_file支持组成标准 MySQL 密钥环服务接口的函数。这些函数执行的密钥环操作可在两个级别访问:

  • SQL 接口:在 SQL 语句中,调用第 8.4.4.15 节,“通用密钥环密钥管理函数”中描述的函数。
  • C 接口:在 C 语言代码中,调用第 7.6.9.2 节,“密钥环服务”中描述的密钥环服务函数。

示例(使用 SQL 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关component_keyring_file允许的关键值特征的信息,请参阅第 8.4.4.13 节,“支持的钥匙环键类型和长度”。

原文:dev.mysql.com/doc/refman/8.0/en/keyring-encrypted-file-component.html

8.4.4.5 使用 component_keyring_encrypted_file 加密文件型密钥环组件

注意

component_keyring_encrypted_file 是包含在 MySQL 企业版中的扩展,这是一个商业产品。要了解更多关于商业产品的信息,请参阅 www.mysql.com/products/

component_keyring_encrypted_file 密钥环组件将密钥环数据存储在一个加密的、受密码保护的文件中,该文件位于服务器主机本地。

警告

对于加密密钥管理,component_keyring_filecomponent_keyring_encrypted_file 组件,以及 keyring_filekeyring_encrypted_file 插件并非旨在作为符合监管合规性的解决方案。诸如 PCI、FIPS 等安全标准要求使用密钥管理系统来保护、管理和保护密钥在密钥库或硬件安全模块(HSMs)中。

要使用 component_keyring_encrypted_file 进行密钥库管理,您必须:

  1. 编写一个清单,告诉服务器加载 component_keyring_encrypted_file,如 8.4.4.2 节“密钥环组件安装” 中所述。
  2. 编写一个 component_keyring_encrypted_file 的配置文件,如此处所述。

当初始化时,component_keyring_encrypted_file 会读取全局配置文件或与本地配置文件配对的全局配置文件:

  • 该组件尝试从组件库文件安装的目录(即服务器插件目录)中读取其全局配置文件。
  • 如果全局配置文件指示使用本地配置文件,则组件会尝试从数据目录中读取其本地配置文件。
  • 尽管全局和本地配置文件位于不同的目录中,但文件名在两个位置都是 component_keyring_encrypted_file.cnf
  • 如果不存在预配置文件,则会出错。component_keyring_encrypted_file 在没有有效配置的情况下无法初始化。

本地配置文件允许设置多个服务器实例使用 component_keyring_encrypted_file,因此每个服务器实例的组件配置特定于给定的数据目录实例。这使得相同的密钥环组件可以与每个实例的不同数据文件一起使用。

component_keyring_encrypted_file 配置文件具有以下属性:

  • 配置文件必须是有效的 JSON 格式。
  • 配置文件允许这些配置项:
  • "read_local_config":此项仅允许在全局配置文件中出现。如果该项不存在,则组件仅使用全局配置文件。如果该项存在,则其值为truefalse,表示组件是否应从本地配置文件中读取配置信息。如果全局配置文件中存在"read_local_config"项以及其他项,则组件首先检查"read_local_config"项的值:
  • 如果值为false,组件将处理全局配置文件中的其他项,并忽略本地配置文件。
  • 如果值为true,组件将忽略全局配置文件中的其他项,并尝试读取本地配置文件。
  • "path":该项值是一个指定用于存储密钥环数据的文件的字符串。文件应使用绝对路径而不是相对路径命名。此项在配置中是强制性的。如果未指定,component_keyring_encrypted_file初始化将失败。
  • "password":该项值是一个指定访问数据文件密码的字符串。此项在配置中是强制性的。如果未指定,component_keyring_encrypted_file初始化将失败。
  • "read_only":该项值指示密钥环数据文件是否为只读。该项值为true(只读)或false(读/写)。此项在配置中是强制性的。如果未指定,component_keyring_encrypted_file初始化将失败。
  • 数据库管理员有责任创建要使用的任何配置文件,并确保其内容正确。如果发生错误,服务器启动将失败,管理员必须根据服务器错误日志中的诊断信息纠正任何问题。
  • 存储密码的任何配置文件应具有限制模式,并且只能由用于运行 MySQL 服务器的帐户访问。

给定前述配置文件属性,要配置component_keyring_encrypted_file,请在安装component_keyring_encrypted_file库文件的目录中创建一个名为component_keyring_encrypted_file.cnf的全局配置文件,并可选择在数据目录中创建一个名为component_keyring_encrypted_file.cnf的本地配置文件。以下说明假定要使用一个名为/usr/local/mysql/keyring/component_keyring_encrypted_file的密钥环数据文件进行读/写操作。您还必须选择一个密码。

  • 要仅使用全局配置文件,文件内容如下所示:
{
  "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file",
  "password": "*password*",
  "read_only": false
}
  • 在安装component_keyring_encrypted_file库文件的目录中创建此文件。
  • 或者,要使用全局和本地配置文件对,全局文件如下所示:
{
  "read_local_config": true
}
  • 在安装component_keyring_encrypted_file库文件的目录中创建此文件。
    本地文件如下所示:
{
  "path": "/usr/local/mysql/keyring/component_keyring_encrypted_file",
  "password": "*password*",
  "read_only": false
}
  • 在数据目录中创建此文件。

密钥环操作是事务性的:component_keyring_encrypted_file在写操作期间使用备份文件,以确保如果操作失败,可以回滚到原始文件。备份文件与数据文件同名,后缀为.backup

component_keyring_encrypted_file支持组成标准 MySQL 密钥环服务接口的函数。这些函数执行的密钥环操作可在两个级别访问:

  • SQL 接口:在 SQL 语句中,调用第 8.4.4.15 节,“通用密钥环密钥管理函数”中描述的函数。
  • C 接口:在 C 语言代码中,调用第 7.6.9.2 节,“密钥环服务”中描述的密钥环服务函数。

示例(使用 SQL 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关component_keyring_encrypted_file允许的密钥值特性的信息,请参阅第 8.4.4.13 节,“支持的密钥环密钥类型和长度”。

dev.mysql.com/doc/refman/8.0/en/keyring-file-plugin.html

8.4.4.6 使用基于文件的 keyring_file 密钥环插件

keyring_file 密钥环插件将密钥环数据存储在服务器主机上的一个文件中。

截至 MySQL 8.0.34 版本,此插件已被弃用,并可能在将来的 MySQL 版本中被移除。相反,考虑使用 component_keyring_file 组件来存储密钥环数据(参见 第 8.4.4.4 节,“使用 component_keyring_file 基于文件的密钥环组件”)。

警告

对于加密密钥管理,keyring_file 插件并不是一个符合监管合规性的解决方案。诸如 PCI、FIPS 等安全标准要求使用密钥管理系统来在密钥保险库或硬件安全模块(HSM)中安全、管理和保护加密密钥。

要安装 keyring_file,请使用 第 8.4.4.3 节,“密钥环插件安装” 中找到的一般说明,以及此处找到的特定于 keyring_file 的配置信息。

为了在服务器启动过程中可用,必须使用 --early-plugin-load 选项加载 keyring_filekeyring_file_data 系统变量可选地配置 keyring_file 插件用于数据存储的文件位置。默认值是特定于平台的。要显式配置文件位置,请在启动时设置变量值。例如,在服务器的 my.cnf 文件中使用以下行,根据需要调整 .so 后缀和文件位置:

[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/usr/local/mysql/mysql-keyring/keyring

密钥环操作是事务性的:keyring_file 插件在写操作期间使用备份文件,以确保如果操作失败,可以回滚到原始文件。备份文件的名称与 keyring_file_data 系统变量的值相同,后缀为 .backup

有关 keyring_file_data 的更多信息,请参阅 第 8.4.4.19 节,“密钥环系统变量”。

为了确保只有在正确的密钥环存储文件存在时才刷新密钥,keyring_file 在文件中存储了密钥环的 SHA-256 校验和。在更新文件之前,插件会验证文件是否包含预期的校验和。

keyring_file 插件支持组成标准 MySQL 密钥环服务接口的函数。这些函数执行的密钥环操作可在两个级别访问:

  • SQL 接口:在 SQL 语句中,调用第 8.4.4.15 节,“通用密钥环密钥管理函数”中描述的函数。
  • C 接口:在 C 语言代码中,调用第 7.6.9.2 节,“密钥环服务”中描述的密钥环服务函数。

示例(使用 SQL 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关keyring_file允许的密钥值特性的信息,请参阅第 8.4.4.13 节,“支持的密钥环密钥类型和长度”。

原文:dev.mysql.com/doc/refman/8.0/en/keyring-encrypted-file-plugin.html

8.4.4.7 使用 keyring_encrypted_file 加密文件型密钥环插件

注意

keyring_encrypted_file 插件是包含在 MySQL 企业版中的一个扩展,这是一个商业产品。要了解更多关于商业产品的信息,请参见 www.mysql.com/products/

keyring_encrypted_file 密钥环插件将密钥环数据存储在一个加密的、受密码保护的文件中,该文件位于服务器主机本地。

截至 MySQL 8.0.34 版本,该插件已被弃用,并可能在未来的 MySQL 版本中被移除。相反,考虑使用 component_encrypted_keyring_file 组件来存储密钥环数据(参见 Section 8.4.4.5, “Using the component_keyring_encrypted_file Encrypted File-Based Keyring Component”)。

警告

对于加密密钥管理,keyring_encrypted_file 插件并不是一个旨在符合监管合规性的解决方案。安全标准如 PCI、FIPS 等要求使用密钥管理系统来保护、管理和保护密钥库或硬件安全模块(HSM)中的加密密钥。

要安装 keyring_encrypted_file,请使用在 Section 8.4.4.3, “Keyring Plugin Installation” 中找到的一般说明,以及在此处找到的特定于 keyring_encrypted_file 的配置信息。

为了在服务器启动过程中可用,keyring_encrypted_file 必须使用 --early-plugin-load 选项加载。要为加密密钥环数据文件指定密码,请设置 keyring_encrypted_file_password 系统变量。(密码是必需的;如果在服务器启动时未指定,keyring_encrypted_file 初始化将失败。)keyring_encrypted_file_data 系统变量可选地配置 keyring_encrypted_file 插件用于数据存储的文件位置。默认值是特定于平台的。要显式配置文件位置,请在启动时设置变量值。例如,在服务器 my.cnf 文件中使用这些行,根据需要调整 .so 后缀和文件位置以适应您的平台,并替换您选择的密码:

[mysqld]
early-plugin-load=keyring_encrypted_file.so
keyring_encrypted_file_data=/usr/local/mysql/mysql-keyring/keyring-encrypted
keyring_encrypted_file_password=*password*

因为 my.cnf 文件在写入时会存储密码,所以应该具有限制模式,并且只能被用来运行 MySQL 服务器的账户访问。

Keyring 操作是事务性的:keyring_encrypted_file插件在写操作期间使用备份文件,以确保如果操作失败,可以回滚到原始文件。备份文件的名称与keyring_encrypted_file_data系统变量的值相同,后缀为.backup

有关用于配置keyring_encrypted_file插件的系统变量的附加信息,请参阅 Section 8.4.4.19, “Keyring 系统变量”。

为确保仅在存在正确的 keyring 存储文件时才刷新密钥,keyring_encrypted_file在文件中存储了密钥环的 SHA-256 校验和。在更新文件之前,插件会验证文件是否包含预期的校验和。此外,keyring_encrypted_file在写入文件之前使用 AES 加密文件内容,并在读取文件后解密文件内容。

keyring_encrypted_file插件支持组成标准 MySQL Keyring 服务接口的函数。这些函数执行的 Keyring 操作可在两个级别访问:

  • SQL 接口:在 SQL 语句中,调用 Section 8.4.4.15, “通用 Keyring 密钥管理函数”中描述的函数。
  • C 接口:在 C 语言代码中,调用 Section 7.6.9.2, “Keyring 服务”中描述的 keyring 服务函数。

示例(使用 SQL 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关keyring_encrypted_file允许的关键值特征的信息,请参阅 Section 8.4.4.13, “支持的 Keyring 密钥类型和长度”。

原文:dev.mysql.com/doc/refman/8.0/en/keyring-okv-plugin.html

8.4.4.8 使用 keyring_okv KMIP 插件

注意

keyring_okv插件是包含在 MySQL 企业版中的扩展,这是一款商业产品。要了解更多关于商业产品的信息,请参阅www.mysql.com/products/

密钥管理互操作性协议(KMIP)使密钥管理服务器和其客户端之间能够通信。keyring_okv密钥环插件使用 KMIP 1.1 协议作为 KMIP 后端的客户端进行安全通信。密钥材料仅由后端生成,而不是由keyring_okv生成。该插件与以下支持 KMIP 的产品配合使用:

  • Oracle Key Vault
  • Gemalto SafeNet KeySecure Appliance
  • Townsend Alliance Key Manager
  • Entrust KeyControl

每个 MySQL 服务器实例必须单独注册为 KMIP 的客户端。如果两个或更多 MySQL 服务器实例使用相同的凭据集,它们可能会干扰彼此的功能。

keyring_okv插件支持组成标准 MySQL 密钥环服务接口的功能。这些功能执行的密钥环操作可在两个级别访问:

  • SQL 接口:在 SQL 语句中,调用第 8.4.4.15 节“通用密钥环密钥管理功能”中描述的函数。
  • C 接口:在 C 语言代码中,调用第 7.6.9.2 节“密钥环服务”中描述的密钥环服务函数。

示例(使用 SQL 接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

有关keyring_okv允许的密钥值特性的信息,请参阅第 8.4.4.13 节“支持的密钥环密钥类型和长度”。

要安装keyring_okv,请使用第 8.4.4.3 节“密钥环插件安装”中的通用说明,以及此处找到的特定于keyring_okv的配置信息。

  • 通用 keyring_okv 配置
  • 为 Oracle Key Vault 配置 keyring_okv
  • 为 Gemalto SafeNet KeySecure Appliance 配置 keyring_okv
  • 为 Townsend Alliance Key Manager 配置 keyring_okv
  • 为 Entrust KeyControl 配置 keyring_okv
  • 保护 keyring_okv 密钥文件的密码
一般 keyring_okv 配置

无论keyring_okv插件使用哪个 KMIP 后端进行密钥存储,keyring_okv_conf_dir系统变量都配置了keyring_okv用于其支持文件的目录位置。默认值为空,因此必须在插件能够与 KMIP 后端通信之前设置变量以命名一个正确配置的目录。否则,keyring_okv在服务器启动期间向错误日志写入一条消息,说明无法通信:

[Warning] Plugin keyring_okv reported: 'For keyring_okv to be
initialized, please point the keyring_okv_conf_dir variable to a directory
containing Oracle Key Vault configuration file and ssl materials'

keyring_okv_conf_dir变量必须命名一个包含以下项目的目录:

  • okvclient.ora:包含keyring_okv与之通信的 KMIP 后端详细信息的文件。
  • ssl:包含用于与 KMIP 后端建立安全连接所需的证书和密钥文件的目录:CA.pemcert.pemkey.pem。如果密钥文件受密码保护,ssl目录可以包含一个名为password.txt的单行文本文件,其中包含解密密钥文件所需的密码。

keyring_okv正常工作需要okvclient.ora文件和包含证书和密钥文件的ssl目录。用于将这些文件填充到配置目录的过程取决于与keyring_okv一起使用的 KMIP 后端,如其他地方所述。

keyring_okv用作其支持文件位置的配置目录应具有严格的模式,并且只能由用于运行 MySQL 服务器的帐户访问。例如,在 Unix 和类 Unix 系统上,要使用/usr/local/mysql/mysql-keyring-okv目录,以下命令(以root身份执行)创建目录并设置其模式和所有权:

cd /usr/local/mysql
mkdir mysql-keyring-okv
chmod 750 mysql-keyring-okv
chown mysql mysql-keyring-okv
chgrp mysql mysql-keyring-okv

要在服务器启动过程中可用,必须使用--early-plugin-load选项加载keyring_okv。此外,设置keyring_okv_conf_dir系统变量,告诉keyring_okv在哪里找到其配置目录。例如,在服务器my.cnf文件中使用以下行,根据需要调整平台的.so后缀和目录位置:

[mysqld]
early-plugin-load=keyring_okv.so
keyring_okv_conf_dir=/usr/local/mysql/mysql-keyring-okv

有关keyring_okv_conf_dir的更多信息,请参见第 8.4.4.19 节,“Keyring 系统变量”。

为 Oracle Key Vault 配置 keyring_okv

这里的讨论假定您熟悉 Oracle Key Vault。一些相关信息来源:

在 Oracle Key Vault 术语中,使用 Oracle Key Vault 存储和检索安全对象的客户端称为端点。要与  Oracle Key Vault 通信,必须注册为端点并通过下载和安装端点支持文件进行注册。请注意,必须为每个 MySQL Server  实例注册一个单独的端点。如果两个或更多个 MySQL Server 实例使用相同的端点,则它们可能会干扰彼此的功能。

以下过程简要总结了设置keyring_okv以与 Oracle Key Vault 一起使用的过程:

  1. 创建keyring_okv插件使用的配置目录。
  2. 在 Oracle Key Vault 中注册一个端点以获取注册令牌。
  3. 使用注册令牌获取okvclient.jar客户端软件下载。
  4. 安装客户端软件以填充包含 Oracle Key Vault 支持文件的keyring_okv配置目录。

使用以下过程配置keyring_okv和 Oracle Key Vault 一起工作。此描述仅概述了如何与 Oracle Key Vault 交互。有关详细信息,请访问Oracle Key Vault网站并查阅 Oracle Key Vault 管理员指南。

  1. 创建包含 Oracle Key Vault 支持文件的配置目录,并确保keyring_okv_conf_dir系统变量设置为该目录的名称(有关详细信息,请参阅通用 keyring_okv 配置)。
  2. 以具有系统管理员角色的用户身份登录到 Oracle Key Vault 管理控制台。
  3. 选择“端点”选项卡以到达端点页面。在端点页面上,点击“添加”。
  4. 提供所需的端点信息并点击“注册”。端点类型应为其他。成功注册将产生一个注册令牌。
  5. 从 Oracle Key Vault 服务器注销。
  6. 再次连接到 Oracle Key Vault 服务器,这次不需要登录。使用端点注册令牌进行注册并请求okvclient.jar软件下载。将此文件保存到您的系统中。
  7. 使用以下命令安装okvclient.jar文件(您必须具有 JDK 1.4 或更高版本):
java -jar okvclient.jar -d *dir_name* [-v]
  1. -d选项后面的目录名称是安装提取文件的位置。如果给出-v选项,则会产生日志信息,如果命令失败,这些信息可能会有用。
    当命令要求输入 Oracle Key Vault 端点密码时,请不要提供密码。而是按下Enter键。(结果是端点连接到 Oracle Key Vault 时不需要密码。)
    前面的命令会生成一个 okvclient.ora 文件,应该位于前面 java -jar 命令中 -d 选项指定的目录下的这个位置:
install_dir/conf/okvclient.ora
  1. 预期的文件内容包括类似于这样的行:
SERVER=*host_ip*:*port_num*
STANDBY_SERVER=*host_ip*:*port_num*
  1. SERVER 变量是必需的,STANDBY_SERVER 变量是可选的。keyring_okv 插件尝试与由 SERVER 变量指定的主机上运行的服务器通信,如果失败则退回到 STANDBY_SERVER
    注意
    如果现有文件不是这种格式,则创建一个新文件,其中包含前面示例中显示的行。此外,在运行 okvutil 命令之前,请考虑备份 okvclient.ora 文件。根据需要恢复文件。
    从 MySQL 8.0.29 开始,您可以指定多个备用服务器(最多 64 个)。如果这样做,keyring_okv 插件会迭代它们,直到建立连接,如果无法建立连接则会失败。要添加额外的备用服务器,请编辑 okvclient.ora 文件,将服务器的 IP 地址和端口号作为 STANDBY_SERVER 变量的值以逗号分隔的列表指定。例如:
STANDBY_SERVER=*host_ip*:*port_num*,*host_ip*:*port_num*,*host_ip*:*port_num*,*host_ip*:*port_num*
  1. 确保备用服务器列表保持简短、准确和最新,并删除不再有效的服务器。每次连接尝试都会等待 20 秒,因此长列表中存在无效服务器会显著影响 keyring_okv 插件的连接时间,从而影响服务器启动时间。
  2. 转到 Oracle Key Vault 安装程序目录,并通过运行此命令测试设置:
okvutil/bin/okvutil list
  1. 输出应该类似于这样:
Unique ID                               Type            Identifier
255AB8DE-C97F-482C-E053-0100007F28B9  Symmetric Key -
264BF6E0-A20E-7C42-E053-0100007FB29C  Symmetric Key -
  1. 对于一个全新的 Oracle Key Vault 服务器(一个没有任何密钥的服务器),输出看起来像这样,以表明保险库中没有密钥:
no objects found
  1. 使用此命令从 okvclient.jar 文件中提取包含 SSL 材料的 ssl 目录:
jar xf okvclient.jar ssl
  1. 将 Oracle Key Vault 支持文件(okvclient.ora 文件和 ssl 目录)复制到配置目录中。
  2. (可选)如果您希望对密钥文件进行密码保护,请使用 Password-Protecting the keyring_okv Key File 中的说明。

完成前述过程后,重新启动 MySQL 服务器。它会加载 keyring_okv 插件,并且 keyring_okv 使用其配置目录中的文件与 Oracle Key Vault 进行通信。

配置 keyring_okv 以适用于 Gemalto SafeNet KeySecure Appliance

Gemalto SafeNet KeySecure Appliance 使用 KMIP 协议(版本 1.1 或 1.2)。支持 KMIP 1.1 的 keyring_okv 密钥环插件可以使用 KeySecure 作为其 KMIP 后端进行密钥环存储。

使用以下步骤配置 keyring_okv 和 KeySecure 一起工作。描述仅总结了如何与 KeySecure 交互。有关详细信息,请参阅 KeySecure 用户指南 中的添加 KMIP 服务器部分。

  1. 创建包含 KeySecure 支持文件的配置目录,并确保 keyring_okv_conf_dir 系统变量设置为该目录的名称(有关详细信息,请参阅 通用 keyring_okv 配置)。
  2. 在配置目录中,创建一个名为 ssl 的子目录,用于存储所需的 SSL 证书和密钥文件。
  3. 在配置目录中,创建一个名为 okvclient.ora 的文件。它应具有以下格式:
SERVER=*host_ip*:*port_num*
STANDBY_SERVER=*host_ip*:*port_num*
  1. 例如,如果 KeySecure 在主机 198.51.100.20 上运行,并在端口 9002 上监听,同时也在备用主机 203.0.113.125 上运行,并在端口 8041 上监听,那么 okvclient.ora 文件如下所示:
SERVER=198.51.100.20:9002
STANDBY_SERVER=203.0.113.125:8041
  1. 从 MySQL 8.0.29 开始,您可以指定多个备用服务器(最多 64 个)。如果这样做,keyring_okv 插件会对它们进行迭代,直到建立连接,如果无法建立连接则会失败。要添加额外的备用服务器,请编辑 okvclient.ora 文件,将服务器的 IP 地址和端口号作为逗号分隔列表指定在 STANDBY_SERVER 变量的值中。例如:
STANDBY_SERVER=*host_ip*:*port_num*,*host_ip*:*port_num*,*host_ip*:*port_num*,*host_ip*:*port_num*
  1. 确保备用服务器列表保持简短、准确和最新,并删除不再有效的服务器。每次连接尝试都会等待 20 秒,因此长时间的无效服务器列表会显著影响 keyring_okv 插件的连接时间,从而影响服务器启动时间。
  2. 以具有证书颁发机构访问权限的管理员凭据登录到 KeySecure 管理控制台。
  3. 导航至安全性 >> 本地 CA 并创建本地证书颁发机构(CA)。
  4. 转到受信任的 CA 列表。选择默认并点击属性。然后选择受信任证书颁发机构列表的编辑并添加刚创建的 CA。
  5. 下载 CA 并将其保存在 ssl 目录中,文件名为 CA.pem
  6. 导航至安全性 >> 证书请求并创建证书。然后您可以下载一个包含证书 PEM 文件的压缩 tar 文件。
  7. 从下载的文件中提取 PEM 文件。例如,如果文件名为 csr_w_pk_pkcs8.gz,请使用以下命令进行解压缩和解包:
tar zxvf csr_w_pk_pkcs8.gz
  1. 提取操作会生成两个文件:certificate_request.pemprivate_key_pkcs8.pem
  2. 使用此 openssl 命令解密私钥并创建名为 key.pem 的文件:
openssl pkcs8 -in private_key_pkcs8.pem -out key.pem
  1. key.pem 文件复制到 ssl 目录中。
  2. certificate_request.pem中的证书请求复制到剪贴板中。
  3. 导航至安全性 >> 本地 CA。选择之前创建的相同 CA(用于创建CA.pem文件的那个),然后点击签署请求。将剪贴板中的证书请求粘贴进去,选择客户端的证书目的(密钥环是 KeySecure 的客户端),然后点击签署请求。结果是在新页面中使用所选 CA 签署的证书。
  4. 将签署的证书复制到剪贴板,然后将剪贴板内容保存为名为cert.pem的文件,保存在ssl目录中。
  5. (可选)如果您希望对密钥文件进行密码保护,请使用密码保护 keyring_okv 密钥文件中的说明。

完成上述过程后,重新启动 MySQL 服务器。它会加载keyring_okv插件,并且keyring_okv会使用其配置目录中的文件与 KeySecure 进行通信。

配置用于 Townsend Alliance Key Manager 的keyring_okv

Townsend Alliance Key Manager 使用 KMIP 协议。keyring_okv密钥环插件可以使用 Alliance Key Manager 作为其 KMIP 后端进行密钥环存储。有关更多信息,请参见用于 MySQL 的 Alliance Key Manager

配置用于 Entrust KeyControl 的keyring_okv

Entrust KeyControl 使用 KMIP 协议。keyring_okv密钥环插件可以使用 Entrust KeyControl 作为其 KMIP 后端进行密钥环存储。有关更多信息,请参见Oracle MySQL 和 Entrust KeyControl 与 nShield HSM 集成指南


MySQL8 中文参考(二十九)(3)https://developer.aliyun.com/article/1566124

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
关系型数据库 MySQL Unix
MySQL8 中文参考(二十三)(3)
MySQL8 中文参考(二十三)
48 4
|
4月前
|
存储 缓存 关系型数据库
MySQL8 中文参考(二十一)(5)
MySQL8 中文参考(二十一)
74 3
|
4月前
|
存储 监控 Java
MySQL8 中文参考(二十一)(4)
MySQL8 中文参考(二十一)
112 3
|
4月前
|
存储 安全 关系型数据库
MySQL8 中文参考(二十一)(1)
MySQL8 中文参考(二十一)
46 3
|
4月前
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十一)(3)
MySQL8 中文参考(二十一)
65 2
|
4月前
|
关系型数据库 MySQL Unix
MySQL8 中文参考(二十一)(2)
MySQL8 中文参考(二十一)
56 2
|
4月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8 中文参考(二十五)(5)
MySQL8 中文参考(二十五)
38 2
|
4月前
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十四)(1)
MySQL8 中文参考(二十四)
43 2
|
4月前
|
NoSQL 关系型数据库 MySQL
MySQL8 中文参考(二十三)(2)
MySQL8 中文参考(二十三)
52 2
|
4月前
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十三)(1)
MySQL8 中文参考(二十三)
31 2