Documentation Home
MySQL 8.0 参考手册  / 第 4 章 MySQL 程序  / 4.6 管理和实用程序  / 4.6.8 mysql_migrate_keyring — 密钥环密钥迁移实用程序  /  6.4.4.12 使用 Oracle Cloud Infrastructure Vault Keyring 插件

6.4.4.12 使用 Oracle Cloud Infrastructure Vault Keyring 插件

笔记

keyring_oci插件是商业产品 MySQL Enterprise Edition 中包含的扩展。要了解有关商业产品的更多信息,请参阅https://www.mysql.com/products/

keyring_oci插件是一个密钥环插件,可与 Oracle Cloud Infrastructure Vault 通信以进行后端存储。没有关键信息永久存储在 MySQL 服务器本地存储中。所有密钥都存储在 Oracle Cloud Infrastructure Vault 中,使该插件非常适合 Oracle Cloud Infrastructure MySQL 客户管理其 MySQL Enterprise Edition 密钥。

keyring_oci插件支持构成标准 MySQL Keyring 服务接口的功能。可以在两个级别访问由这些函数执行的密钥环操作:

示例(使用 SQL 接口):

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

有关 允许的密钥值特征的信息keyring_oci,请参阅 第 6.4.4.13 节,“支持的密钥环密钥类型和长度”

要安装keyring_oci,请使用 第 6.4.4.3 节“Keyring 插件安装”中的一般说明,以及此处提供的特定配置信息 keyring_oci。特定于插件的配置涉及设置许多系统变量以指示 Oracle Cloud Infrastructure 资源的名称或值。

假设您熟悉 Oracle Cloud Infrastructure 概念,但在设置keyring_oci插件要使用的资源时,以下文档可能会有所帮助:

keyring_oci插件支持下表所示的配置参数。要指定这些参数,请将值分配给相应的系统变量。

配置参数 系统变量 强制的
用户 OCID keyring_oci_user 是的
租赁 OCID keyring_oci_tenancy 是的
隔间OCID keyring_oci_compartment 是的
库 OCID keyring_oci_virtual_vault 是的
主密钥 OCID keyring_oci_master_key 是的
加密服务器端点 keyring_oci_encryption_endpoint 是的
密钥管理服务器端点 keyring_oci_management_endpoint 是的
保管库服务器端点 keyring_oci_vaults_endpoint 是的
秘密服务器端点 keyring_oci_secrets_endpoint 是的
RSA 私钥文件 keyring_oci_key_file 是的
RSA私钥指纹 keyring_oci_key_fingerprint 是的
CA 证书捆绑文件 keyring_oci_ca_certificate

要在服务器启动过程中可用, keyring_oci必须使用该 --early-plugin-load选项加载。如上表所示,几个与插件相关的系统变量是必需的,也必须设置:

  • Oracle 云基础设施广泛使用 Oracle 云 ID (OCID) 来指定资源,并且有几个keyring_oci 参数指定要使用的资源的 OCID 值。因此,在使用 keyring_oci插件之前,必须满足以下先决条件:

    • 必须存在用于连接到 Oracle Cloud Infrastructure 的用户。如有必要,创建用户并将用户 OCID 分配给 keyring_oci_user系统变量。

    • 要使用的 Oracle Cloud Infrastructure 租赁必须存在,租赁内的 MySQL 区间和区间内的保险库也必须存在。如有必要,请创建这些资源并确保用户能够使用它们。将租赁、隔间和保管库的 OCID 分配给 keyring_oci_tenancykeyring_oci_compartmentkeyring_oci_virtual_vault 系统变量。

    • 必须存在用于加密的主密钥。如有必要,创建它并将其 OCID 分配给 keyring_oci_master_key 系统变量。

  • 必须指定几个服务器端点。这些端点特定于保管库,Oracle 云基础设施在创建保管库时分配它们。从保险库详细信息页面获取它们的值并将它们分配给 keyring_oci_encryption_endpointkeyring_oci_management_endpointkeyring_oci_vaults_endpointkeyring_oci_secrets_endpoint 系统变量。

  • Oracle Cloud Infrastructure API 使用 RSA 私钥/公钥对进行身份验证。要创建此密钥对并获取密钥指纹,请使用 Required Keys and OCIDs中的说明。将私钥文件名和密钥指纹分配给 keyring_oci_key_filekeyring_oci_key_fingerprint 系统变量。

除了强制系统变量之外, keyring_oci_ca_certificate 还可以选择设置为指定用于对等身份验证的证书颁发机构 (CA) 证书捆绑文件。

重要的

如果您从 Oracle Cloud Infrastructure 控制台复制参数,则复制的值可能包含初始https://部分。设置相应的 keyring_oci系统变量时省略该部分。

例如,要加载和配置 ,请在服务器文件 keyring_oci中使用这些行 (根据需要调整平台的后缀和文件位置): my.cnf.so

[mysqld]
early-plugin-load=keyring_oci.so
keyring_oci_user=ocid1.user.oc1..longAlphaNumericString
keyring_oci_tenancy=ocid1.tenancy.oc1..longAlphaNumericString
keyring_oci_compartment=ocid1.compartment.oc1..longAlphaNumericString
keyring_oci_virtual_vault=ocid1.vault.oc1.iad.shortAlphaNumericString.longAlphaNumericString
keyring_oci_master_key=ocid1.key.oc1.iad.shortAlphaNumericString.longAlphaNumericString
keyring_oci_encryption_endpoint=shortAlphaNumericString-crypto.kms.us-ashburn-1.oraclecloud.com
keyring_oci_management_endpoint=shortAlphaNumericString-management.kms.us-ashburn-1.oraclecloud.com
keyring_oci_vaults_endpoint=vaults.us-ashburn-1.oci.oraclecloud.com
keyring_oci_secrets_endpoint=secrets.vaults.us-ashburn-1.oci.oraclecloud.com
keyring_oci_key_file=file_name
keyring_oci_key_fingerprint=12:34:56:78:90:ab:cd:ef:12:34:56:78:90:ab:cd:ef

有关 keyring_oci插件特定系统变量的其他信息,请参阅第 6.4.4.19 节,“密钥环系统变量”

keyring_oci插件不支持运行时重新配置,并且其系统变量都不能在运行时修改。要更改配置参数,请执行以下操作:

  • 修改my.cnf 文件中的参数设置,或者 SET PERSIST_ONLY用于持久化到 mysqld-auto.conf.

  • 重新启动服务器。