#### 6.4.4.11 使用 Oracle Cloud Infrastructure Vault Keyring 插件

[](<>)[](<>)

笔记

这`密钥环_oci`plugin 是商业产品 MySQL 企业版中包含的扩展。要了解有关商业产品的更多信息，请参阅<https://www.mysql.com/products/>.

这`密钥环_oci`plugin 是一个与 Oracle Cloud Infrastructure Vault 通信以进行后端存储的密钥环插件。没有关键信息永久存储在 MySQL 服务器本地存储中。所有密钥都存储在 Oracle Cloud Infrastructure Vault 中，因此该插件非常适合 Oracle Cloud Infrastructure MySQL 客户管理其 MySQL 企业版密钥。

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

-   SQL接口：在SQL语句中，调用中描述的函数[第 6.4.4.14 节，“通用密钥环密钥管理功能”](keyring-functions-general-purpose.html).

-   C接口：在C语言代码中，调用描述的keyring服务函数[第 5.6.9.2 节，“密钥环服务”](keyring-service.html).

    示例（使用 SQL 接口）：


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

有关允许的键值特征的信息`密钥环_oci`， 看[第 6.4.4.12 节，“支持的密钥环密钥类型和长度”](keyring-key-types.html).

安装`密钥环_oci`, 使用中的一般说明[第 6.4.4.3 节，“密钥环插件安装”](keyring-plugin-installation.html)，以及特定于的配置信息`密钥环_oci`在这里找到。特定于插件的配置涉及设置许多系统变量以指示 Oracle 云基础设施资源的名称或值。

[](<>)

假定您熟悉 Oracle Cloud Infrastructure 概念，但以下文档在设置供`密钥环_oci`插入：

-   [保险柜概述](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm)

-   [资源标识符](https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/identifiers.htm)

-   [所需的密钥和 OCID](https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm)

-   [管理密钥](https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingkeys.htm)

-   [管理隔间](https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/managingcompartments.htm)

-   [管理保管库](https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingvaults.htm)

-   [管理机密](https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Tasks/managingsecrets.htm)

    这`密钥环_oci`插件支持下表所示的配置参数。要指定这些参数，请将值分配给相应的系统变量。

| 配置参数 | 系统变量 | 强制的 |
| ---- | ---- | --- |
| 用户 OCID | [`keyring_oci_user`](keyring-system-variables.html#sysvar_keyring_oci_user) | 是的 |
| 租赁 OCID | [`keyring_oci_tenancy`](keyring-system-variables.html#sysvar_keyring_oci_tenancy) | 是的 |
| 隔间OCID | [`keyring_oci_compartment`](keyring-system-variables.html#sysvar_keyring_oci_compartment) | 是的 |
| 保险柜 OCID | [`keyring_oci_virtual_vault`](keyring-system-variables.html#sysvar_keyring_oci_virtual_vault) | 是的 |
| 万能钥匙 OCID | [`keyring_oci_master_key`](keyring-system-variables.html#sysvar_keyring_oci_master_key) | 是的 |
| 加密服务器端点 | [`keyring_oci_encryption_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_encryption_endpoint) | 是的 |
| 密钥管理服务器端点 | [`keyring_oci_management_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_management_endpoint) | 是的 |
| 保管库服务器端点 | [`keyring_oci_vaults_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_vaults_endpoint) | 是的 |
| 秘密服务器端点 | [`keyring_oci_secrets_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_secrets_endpoint) | 是的 |
| RSA 私钥文件 | [`keyring_oci_key_file`](keyring-system-variables.html#sysvar_keyring_oci_key_file) | 是的 |
| RSA私钥指纹 | [`keyring_oci_key_fingerprint`](keyring-system-variables.html#sysvar_keyring_oci_key_fingerprint) | 是的 |
| CA 证书捆绑文件 | [`keyring_oci_ca_certificate`](keyring-system-variables.html#sysvar_keyring_oci_ca_certificate) | 不 |

要在服务器启动过程中可用，`密钥环_oci`必须使用[`--early-plugin-load`](server-options.html#option_mysqld_early-plugin-load)选项。如上表所示，有几个插件相关的系统变量是强制性的，也必须设置：

-   Oracle Cloud Infrastructure 广泛使用 Oracle Cloud ID (OCID) 来指定资源，以及一些`密钥环_oci`参数指定要使用的资源的 OCID 值。因此，在使用`密钥环_oci`插件，必须满足以下先决条件：

    -   必须存在连接到 Oracle Cloud Infrastructure 的用户。如有必要，创建用户并将用户 OCID 分配给[`keyring_oci_user`](keyring-system-variables.html#sysvar_keyring_oci_user)系统变量。

    -   要使用的 Oracle Cloud Infrastructure 租户必须存在，并且租户中的 MySQL 隔离专区和隔离专区中的保管库也必须存在。如有必要，创建这些资源并确保用户能够使用它们。将租户、区间和保管库的 OCID 分配给[`keyring_oci_tenancy`](keyring-system-variables.html#sysvar_keyring_oci_tenancy),[`keyring_oci_compartment`](keyring-system-variables.html#sysvar_keyring_oci_compartment)， 和[`keyring_oci_virtual_vault`](keyring-system-variables.html#sysvar_keyring_oci_virtual_vault)系统变量。

    -   必须存在用于加密的主密钥。如有必要，创建它并将其 OCID 分配给[`keyring_oci_master_key`](keyring-system-variables.html#sysvar_keyring_oci_master_key)系统变量。

-   必须指定几个服务器端点。这些端点是特定于保管库的，Oracle Cloud Infrastructure 在创建保管库时分配它们。从保管库详细信息页面获取它们的值并将它们分配给[`keyring_oci_encryption_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_encryption_endpoint),[`keyring_oci_management_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_management_endpoint),[`keyring_oci_vaults_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_vaults_endpoint)， 和[`keyring_oci_secrets_endpoint`](keyring-system-variables.html#sysvar_keyring_oci_secrets_endpoint)系统变量。

-   Oracle 云基础设施 API 使用 RSA 私钥/公钥对进行身份验证。要创建此密钥对并获取密钥指纹，请使用以下说明[所需的密钥和 OCID](https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/apisigningkey.htm).将私钥文件名和密钥指纹分配给[`keyring_oci_key_file`](keyring-system-variables.html#sysvar_keyring_oci_key_file)和[`keyring_oci_key_fingerprint`](keyring-system-variables.html#sysvar_keyring_oci_key_fingerprint)系统变量。

    除了强制性的系统变量，[`keyring_oci_ca_certificate`](keyring-system-variables.html#sysvar_keyring_oci_ca_certificate)可以选择设置为指定用于对等身份验证的证书颁发机构 (CA) 证书捆绑文件。

重要的

如果您从 Oracle Cloud Infrastructure 控制台复制参数，则复制的值可能包括初始值`https://`部分。设置对应的时候省略那部分`密钥环_oci`系统变量。

例如，加载和配置`密钥环_oci8`, 在服务器中使用这些行`我的.cnf`文件（调整`。所以`必要时为您的平台添加后缀和文件位置）：

```
[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`插件特定的系统变量，见[第 6.4.4.18 节，“密钥环系统变量”](keyring-system-variables.html).

这`密钥环_oci`插件不支持运行时重新配置，并且它的任何系统变量都不能在运行时修改。要更改配置参数，请执行以下操作：

-   修改参数设置`我的.cnf`文件，或使用[`SET PERSIST_ONLY`](set-variable.html)对于持久化的参数`mysqld-auto.conf`.

-   重新启动服务器。
