10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.5 mb
PDF (A4)- 41.6 mb
手册页(TGZ)- 262.2 kb
手册页(邮政编码)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

MySQL 8.0参考手册/.../ 使用keyring_aws Amazon Web Services Keyring插件

6.4.4.9使用keyring_aws Amazon Web Services Keyring插件

请注意

keyring_awsplugin是MySQL企业版的一个扩展,它是一个商业产品。要了解更多关于商业产品的信息,请参见https://www.10bet靠谱mysql.com/products/

keyring_awskeyring插件与Amazon Web Services密钥管理服务(AWS KMS)通信,作为密钥生成的后端,并使用本地文件进行密钥存储。所有密匙环材料都完全由AWS服务器生成,而不是由keyring_aws

keyring_aws可在以下平台上使用:

  • EL7

  • macOS 10.13和10.14

  • SLES 12

  • Ubuntu 14.04和16.04

  • 窗户

这里的讨论假设您大致熟悉AWS,特别是熟悉KMS。一些相关的信息来源:

的配置和使用信息keyring_aws密匙环插件:

keyring_aws配置

安装keyring_aws,使用在第6.4.4.3节“密匙环插件安装”,以及这里找到的特定于插件的配置信息。

插件库文件包含keyring_aws插件和两个可加载函数,keyring_aws_rotate_cmk ()而且keyring_aws_rotate_keys ()

配置keyring_aws,您必须获取一个秘密访问密钥,提供与AWS KMS通信的凭据,并将其写入配置文件:

  1. 创建AWS KMS帐号。

  2. 使用AWS KMS创建一个秘密访问密钥ID和秘密访问密钥。访问密钥用于验证您和应用程序的身份。

  3. 使用AWS KMS帐户创建客户主密钥(CMK) ID。在MySQL启动时,设置keyring_aws_cmk_id系统变量的CMK ID值。该变量是必选的,没有默认值。(它的值可以在运行时更改,如果需要使用集全球)。

  4. 如果需要,创建配置文件所在的目录。该目录应该具有限制性模式,并且只有用于运行MySQL服务器的帐户才能访问该目录。例如,在Unix和类Unix系统上使用/usr/local/mysql/mysql-keyring / keyring_aws_conf作为文件名,下面的命令(以)创建父目录,并设置目录模式和归属:

    Shell > CD /usr/local/mysql Shell > mkdir mysql-keyring Shell > chmod 750 mysql-keyring Shell > chown mysql mysql-keyring Shell > CHGRP mysql mysql-keyring

    在MySQL启动时,设置keyring_aws_conf_file系统变量/usr/local/mysql/mysql-keyring / keyring_aws_conf来向服务器指示配置文件的位置。

  5. 准备keyring_aws配置文件,它应该包含两行:

    • 第1行:秘密访问密钥ID

    • 第2行:秘密访问密钥

    例如,如果密钥ID为wwwwwwwwwwwwwEXAMPLE关键是xxxxxxxxxxxxx / yyyyyyy / zzzzzzzzEXAMPLEKEY,配置文件如下所示:

    wwwwwwwwwwwwwEXAMPLE xxxxxxxxxxxxx / yyyyyyy / zzzzzzzzEXAMPLEKEY

为了在服务器启动过程中可用,keyring_aws必须使用——early-plugin-load选择。的keyring_aws_cmk_idsystem变量是必选项,配置从AWS KMS服务器获取的客户主密钥(CMK) ID。的keyring_aws_conf_file而且keyring_aws_data_file控件使用的文件的位置,系统变量可选地配置keyring_aws配置信息和数据存储插件。文件位置变量默认值是特定于平台的。若要显式配置位置,请在启动时设置变量值。例如,在服务器中使用这些行my.cnf文件,调整所以根据需要为平台添加后缀和文件位置:

(mysqld) early-plugin-load = keyring_aws。因此keyring_aws_cmk_id='arn:aws:kms:us-west: 2:111122223333:key/abcd1234-ef56-ab12-cd34-ef56abcd1234' keyring_aws_conf_file=/usr/local/mysql/mysql-keyring/keyring_aws_conf keyring_aws_data_file=/usr/local/mysql/mysql-keyring/keyring_aws_data . key =

keyring_aws插件要成功启动,配置文件必须存在并包含有效的秘密访问密钥信息,并按照前面的描述进行初始化。存储文件不需要存在。如果没有,keyring_aws尝试创建它(以及它的父目录,如果需要)。

有关用于配置的系统变量的其他信息keyring_aws插件,看到第6.4.4.18节“密匙环系统变量”

启动MySQL服务器并安装与keyring_aws插件。这是一次性操作,通过执行以下语句,调整所以为您的平台添加必要的后缀:

函数keyring_aws_rotate_cmk返回INTEGER SONAME 'keyring_aws.so';函数keyring_aws_rotate_keys返回INTEGER SONAME 'keyring_aws.so';

有关的更多信息keyring_aws功能,请参阅第6.4.4.15节“特定于插件的密钥环密钥管理功能”

keyring_aws操作

在插件启动时,keyring_aws插件从配置文件中读取AWS的秘密访问密钥ID和密钥。它还将存储文件中包含的任何加密密钥读取到内存缓存中。

在操作过程中,keyring_aws在内存缓存中维护加密密钥,并使用存储文件作为本地持久存储。每个密匙环操作都是事务性的:keyring_aws要么成功更改内存中的密钥缓存和密匙环存储文件,要么操作失败,密匙环状态保持不变。

要确保仅当存在正确的密匙环存储文件时才刷新密匙,keyring_aws在文件中保存密匙环的SHA-256校验和。在更新文件之前,插件验证文件是否包含预期的校验和。

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

示例(使用SQL接口):

SELECT keyring_key_generate('MyKey', 'AES', 32);选择keyring_key_remove(“MyKey”);

此外,keyring_aws_rotate_cmk ()而且keyring_aws_rotate_keys ()功能扩展密匙环插件接口提供标准密匙环服务接口没有覆盖的aws相关功能。只有使用SQL调用这些函数才能访问这些功能。没有对应的c语言关键业务功能。

所允许的键值的特征的信息keyring_aws,请参阅第6.4.4.12节“支持的Keyring密钥类型和长度”

keyring_aws凭据的变化

假设keyring_aws插件在服务器启动时已正确初始化,可以更改用于与AWS KMS通信的凭据:

  1. 使用AWS KMS创建一个新的秘密访问密钥ID和秘密访问密钥。

  2. 将新的凭据存储在配置文件中(由keyring_aws_conf_file系统变量)。文件格式如前面所述。

  3. 初始化keyring_aws插件,以便它重新读取配置文件。假设新的凭据有效,插件应该会成功初始化。

    有两种方法可以重新初始化插件:

    • 重新启动服务器。这更简单,也没有副作用,但是不适合那些需要尽可能少的服务器停机和重启的安装。

    • 重新初始化插件,而不重新启动服务器,方法是执行以下语句,调整所以为您的平台添加必要的后缀:

      卸载插件keyring_aws;安装插件keyring_aws SONAME 'keyring_aws.so'
      请注意

      除了在运行时加载插件,安装插件注册插件有副作用吗mysql.plugin系统表。正因如此,如果你决定停止使用keyring_aws,这是不够的——early-plugin-load选项中用于启动服务器的选项集。这阻止了插件的提前加载,但是服务器仍然尝试在启动序列中加载注册的插件时加载它mysql.plugin

      因此,如果您执行卸载插件+安装插件顺序来更改AWS KMS凭据,然后停止使用keyring_aws,就必须执行卸载插件除删除插件外,再次取消插件注册——early-plugin-load选择。