的keyring_aws
插件是MySQL企业版的一个扩展,一个商业产品。要了解有关商业产品的更多信息,请参见https://www.10bet靠谱mysql.com/products/.
的keyring_aws
keyring插件与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
的一般说明章节6.4.3,“Keyring插件安装”,以及这里找到的特定于插件的配置信息。
插件库文件包含keyring_aws
插件和两个用户定义函数(udf),keyring_aws_rotate_cmk ()
而且keyring_aws_rotate_keys ()
.
配置keyring_aws
,您必须获取一个秘密访问密钥,为与AWS KMS通信提供凭据,并将其写入配置文件:
创建AWS KMS帐户。
使用AWS KMS创建一个秘密访问密钥ID和秘密访问密钥。访问键用于验证您和应用程序的身份。
使用AWS KMS帐户创建客户主密钥(CMK) ID。在MySQL启动时,设置
keyring_aws_cmk_id
系统变量到CMK ID值。这个变量是强制的,没有默认值。(如果需要使用,它的值可以在运行时更改集全球
.)如有必要,请创建配置文件所在的目录。该目录应该有一个限制模式,并且只有用于运行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
向服务器指示配置文件的位置。准备
keyring_aws
配置文件,它应该包含两行:第1行:秘密访问密钥ID
第2行:秘密访问密钥
例如,如果密钥ID为
wwwwwwwwwwwwwEXAMPLE
关键是xxxxxxxxxxxxx / yyyyyyy / zzzzzzzzEXAMPLEKEY
,配置文件如下所示:wwwwwwwwwwwwwEXAMPLE xxxxxxxxxxxxx / yyyyyyy / zzzzzzzzEXAMPLEKEY
为了在服务器启动过程中可用,keyring_aws
必须使用——early-plugin-load
选择。的keyring_aws_cmk_id
system变量是必选项,用于配置从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_data_file=/usr/local/mysql/mysql-keyring/keyring_aws_data
为keyring_aws
插件要成功启动,配置文件必须存在,并包含有效的秘密访问密钥信息,如前所述进行了初始化。存储文件不需要存在。如果没有,keyring_aws
尝试创建该目录(如果需要,还可以创建其父目录)。
属性所使用的系统变量的详细信息keyring_aws
插件,看到章节6.4.18,“Keyring系统变量”.
启动MySQL服务器并安装与数据库相关的udfkeyring_aws
插件。这是一次性操作,通过执行以下语句,调整所以
为你的平台添加必要的后缀:
创建keyring_aws_rotate_cmk函数创建keyring_aws_rotate_keys函数
的附加信息keyring_aws
udf,看第6.4.15节,特定于插件的Keyring密钥管理功能.
在插件启动时,keyring_aws
插件从它的配置文件中读取AWS秘密访问密钥ID和密钥。它还将存储文件中包含的任何加密密钥读取到内存缓存中。
在操作过程中,keyring_aws
在内存缓存中维护加密密钥,并使用存储文件作为本地持久存储。每个密匙环操作都是事务性的:keyring_aws
成功更改内存中的密钥缓存和密匙环存储文件,或者操作失败且密匙环状态保持不变。
若要确保仅在存在正确的密匙环存储文件时才刷新密钥,请keyring_aws
在文件中存储密匙环的SHA-256校验和。在更新文件之前,插件会验证它是否包含预期的校验和。
的keyring_aws
插件支持组成标准MySQL Keyring服务接口的功能。由这些函数执行的密匙环操作可以在两个级别访问:
SQL接口:在SQL语句中调用中描述的用户定义函数(udf)第6.4.14节“通用密匙环密钥管理功能”.
C接口:在C语言代码中,调用中描述的keyring服务函数密匙环服务.
示例(使用udf):
SELECT keyring_key_generate('MyKey', 'AES', 32);选择keyring_key_remove(“MyKey”);
此外,keyring_aws_rotate_cmk ()
而且keyring_aws_rotate_keys ()
udf”扩展”keyring插件接口提供标准keyring服务接口没有涵盖的aws相关功能。这些功能只能通过调用udf来访问。c语言中没有相应的关键业务功能。
所允许的键值的特征的信息keyring_aws
,请参阅章节6.4.12,“支持的Keyring密钥类型和长度”.
假设keyring_aws
插件在服务器启动时已正确初始化,可以更改用于与AWS KMS通信的凭据:
使用AWS KMS创建一个新的秘密访问密钥ID和秘密访问密钥。
将新的凭据存储在配置文件(由
keyring_aws_conf_file
系统变量)。文件格式如前所述。初始化
keyring_aws
插件,以便重新读取配置文件。假设新的凭证是有效的,插件应该会成功初始化。有两种方法来重新初始化插件:
重新启动服务器。这更简单,没有副作用,但不适合需要尽可能少地重新启动的服务器停机时间的安装。
在不重启服务器的情况下重新初始化插件,执行以下语句,调整
所以
为你的平台添加必要的后缀:卸载插件keyring_aws安装插件keyring_aws SONAME
请注意除了在运行时加载插件,
安装插件
有副作用的插件注册它在mysql.plugin
系统表。正因如此,如果你决定停止使用keyring_aws
,这是不够的,以消除——early-plugin-load
用于启动服务器的选项集中的选项。这会阻止插件提前加载,但是服务器仍然会在启动序列中加载注册的插件时尝试加载它mysql.plugin
.因此,如果执行
卸载插件
+安装插件
更改AWS KMS凭据,然后停止使用keyring_aws
,就必须执行卸载插件
再次注销插件除了删除——early-plugin-load
选择。