Я настроил MariaDB для шифрования при хранении через Подключаемый модуль AWS Key Management Service (KMS).
Вроде все работает, кроме зацикливания клавиш.
Я настроил следующие параметры в соответствии с прикрепленными файлами конфигурации:
/etc/my.cnf
[mysqld]
# InnoDB/XtraDB Encryption
innodb_encrypt_tables = On
innodb_encrypt_log = On
innodb_encryption_threads = 8
innodb_encryption_rotate_key_age = 1
innodb_encryption_rotation_iops = 100
/etc/my.cnf.d/aws_key_management.cnf
[mariadb]
# Load the AWs plugin and enable it for use
plugin-load-add=aws_key_management.so
# Link to the AWS KMS 'Customer Master Key' used to decrypt MariaDB
encryption keys on disk
# during MariaDB start up and save the decrypted keys into memory
aws_key_management_master_key_id = alias/MariaDB-Encryption-Key
# Specify the AWS region our KMS key is stored in
aws_key_management_region = eu-west-2
# Specify the key specification
aws_key_management_key_spec = AES_256
# Rotate all keys
aws_key_management_rotate_key = -1
# Change the plugins log level
# Options: "Off" (default), "Fatal", "Error", "Warn", "Info",
"Debug", and "Trace".
aws_key_management_log_level = Warn
!include /etc/my.cnf.d/enable_encryption.preset
Как видите, я задал ротацию всех ключей с помощью aws_key_management_rotate_key = -1
и установил возраст ключа 1 с помощью innodb_encryption_rotate_key_age = 1
, но по ключам в /var/lib/mysql/
я вижу, что версия 1 ключей все еще используется, несмотря на то, что эти настройки были на месте. на несколько дней:
/var/lib/mysql/aws-kms-key.1.1
/var/lib/mysql/aws-kms-key.2.1
(Примечание: последний суффикс .n в имени файла представляет версию ключа)
Единственное, о чем я могу думать, это о том, что мое понимание того, что innodb_encryption_rotate_key_age
измеряется в днях, неверно? Документацию для этой опции можно увидеть ниже, и в ней вообще не упоминается, какая единица измерения используется с этим числовым значением?
innodb_encryption_rotate_key_age
Описание. Повторное шифрование в фоновом режиме любой страницы с ключом старше ›этого. При настройке шифрования эта переменная должна быть установлена в ненулевое ›значение. В противном случае при включении шифрования через innodb_encrypt_tables ›MariaDB не сможет автоматически шифровать любые незашифрованные таблицы.
Может ли кто-нибудь объяснить, почему это так и почему мои ключи не вращаются?
Версия MariaDB
mysql --version
mysql Ver 15.1 Distrib 10.2.15-MariaDB, for Linux (x86_64) using readline 5.1`
Версия подключаемого модуля AWS KMS
yum list installed | grep mariadb
MariaDB-aws-key-management.x86_64 10.2.15-1.el7.centos @mariadb-main