MySQL 整表加密解决方案 keyring_file详解


说明
MySql社区版从5.7.11开始支持基于表的数据加密方案,模块名为keyring_file,支持加密整张表。这种是加密方式其实是基于文件加密的,一旦mysqld读取key启动后,将会解密整张表的数据,在mysql服务内,读取的数据都是解密后的,也就是说对客户端而言是无感知的。而这个key是本地存放的,mysql服务拥有读写这个key的权限。总体看这种方案不太安全,原因是数据库文件是加密的,但只要能有mysql服务的账户,那么访问数据都是解密后的,加密不攻自破。而且解密key也是本地存放的,入侵者完全可以一并带走。这种方案只能保证入侵者只拖走了数据库文件后无法读取内容。企业版MySQL额外的三种模块
如果是企业版的mysql,那么还有另外三种加密方案。1.keyring_encrypted_file
和我之前说的社区版差不多的,只是多了一个key。这个key用于加密解密数据库用的key。安全性方面都差不多。
2.keyring_okv
相比本地存放key,本模块使用KMIP存取key,相对更加安全。
3.keyring_aws
整合aws的密匙管理服务来开发云主机域名管理加解密的key。进一步提高key的管理安全性。四个加密模块支持的加密类型
总结一下,四种方案都是文件加密,内存解密方案,区别在于加解密的key存放方案。推荐使用keyring_okv和keyring_aws,并确保mysql账户的安全性和严格区分账户权限。
另外2种安全性不大。实施步骤
OK,现在简单讲一下最简单的keyring_file部署方案,提前说明下windows貌似无法使用这种方案,因为不知道为什么加密用的key总是无法生成。1.使用最新版的mysql 5.7.21
使用yum apt 之类的工具安装最新版的mysql 或者 下载源码自行编译安装2.启用加密模块
INSTALL PLUGIN keyring_file soname ‘keyring_file.so’;3.设置加密key存放路径
set global keyring_file_data=’/root/mysql-keyring/keyring’;4.永久启用设置
上诉两个步骤都是临时的,重启服务都会失效,我们把配置写到配置文件里,确保重启服务后也能生效5.查看key的存放路径
show global variables like ‘%keyring_file_data%’;6.查看启用的模块
查看下keyring_file模块是否已经被载入。
show plugins;7.加密现有的表
alter table table encryption=’Y’;8.取消加密
alter table table encryption=’N’;官方文档:
https://dev.mysql.com/doc/refman/5.7/en/keyring-installation.html以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开发云。

相关推荐: ansible–roles

role类似于salt-stack里面的state,state有一定的组织架构。而role则是ansible中playbook的目录组织架构,如果把所有内容都写到playbooks里,可能会导致playbooks臃肿,难读。而模块化之后,有效解决了上述的问题。…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/11 17:04
下一篇 06/11 17:04

相关推荐