该 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 密钥。
该插件已弃用,并将在未来 MySQL 版本中删除。相反,考虑使用 component_keyring_oci
组件来存储密钥环数据(参阅 第 8.4.4.11 节,“使用 Oracle Cloud Infrastructure Vault 密钥环组件”)。
该 keyring_oci
插件支持标准 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_oci
所允许的密钥值特征,请参阅 第 8.4.4.13 节,“支持的密钥环密钥类型和长度”。
要安装 keyring_oci
,请使用 第 8.4.4.3 节,“密钥环插件安装” 中的通用说明,以及特定于 keyring_oci
的配置信息。插件特定配置涉及设置多个系统变量,以指示 Oracle Cloud Infrastructure 资源的名称或值。
假设您熟悉 Oracle Cloud Infrastructure 概念,但以下文档可能在设置 keyring_oci
插件时有所帮助:
该 keyring_oci
插件支持以下表格所示的配置参数。要指定这些参数,请将值分配给相应的系统变量。
Configuration Parameter | System Variable | Mandatory |
---|---|---|
User OCID | keyring_oci_user |
是 |
Tenancy OCID | keyring_oci_tenancy |
是 |
Compartment OCID | keyring_oci_compartment |
是 |
Vault OCID | keyring_oci_virtual_vault |
是 |
Master key OCID | keyring_oci_master_key |
是 |
Encryption server endpoint | keyring_oci_encryption_endpoint |
是 |
Key management server endpoint | 密钥环OCI管理端点 |
是 |
Vaults server endpoint | 密钥环OCI保险库端点 |
是 |
Secrets server endpoint | 密钥环OCI机密端点 |
是 |
RSA private key file | 密钥环OCI密钥文件 |
是 |
RSA private key fingerprint | 密钥环OCI密钥指纹 |
是 |
CA certificate bundle file | 密钥环OCI CA证书 |
否 |
要在服务器启动过程中使用 密钥环OCI
,必须使用 --early-plugin-load
选项加载它。如上表所示,几个插件相关的系统变量是强制性的,必须设置:
-
Oracle Cloud Infrastructure 广泛使用 Oracle Cloud IDs (OCIDs) 来指定资源,几个
密钥环OCI
参数指定了要使用的资源的 OCID 值。因此,在使用密钥环OCI
插件之前,必须满足以下先决条件:-
必须存在一个连接到 Oracle Cloud Infrastructure 的用户。如果必要,创建用户并将用户 OCID 分配给
密钥环OCI用户
系统变量。 -
必须存在 Oracle Cloud Infrastructure 租户、MySQL comparment 和保险库。创建这些资源,如果必要,并确保用户可以使用它们。将租户、comparment 和保险库的 OCID 分配给
密钥环OCI租户
、密钥环OCI comparment
和密钥环OCI虚拟保险库
系统变量。 -
必须存在一个主密钥用于加密。创建它,如果必要,并将其 OCID 分配给
密钥环OCI主密钥
系统变量。
-
-
必须指定几个服务器端点。这些端点是保险库特定的,Oracle Cloud Infrastructure 在创建保险库时分配它们。从保险库详细信息页面获取它们的值,并将它们分配给
密钥环OCI加密端点
、密钥环OCI管理端点
、密钥环OCI保险库端点
和密钥环OCI机密端点
系统变量。 -
Oracle Cloud Infrastructure API 使用 RSA 私钥/公钥对进行身份验证。使用 Required Keys and OCIDs 中的说明创建这个密钥对,并获取密钥指纹。将私钥文件名和密钥指纹分配给
密钥环OCI密钥文件
和密钥环OCI密钥指纹
系统变量。
此外,密钥环OCI CA证书
可以选择性地设置,以指定证书颁发机构(CA)证书 bundle 文件用于对等身份验证。
如果从 Oracle Cloud Infrastructure 控制台复制参数,复制的值可能包括初始 https://
部分。省略该部分时设置相应的 密钥环OCI
系统变量。
例如,要加载和配置 密钥环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
有关 密钥环OCI
插件特定系统变量的更多信息,请参阅 第 8.4.4.19 节,“密钥环系统变量”。
插件 keyring_oci
不支持运行时重新配置,无法在运行时修改其系统变量。要更改配置参数,请执行以下操作:
-
在
my.cnf
文件中修改参数设置,或者使用SET PERSIST_ONLY
对于持久化到mysqld-auto.conf
的参数。 -
重新启动服务器。