19.3.2.3 Поворот ключа шифрования двоичного журнала
При включенном шифровании двоичного журнала вы можете повернуть главный ключ шифрования двоичного журнала в любое время во время работы сервера, выполнив ALTER INSTANCE ROTATE BINLOG MASTER
KEY. Когда главный ключ шифрования двоичного журнала поворачивается вручную с помощью этого оператора, пароли для новых и последующих файлов шифруются с использованием нового главного ключа шифрования двоичного журнала, а также пароли файлов для существующих зашифрованных файлов двоичного журнала и файлов релейного журнала заново шифруются с использованием нового главного ключа шифрования двоичного журнала, поэтому шифрование полностью обновляется. Вы можете поворачивать главный ключ шифрования двоичного журнала регулярно, чтобы соблюдать политику безопасности вашей организации, а также если вы подозреваете, что текущий или любой из предыдущих ключей шифрования двоичного журнала мог быть скомпрометирован.
Когда вы вручную поворачиваете главный ключ шифрования двоичного журнала, MySQL Server выполняет следующие действия последовательно:
Генерируется новый ключ шифрования двоичного журнала с следующим доступным номером последовательности, хранящимся в хранилище ключей и используемым в качестве нового главного ключа шифрования двоичного журнала.
Файлы двоичного журнала и релейного журнала поворачиваются на всех каналах.
Новый главный ключ шифрования двоичного журнала используется для шифрования паролей файлов для новых файлов двоичного журнала и релейного журнала, а также последующих файлов до тех пор, пока ключ не будет изменён снова.
Пароли файлов для существующих зашифрованных файлов двоичного журнала и файлов релейного журнала на сервере заново шифруются по очереди с использованием нового главного ключа шифрования двоичного журнала, начиная с самых последних файлов. Любые незашифрованные файлы пропускаются.
Ключи шифрования двоичного журнала, которые больше не используются для каких-либо файлов после процесса повторного шифрования, удаляются из хранилища ключей.
Для выполнения BINLOG_ENCRYPTION_ADMIN необходим ALTER
INSTANCE ROTATE BINLOG MASTER KEY, и оператор не может быть использован, если системная переменная binlog_encryption установлена в значение OFF.
В качестве заключительного этапа процесса поворота главного ключа шифрования двоичного журнала, все ключи шифрования двоичного журнала, которые больше не применяются к каким-либо сохранённым файлам двоичного журнала или релейного журнала, очищаются из хранилища ключей. Если сохранённый файл двоичного журнала или релейного журнала не может быть инициализирован для повторного шифрования, соответствующие ключи шифрования двоичного журнала не удаляются на случай, если файлы могут быть восстановлены в будущем. Например, это может быть случай, если файл, указанный в файле индекса двоичного журнала, в настоящее время нечитаем, или если канал не удаётся инициализировать. Если идентификатор UUID сервера изменяется, например, потому что резервная копия, созданная с использованием MySQL Enterprise Backup, используется для настройки нового репликата, выполнение ALTER INSTANCE ROTATE BINLOG MASTER
KEY на новом сервере не удаляет какие-либо более ранние ключи шифрования двоичного журнала, которые включают исходный идентификатор UUID сервера.
Если любое из первых четырёх шагов процесса поворота главного ключа шифрования двоичного журнала не может быть выполнено корректно, выдаётся сообщение об ошибке, объясняющее ситуацию и последствия для состояния шифрования файлов двоичного журнала и релейного журнала. Файлы, которые ранее были зашифрованы, всегда остаются зашифрованными, но их пароли файлов могут быть всё ещё зашифрованы с использованием старого главного ключа шифрования двоичного журнала. Если вы видите эти ошибки, сначала повторите процесс, выполнив ALTER INSTANCE ROTATE BINLOG MASTER
KEY снова. Затем изучите состояние отдельных файлов, чтобы увидеть, что блокирует процесс, особенно если вы подозреваете, что текущий или любой из предыдущих ключей шифрования двоичного журнала мог быть скомпрометирован.
Если заключительный этап процесса поворота главного ключа шифрования двоичного журнала не может быть выполнен корректно, выдаётся сообщение об ошибке, объясняющее ситуацию. Сообщение об ошибке указывает, не удалось ли процессу очистить вспомогательные ключи в хранилище ключей для поворота главного ключа шифрования двоичного журнала или не удалось ли очистить неиспользуемые ключи шифрования двоичного журнала. Вы можете выбрать игнорирование сообщения, поскольку ключи являются вспомогательными или больше не используются, или вы можете снова выполнить ALTER INSTANCE ROTATE BINLOG
MASTER KEY для повторной попытки процесса.
Если сервер останавливается и перезапускается с включённым шифрованием двоичного журнала, установленным на ON во время процесса поворота главного ключа шифрования двоичного журнала, новые файлы двоичного журнала и релейного журнала после перезапуска шифруются с использованием нового главного ключа шифрования двоичного журнала. Однако повторное шифрование существующих файлов не продолжается, поэтому файлы, которые не были заново зашифрованы до остановки сервера, остаются зашифрованными с использованием предыдущего главного ключа шифрования двоичного журнала. Для завершения повторного шифрования и очистки неиспользуемых ключей шифрования двоичного журнала, выполните ALTER INSTANCE
ROTATE BINLOG MASTER KEY снова после перезапуска.
ALTER INSTANCE ROTATE BINLOG MASTER
KEY действия не записываются в двоичный журнал и не выполняются на репликах. Поворот главного ключа шифрования двоичного журнала может поэтому выполняться в средах репликации, включая смесь версий MySQL. Для планирования регулярного поворота главного ключа шифрования двоичного журнала на всех соответствующих источниковых и репликационных серверах вы можете включить планировщик событий MySQL на каждом сервере и выполнить оператор ALTER INSTANCE ROTATE BINLOG
MASTER KEY с использованием оператора CREATE EVENT. Если вы поворачиваете главный ключ шифрования двоичного журнала, потому что подозреваете, что текущий или любой из предыдущих ключей шифрования двоичного журнала мог быть скомпрометирован, выполните оператор на каждом соответствующем источниковом и репликационном сервере. Выполнение оператора на отдельных серверах гарантирует, что вы можете проверить немедленное соответствие, даже в случае репликатов, которые отстают, принадлежат к нескольким топологиям репликации или неактивны в топологии репликации, но имеют файлы двоичного журнала и релейного журнала.
Системная переменная binlog_rotate_encryption_master_key_at_startup управляет тем, автоматически ли поворачивается главный ключ шифрования двоичного журнала при перезапуске сервера. Если эта системная переменная установлена в значение ON, новый ключ шифрования двоичного журнала генерируется и используется в качестве нового главного ключа шифрования двоичного журнала всякий раз, когда сервер перезапускается. Если она установлена в значение OFF, что является значением по умолчанию, существующий главный ключ шифрования двоичного журнала используется снова после перезапуска. При повороте главного ключа шифрования двоичного журнала при запуске пароли файлов для новых файлов двоичного журнала и релейного журнала шифруются с использованием нового ключа. Пароли файлов для существующих зашифрованных файлов двоичного журнала и файлов релейного журнала не заново шифруются, поэтому они остаются зашифрованными с использованием старого ключа, который остаётся доступным в хранилище ключей.
© 2025 Oracle
Licensed under the GPLv2 License.