8.4.4.4 Использование компонента keyring_file на основе файлов
Компонент keyring хранит данные keyring в файле, локальном для хоста сервера.
Для управления ключами шифрования компоненты component_keyring_file и component_keyring_encrypted_file не предназначены для решения задач соответствия нормативным требованиям. Стандарты безопасности, такие как PCI, FIPS и другие, требуют использования систем управления ключами для безопасного хранения, управления и защиты ключей шифрования в хранилищах ключей или модулях аппаратной безопасности (HSM).
Для использования component_keyring_file для управления хранилищем ключей необходимо:
Написать манифест, который указывает серверу загрузить
component_keyring_file, как описано в разделе 8.4.4.2 «Установка компонента keyring».Написать конфигурационный файл для
component_keyring_file, как описано здесь.
При инициализации component_keyring_file считывает либо глобальный конфигурационный файл, либо глобальный конфигурационный файл в паре с локальным конфигурационным файлом:
Компонент пытается прочитать свой глобальный конфигурационный файл из каталога, в котором установлен файл библиотеки компонента (то есть каталог плагинов сервера).
Если глобальный конфигурационный файл указывает на использование локального конфигурационного файла, компонент пытается прочитать свой локальный конфигурационный файл из каталога данных.
Несмотря на то, что глобальные и локальные конфигурационные файлы находятся в разных каталогах, имя файла является
component_keyring_file.cnfв обоих местах.Отсутствие конфигурационного файла является ошибкой.
component_keyring_fileне может быть инициализирован без корректной конфигурации.
Локальные конфигурационные файлы позволяют настроить несколько экземпляров сервера для использования component_keyring_file, таким образом, что конфигурация компонента для каждого экземпляра сервера специфична для данного экземпляра каталога данных. Это позволяет использовать один и тот же компонент keyring с отдельным файлом данных для каждого экземпляра.
Конфигурационные файлы component_keyring_file обладают следующими свойствами:
Конфигурационный файл должен быть в формате JSON.
-
Конфигурационный файл допускает следующие элементы конфигурации:
-
"read_local_config": Этот элемент разрешен только в глобальном конфигурационном файле. Если элемент отсутствует, компонент использует только глобальный конфигурационный файл. Если элемент присутствует, его значение равноtrueилиfalse, указывая, следует ли компоненту читать информацию о конфигурации из локального конфигурационного файла.Если элемент
"read_local_config"присутствует в глобальном конфигурационном файле наряду с другими элементами, компонент сначала проверяет значение элемента"read_local_config":Если значение равно
false, компонент обрабатывает другие элементы в глобальном конфигурационном файле и игнорирует локальный конфигурационный файл.Если значение равно
true, компонент игнорирует другие элементы в глобальном конфигурационном файле и пытается прочитать локальный конфигурационный файл.
"path": Значение элемента — это строка, имя файла для хранения данных keyring. Файл должен быть указан с помощью абсолютного пути, а не относительного. Этот элемент является обязательным в конфигурации. Если он не указан, инициализацияcomponent_keyring_fileзавершается неудачей."read_only": Значение элемента указывает, является ли файл данных keyring только для чтения. Значение элемента равноtrue(только для чтения) илиfalse(для чтения/записи). Этот элемент является обязательным в конфигурации. Если он не указан, инициализацияcomponent_keyring_fileзавершается неудачей.
-
Администратор базы данных несет ответственность за создание используемых конфигурационных файлов и за обеспечение правильности их содержимого. Если произойдет ошибка, запуск сервера завершится неудачей, и администратор должен исправить любые проблемы, указанные в диагностических сообщениях в журнале ошибок сервера.
Учитывая указанные свойства конфигурационного файла, для настройки component_keyring_file создайте глобальный конфигурационный файл с именем component_keyring_file.cnf в каталоге, где установлен файл библиотеки component_keyring_file, и, при необходимости, создайте локальный конфигурационный файл, также с именем component_keyring_file.cnf, в каталоге данных. Следующие инструкции предполагают, что файл данных keyring с именем /usr/local/mysql/keyring/component_keyring_file будет использоваться в режиме чтения/записи.
-
Для использования только глобального конфигурационного файла содержимое файла выглядит следующим образом:
{ "path": "/usr/local/mysql/keyring/component_keyring_file", "read_only": false }Создайте этот файл в каталоге, где установлен файл библиотеки
component_keyring_file.Этот путь не должен указывать на или включать каталог данных MySQL.
-
В качестве альтернативы, для использования глобального и локального конфигурационного файла пара, глобальный файл выглядит следующим образом:
{ "read_local_config": true }Создайте этот файл в каталоге, где установлен файл библиотеки
component_keyring_file.Локальный файл выглядит следующим образом:
{ "path": "/usr/local/mysql/keyring/component_keyring_file", "read_only": false }Этот путь не должен указывать на или включать каталог данных MySQL.
Операции с keyring выполняются транзакционно: component_keyring_file использует резервную копию файла во время операций записи, чтобы обеспечить возможность возврата к исходному файлу в случае сбоя операции. Резервный файл имеет то же имя, что и файл данных, с суффиксом .backup.
component_keyring_file поддерживает функции, составляющие стандартный интерфейс службы MySQL Keyring. Операции keyring, выполняемые этими функциями, доступны в SQL-запросах, как описано в разделе 8.4.4.12 «Общие функции управления ключами keyring».
Пример:
SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');
Для получения информации о характеристиках ключей, разрешенных component_keyring_file, см. раздел 8.4.4.10 «Поддерживаемые типы ключей keyring и их длина».
© 2025 Oracle
Licensed under the GPLv2 License.