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