Percona Server for MySQL 8.0.28-20 引入了一个新的密钥环组件 component_keyring_kms,它允许使用 AWS Key Management Service 作为密钥环。该组件也包含在Percona XtraBackup 8.0.28中,允许备份使用该组件加密的数据库。
该功能类似于 MySQL Enterprise 中包含的 AWS 密钥环插件,但它是作为一个组件实现的,因此,它需要不同的配置。
配置 AWS KMS
该组件在 KMS 上使用单个主密钥,必须在配置组件之前手动创建。此密钥也可以稍后更改,并且使用旧密钥的现有密钥将保持可用,只要该密钥仍然存在于 KMS 上。
要配置 KMS,请登录 AWS 管理控制台,然后设置新的 CMK。稍后可以使用其 UUID、ARN 或别名在组件配置中引用此密钥。建议使用别名,因为这样可以在不修改组件配置的情况下更改密钥。
该组件还需要一个用户,通过身份验证密钥和密钥标识来访问 KMS 服务,并且该用户应具有使用 CMK 的权限。建议为此目的使用专用用户。
为 MySQL 配置 Percona 服务器
要将 KMS 组件与 Percona Server for MySQL 一起使用,请创建一个全局或本地清单文件以启用该组件:
<span style="font-weight: 400;">{</span>
<span style="font-weight: 400;"> "components": "file://component_keyring_kms”</span>
<span style="font-weight: 400;">}</span>
然后还为 KMS 组件本身创建一个全局或本地配置文件:
<span style="font-weight: 400;">{
“read_local_config”: “false”,</span>
<span style="font-weight: 400;"> "path": "</span><span style="font-weight: 400;">/usr/local/mysql/keyring/</span><span style="font-weight: 400;">keyring_kms_file",</span>
<span style="font-weight: 400;"> "read_only": "false", </span>
<span style="font-weight: 400;"> “region": "us-east-2",</span>
<span style="font-weight: 400;"> "kms_key": "<uuid_or_alias_of_kms_key>",</span>
<span style="font-weight: 400;"> "auth_key": "<user_authentication_key>",</span>
<span style="font-weight: 400;"> “secret_access_key": "<user_secret_key>"</span>
<span style="font-weight: 400;">}</span>
密钥环文件的目录应该存在,AWS 凭证和密钥标识符必须在正确的参数下有效,否则,组件初始化将失败。
配置文件应该命名为“component_keyring_kms.cnf”,对于全局配置,它应该驻留在服务器目录中,对于本地配置,它应该驻留在数据目录中。
由于此文件包含指定 AWS 用户的身份验证信息,因此该用户应具有必要的最低权限,并且该文件应仅可由 MySQL 用户读取。
当这些文件存在并正确设置时,服务器将启动并加载 KMS 组件并准备好使用。加密功能可以一一单独启用。
数据安全
KMS 组件的工作方式类似于 component_keyring_file:它将 MySQL 加密密钥存储在一个文件中,由其配置文件中的路径值指定。这两个组件之间的区别在于,不是将密钥以纯文本形式存储在文件中,而是使用 KMS 服务对密钥进行加密。这意味着数据目录和密钥环数据文件不足以解密数据库,还需要访问 KMS 服务。
原文标题:Using Percona Server for MySQL with Amazon KMS as Keyring
原文作者:Zsolt Parragi
原文地址:https://www.percona.com/blog/using-percona-server-for-mysql-with-amazon-kms-as-keyring/




