该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 接口:在 SQL 语句中,调用 第 6.4.4.15 节“通用密钥环密钥管理函数”中描述的函数。
C 接口:在 C 语言代码中,调用第 5.6.9.2 节“密钥环服务”中描述的密钥环服务函数。
示例(使用 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_tenancy
、keyring_oci_compartment
和keyring_oci_virtual_vault
系统变量。必须存在用于加密的主密钥。如有必要,创建它并将其 OCID 分配给
keyring_oci_master_key
系统变量。
必须指定几个服务器端点。这些端点特定于保管库,Oracle 云基础设施在创建保管库时分配它们。从保险库详细信息页面获取它们的值并将它们分配给
keyring_oci_encryption_endpoint
、keyring_oci_management_endpoint
、keyring_oci_vaults_endpoint
和keyring_oci_secrets_endpoint
系统变量。Oracle Cloud Infrastructure API 使用 RSA 私钥/公钥对进行身份验证。要创建此密钥对并获取密钥指纹,请使用 Required Keys and OCIDs中的说明。将私钥文件名和密钥指纹分配给
keyring_oci_key_file
和keyring_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
.重新启动服务器。