Spec-Zone.ru › MySQL 9.2

19.3.2 Шифрование файлов бинарного журнала и файлов журнала репликации

  • 19.3.2.1 Область применения шифрования бинарного журнала
  • 19.3.2.2 Ключи шифрования бинарного журнала
  • 19.3.2.3 Ротация главного ключа шифрования бинарного журнала

Файлы бинарного журнала и файлы журнала репликации MySQL могут быть зашифрованы, что помогает защитить эти файлы и потенциально конфиденциальные данные, содержащиеся в них, от злоупотребления внешними злоумышленниками, а также от несанкционированного просмотра пользователями операционной системы, где они хранятся. Алгоритм шифрования, используемый для файлов, алгоритм шифра AES (Advanced Encryption Standard), встроен в MySQL Server и не может быть настроен.

Вы включаете это шифрование на сервере MySQL, установив системную переменную binlog_encryption на значение ON. OFF — значение по умолчанию. Системная переменная включает шифрование для файлов бинарного журнала и файлов журнала репликации. Для включения шифрования не требуется включение бинарного протоколирования на сервере, поэтому вы можете зашифровать файлы журнала репликации на реплике, на которой нет бинарного журнала. Для использования шифрования необходимо установить и настроить компонент или плагин хранилища ключей, чтобы предоставить MySQL Server его службу хранилища ключей. Инструкции по этому вопросу см. в Разделе 8.4.4, «Хранилище ключей MySQL». Для хранения ключей шифрования бинарного журнала можно использовать любой поддерживаемый компонент или плагин хранилища ключей.

При первом запуске сервера с включенным шифрованием новый ключ шифрования бинарного журнала генерируется перед инициализацией бинарного журнала и журнала репликации. Этот ключ используется для шифрования пароля файла для каждого файла бинарного журнала (если на сервере включено бинарное протоколирование) и файла журнала репликации (если на сервере есть каналы репликации), а дополнительные ключи, сгенерированные из паролей файлов, используются для шифрования данных в файлах. Ключ шифрования бинарного журнала, который в настоящее время используется на сервере, называется главным ключом шифрования бинарного журнала. Двухуровневая архитектура ключей шифрования означает, что главный ключ шифрования бинарного журнала может быть изменён (заменён новым главным ключом) по мере необходимости, и только пароль файла для каждого файла необходимо зашифровать заново с помощью нового главного ключа, а не весь файл. Файлы журнала репликации зашифрованы для всех каналов, включая новые каналы, созданные после активации шифрования. Индексный файл бинарного журнала и индексный файл журнала репликации никогда не шифруются.

Если вы активируете шифрование, когда сервер работает, в это время генерируется новый ключ шифрования бинарного журнала. Исключением является случай, когда шифрование было ранее активным на сервере и затем было отключено, в этом случае повторно используется ключ шифрования бинарного журнала, который использовался ранее. Файл бинарного журнала и файлы журнала репликации немедленно пересоздаются, а пароли файлов новых файлов и всех последующих файлов бинарного журнала и файлов журнала репликации шифруются с помощью этого ключа шифрования бинарного журнала. Существующие файлы бинарного журнала и файлы журнала репликации, которые все еще находятся на сервере, не шифруются, но вы можете их удалить, если они больше не нужны.

Если вы отключаете шифрование, изменив системную переменную binlog_encryption на значение OFF, файл бинарного журнала и файлы журнала репликации немедленно пересоздаются, и все последующее протоколирование происходит без шифрования. Ранее зашифрованные файлы не дешифруются автоматически, но сервер по-прежнему может их читать. Для активации или деактивации шифрования во время работы сервера требуется привилегия BINLOG_ENCRYPTION_ADMIN.

Зашифрованные и незашифрованные файлы бинарного журнала можно отличить по магическому числу в начале заголовка файла для зашифрованных файлов журнала (0xFD62696E), которое отличается от используемого для незашифрованных файлов журнала (0xFE62696E). Вывод SHOW BINARY LOGS показывает, зашифрован ли каждый файл бинарного журнала или нет.

После того, как файлы бинарного журнала были зашифрованы, mysqlbinlog не может читать их напрямую, но может читать их с сервера, используя опцию --read-from-remote-server. Если вы делаете резервную копию зашифрованных файлов бинарного журнала с помощью mysqlbinlog, обратите внимание, что копии файлов, создаваемые с помощью mysqlbinlog, хранятся в незашифрованном формате.

Шифрование бинарного журнала можно комбинировать с сжатием транзакций бинарного журнала. Дополнительную информацию о сжатии транзакций бинарного журнала см. в Разделе 7.4.4.5, «Сжатие транзакций бинарного журнала».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/replication-binlog-encryption.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API