Spec-Zone.ru › MySQL 8.4

8.4.4.4 Использование компонента keyring_file на основе файлов

Компонент keyring хранит данные keyring в файле, локальном для хоста сервера.

Предупреждение

Для управления ключами шифрования компоненты component_keyring_file и component_keyring_encrypted_file не предназначены для решения задач соответствия нормативным требованиям. Стандарты безопасности, такие как PCI, FIPS и другие, требуют использования систем управления ключами для безопасного хранения, управления и защиты ключей шифрования в хранилищах ключей или модулях аппаратной безопасности (HSM).

Для использования component_keyring_file для управления хранилищем ключей необходимо:

  1. Написать манифест, который указывает серверу загрузить component_keyring_file, как описано в разделе 8.4.4.2 «Установка компонента keyring».

  2. Написать конфигурационный файл для 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/keyring-file-component.html

Spec-Zone.ru

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