10bet网址
MySQL的安全性
相关的文档10bet官方网站 下载此节选
PDF(美国高级主任)- 2.2 mb
PDF (A4)- 2.2 mb
HTML下载(TGZ)- 453.0 kb
HTML下载(Zip)- 460.3 kb


MySQL的安全性/.../ 使用keyring_aws亚马逊Web服务Keyring插件

6.4.9使用keyring_aws Amazon Web Services Keyring插件

请注意

keyring_aws插件是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.3,“Keyring插件安装”,以及这里找到的特定于插件的配置信息。

插件库文件包含keyring_aws插件和两个用户定义函数(udf),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_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_awsudf,看第6.4.15节,特定于插件的Keyring密钥管理功能

keyring_aws操作

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

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

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

keyring_aws插件支持组成标准MySQL 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凭证更改

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

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

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

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

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

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

    • 在不重启服务器的情况下重新初始化插件,执行以下语句,调整所以为你的平台添加必要的后缀:

      卸载插件keyring_aws安装插件keyring_aws SONAME
      请注意

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

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