Mysql 企业版审计支持对审计文件进行加密存储。
具体配置如下:
1.安装keyring插件
配置参数文件如下:
[mysqld]
early-plugin-load=keyring_file.so
##该插件非放置在plugin-load里
keyring_file_data=/mysql/mysql_keyring/keyring
##需要创建/mysql/mysql_keyring 目录,属主为mysql
audit_log_encryption=AES
##另外需设置audit_log_encryption为AES
以上参数有静态参数,需重启生效
重启后查看插件:
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE ‘keyring%’;
2.安装keyring user-defined functions (UDFs)
INSTALL PLUGIN keyring_udf SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_generate RETURNS INTEGER
SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_fetch RETURNS STRING
SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_length_fetch RETURNS INTEGER
SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_type_fetch RETURNS STRING
SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_store RETURNS INTEGER
SONAME ‘keyring_udf.so’;
CREATE FUNCTION keyring_key_remove RETURNS INTEGER
SONAME ‘keyring_udf.so’;
安装完成可以看到多了个keyring_udf插件
卸载keyring user-defined functions (UDFs)
UNINSTALL PLUGIN keyring_udf;
DROP FUNCTION keyring_key_generate;
DROP FUNCTION keyring_key_fetch;
DROP FUNCTION keyring_key_length_fetch;
DROP FUNCTION keyring_key_type_fetch;
DROP FUNCTION keyring_key_store;
DROP FUNCTION keyring_key_remove;
3. 设置密码
生成加密文件
SELECT keyring_key_generate(‘MyKey’, ‘AES’, 32);
SELECT keyring_key_remove(‘MyKey’); --删除加密文件
设置密码,如果不设置,则系统默认生成一个密码
SELECT audit_log_encryption_password_set(‘123’);
查看审计日志文件,如下格式为类似audit.20210209T124455.log.20210209T124200-1.enc到文件为加密后到文件
4. 进行解密
获取密码
获取当前在使用的密码
select audit_log_encryption_password_get();
获取加密过的文件所使用的密码
SELECT audit_log_encryption_password_get(‘audit_log-20210209T124200-1’);
20210209T124200-1为加密文件后面的时间戳部分
使用密码进行解密:
openssl enc -d -aes-256-cbc -pass pass:Oe4hMUUVq*sr -md sha256 -in audit.20210209T132838.log.20210209T124200-1.enc -out audit.20210209T132838.log
解密后审计日志文件