Spec-Zone.ru › MySQL 9.2

8.4.4.6 Использование плагина keyring_okv KMIP

Примечание

Плагин keyring_okv — это расширение, включенное в MySQL Enterprise Edition, коммерческий продукт. Чтобы узнать больше о коммерческих продуктах, см. https://www.mysql.com/products/.

Протокол межсетевого взаимодействия с ключами (KMIP) обеспечивает обмен криптографическими ключами между сервером управления ключами и его клиентами. Плагин keyring_okv keyring использует протокол KMIP 1.1 для безопасного взаимодействия в качестве клиента KMIP-бекенда. Данные keyring генерируются исключительно бекендом, а не keyring_okv. Плагин работает с этими совместимыми с KMIP продуктами:

  • Oracle Key Vault

  • Gemalto SafeNet KeySecure Appliance

  • Townsend Alliance Key Manager

  • Entrust KeyControl

Каждый экземпляр MySQL Server должен быть зарегистрирован отдельно в качестве клиента для KMIP. Если два или более экземпляров MySQL Server используют один и тот же набор учетных данных, они могут мешать работе друг друга.

Плагин keyring_okv поддерживает функции, составляющие стандартный интерфейс службы MySQL Keyring. Операции keyring, выполняемые этими функциями, доступны на двух уровнях:

  • Интерфейс SQL: в SQL-запросах вызывайте функции, описанные в Разделе 8.4.4.13, “Общие функции управления ключами keyring”.

  • C-интерфейс: в коде на языке C вызывайте функции службы keyring, описанные в Разделе 7.6.9.2, “Служба Keyring”.

Пример (используя интерфейс SQL):

SELECT keyring_key_generate('MyKey', 'AES', 32);
SELECT keyring_key_remove('MyKey');

Сведения о характеристиках значений ключей, разрешенных keyring_okv, см. в Разделе 8.4.4.11, “Поддерживаемые типы и длины ключей keyring”.

Для установки keyring_okv используйте общие инструкции, приведенные в Разделе 8.4.4.3, “Установка плагина keyring”, вместе со специфичной для keyring_okv конфигурационной информацией, приведенной здесь.

  • Общая конфигурация keyring_okv

  • Конфигурирование keyring_okv для Oracle Key Vault

  • Конфигурирование keyring_okv для Gemalto SafeNet KeySecure Appliance

  • Конфигурирование keyring_okv для Townsend Alliance Key Manager

  • Конфигурирование keyring_okv для Entrust KeyControl

  • Защита паролем файла ключей keyring_okv

Общая конфигурация keyring_okv

Независимо от того, какой KMIP-бекенд использует плагин keyring_okv для хранения keyring, системная переменная keyring_okv_conf_dir настраивает расположение каталога, используемого keyring_okv для своих служебных файлов. Значение по умолчанию — пустое, поэтому вы должны задать переменной имя правильно настроенного каталога, прежде чем плагин сможет взаимодействовать с KMIP-бекендом. В противном случае keyring_okv запишет сообщение в журнал ошибок во время запуска сервера о невозможности связи:

[Warning] Plugin keyring_okv reported: 'For keyring_okv to be
initialized, please point the keyring_okv_conf_dir variable to a directory
containing Oracle Key Vault configuration file and ssl materials'

Переменная keyring_okv_conf_dir должна указывать на каталог, содержащий следующие элементы:

  • okvclient.ora: Файл, содержащий сведения о KMIP-бекенде, с которым общается keyring_okv.

  • ssl: Каталог, содержащий сертификаты и ключи, необходимые для установления защищенного соединения с KMIP-бекендом: CA.pem, cert.pem и key.pem. Если файл ключа защищен паролем, каталог ssl может содержать текстовый файл с единственной строкой, названный password.txt, содержащий пароль, необходимый для расшифровки файла ключа.

Для правильной работы keyring_okv необходим как файл конфигурации okvclient.ora, так и каталог ssl с сертификатами и ключами. Процедура заполнения каталога конфигурации этими файлами зависит от используемого KMIP-бекенда с keyring_okv, как описано в других местах.

Каталог конфигурации, используемый keyring_okv в качестве расположения его служебных файлов, должен иметь ограниченный режим доступа и быть доступен только учетной записи, используемой для запуска сервера MySQL. Например, в Unix-подобных системах, чтобы использовать каталог /usr/local/mysql/mysql-keyring-okv, следующие команды (выполняемые как root) создают каталог и устанавливают его режим и владельца:

cd /usr/local/mysql
mkdir mysql-keyring-okv
chmod 750 mysql-keyring-okv
chown mysql mysql-keyring-okv
chgrp mysql mysql-keyring-okv

Для использования keyring_okv во время процесса запуска сервера, его необходимо загрузить, используя параметр --early-plugin-load. Также установите системную переменную keyring_okv_conf_dir, чтобы указать keyring_okv расположение каталога конфигурации. Например, используйте эти строки в файле сервера my.cnf, при необходимости скорректировав .so суффикс и расположение каталога для вашей платформы:

[mysqld]
early-plugin-load=keyring_okv.so
keyring_okv_conf_dir=/usr/local/mysql/mysql-keyring-okv

Для дополнительной информации о keyring_okv_conf_dir см. Раздел 8.4.4.17, “Системные переменные keyring”.

Настройка keyring_okv для Oracle Key Vault

Здесь предполагается, что вы знакомы с Oracle Key Vault. Некоторые полезные источники информации:

  • Сайт Oracle Key Vault

  • Документация Oracle Key Vault

В терминологии Oracle Key Vault клиенты, использующие Oracle Key Vault для хранения и извлечения объектов безопасности, называются конечными точками. Для связи с Oracle Key Vault необходимо зарегистрироваться в качестве конечной точки и пройти регистрацию, загрузив и установив файлы поддержки конечной точки. Обратите внимание, что для каждого экземпляра MySQL Server необходимо зарегистрировать отдельную конечную точку. Если два или более экземпляров MySQL Server используют одну и ту же конечную точку, они могут мешать работе друг друга.

Следующая процедура кратко описывает процесс настройки keyring_okv для использования с Oracle Key Vault:

  1. Создайте каталог конфигурации для использования плагина keyring_okv.

  2. Зарегистрируйте конечную точку в Oracle Key Vault, чтобы получить токен регистрации.

  3. Используйте токен регистрации для получения загрузки клиента okvclient.jar.

  4. Установите клиентское программное обеспечение для заполнения каталога конфигурации keyring_okv, содержащего файлы поддержки Oracle Key Vault.

Используйте следующую процедуру для настройки keyring_okv и Oracle Key Vault для совместной работы. Это описание лишь кратко суммирует взаимодействие с Oracle Key Vault. Для подробностей посетите сайт Oracle Key Vault и обратитесь к руководству администратора Oracle Key Vault Administrator's Guide.

  1. Создайте каталог конфигурации, содержащий файлы поддержки Oracle Key Vault, и убедитесь, что системная переменная keyring_okv_conf_dir настроена на этот каталог (подробности см. в разделе Общие настройки keyring_okv).

  2. Войдите в консоль управления Oracle Key Vault от пользователя с ролью администратора системы.

  3. Выберите вкладку Endpoints, чтобы перейти на страницу Endpoints. На странице Endpoints нажмите Add.

  4. Укажите необходимую информацию о конечной точке и нажмите Register. Тип конечной точки должен быть Other. Успешная регистрация приводит к получению токена регистрации.

  5. Выйдите из сервера Oracle Key Vault.

  6. Подключитесь к серверу Oracle Key Vault еще раз, но на этот раз без входа в систему. Используйте токен регистрации конечной точки для регистрации и запросите загрузку программного обеспечения okvclient.jar. Сохраните этот файл на вашей системе.

  7. Установите файл okvclient.jar с помощью следующей команды (у вас должна быть JDK 1.4 или выше):

    java -jar okvclient.jar -d dir_name [-v]
    

    Имя каталога после опции -d указывает расположение для установки извлечённых файлов. Опция -v, если указана, создаёт лог-информацию, которая может быть полезной в случае ошибки выполнения команды.

    Когда команда запросит пароль конечной точки Oracle Key Vault, не вводите его. Вместо этого нажмите Enter. (В результате подключение к Oracle Key Vault не требует пароля.)

    Представленная команда создаёт файл okvclient.ora, который должен находиться в этом расположении в каталоге, названном опцией -d в предыдущей команде java -jar:

    install_dir/conf/okvclient.ora
    

    Ожидаемое содержимое файла включает строки такого вида:

    SERVER=host_ip:port_num
    STANDBY_SERVER=host_ip:port_num
    

    Переменная SERVER обязательна, а переменная STANDBY_SERVER необязательна. Плагин keyring_okv пытается связаться с сервером, работающим на хосте, указанном в переменной SERVER, и переключается на STANDBY_SERVER, если это не удаётся.

    Примечание

    Если существующий файл не имеет этого формата, создайте новый файл с приведенными в предыдущем примере строками. Также рекомендуется создать резервную копию файла okvclient.ora перед запуском команды okvutil. Восстановите файл по мере необходимости.

    Вы можете указать более одного сервера резервного копирования (до максимального значения 64). В этом случае плагин keyring_okv перебирает их, пока не сможет установить соединение, и завершается с ошибкой, если это не удается. Чтобы добавить дополнительные сервера резервного копирования, отредактируйте файл okvclient.ora, чтобы указать IP-адреса и номера портов серверов в виде списка, разделённого запятыми, в значении переменной STANDBY_SERVER. Например:

    STANDBY_SERVER=host_ip:port_num,host_ip:port_num,host_ip:port_num,host_ip:port_num
    

    Убедитесь, что список резервных серверов остается коротким, точным и актуальным, а устаревшие серверы удаляются. Для каждой попытки подключения предусмотрена 20-секундная задержка. Наличие длинного списка недействительных серверов может существенно повлиять на время подключения плагина keyring_okv, а значит и на время запуска сервера.

  8. Перейдите в каталог установщика Oracle Key Vault и протестируйте настройку, выполнив эту команду:

    okvutil/bin/okvutil list
    

    Вывод должен выглядеть примерно так:

    Unique ID                               Type            Identifier
    255AB8DE-C97F-482C-E053-0100007F28B9	Symmetric Key	-
    264BF6E0-A20E-7C42-E053-0100007FB29C	Symmetric Key	-
    

    Для нового сервера Oracle Key Vault (сервера без ключей) вывод будет другим, чтобы указать, что в хранилище нет ключей:

    no objects found
    
  9. Используйте эту команду для извлечения каталога ssl, содержащего материалы SSL, из файла okvclient.jar:

    jar xf okvclient.jar ssl
    
  10. Скопируйте файлы поддержки Oracle Key Vault (файл okvclient.ora и каталог ssl) в каталог конфигурации.

  11. (Необязательно) Если вы хотите защитить файл ключа паролем, используйте инструкции в разделе Защита паролем файла ключей keyring_okv.

После завершения этой процедуры перезапустите сервер MySQL. Он загрузит плагин keyring_okv и keyring_okv будет использовать файлы в каталоге конфигурации для связи с Oracle Key Vault.

Настройка keyring_okv для устройства Gemalto SafeNet KeySecure

Устройство Gemalto SafeNet KeySecure использует протокол KMIP (версии 1.1 или 1.2). Плагин keyring (поддерживающий KMIP 1.1) может использовать KeySecure в качестве бэкенда KMIP для хранения ключей.

Используйте следующую процедуру для настройки взаимодействия между keyring_okv и KeySecure. Данное описание лишь обобщает взаимодействие с KeySecure. Для подробностей обратитесь к разделу «Добавление сервера KMIP» в руководстве пользователя KeySecure.

  1. Создайте директорию конфигурации, содержащую файлы поддержки KeySecure, и убедитесь, что системная переменная keyring_okv_conf_dir установлена в имя этой директории (подробности см. в разделе общих настроек keyring_okv).

  2. В директории конфигурации создайте поддиректорию с именем ssl для хранения необходимых файлов сертификата SSL и ключа.

  3. В директории конфигурации создайте файл с именем okvclient.ora. Он должен иметь следующий формат:

    SERVER=host_ip:port_num
    STANDBY_SERVER=host_ip:port_num
    

    Например, если KeySecure работает на хосте 198.51.100.20 и прослушивает порт 9002, а также на альтернативном хосте 203.0.113.125 и прослушивает порт 8041, файл okvclient.ora будет выглядеть так:

    SERVER=198.51.100.20:9002
    STANDBY_SERVER=203.0.113.125:8041
    

    Вы можете указать несколько резервных серверов (до 64). Если вы это сделаете, плагин keyring_okv будет перебирать их, пока не сможет установить соединение, и завершится неудачей, если не сможет. Чтобы добавить дополнительные резервные серверы, отредактируйте файл okvclient.ora, указав IP-адреса и номера портов серверов через запятую в значении переменной STANDBY_SERVER. Например:

    STANDBY_SERVER=host_ip:port_num,host_ip:port_num,host_ip:port_num,host_ip:port_num
    

    Убедитесь, что список резервных серверов остается коротким, точным и актуальным, а недействительные серверы удаляются. Время ожидания для каждой попытки соединения составляет 20 секунд, поэтому наличие длинного списка недействительных серверов может существенно повлиять на время подключения плагина keyring_okv, а следовательно, и на время запуска сервера.

  4. Подключитесь к консоли управления KeySecure как администратор с учетными данными доступа к центрам сертификации.

  5. Перейдите к Безопасность >> Местные центры сертификации и создайте местный центр сертификации (ЦС).

  6. Перейдите к Доверенным спискам ЦС. Выберите Значение по умолчанию и нажмите Свойства. Затем выберите Редактировать для Доверенного списка центров сертификации и добавьте только что созданный ЦС.

  7. Скачайте ЦС и сохраните его в директории ssl в файле с именем CA.pem.

  8. Перейдите к Безопасность >> Запросы на сертификаты и создайте сертификат. Затем вы можете загрузить сжатый файл tar, содержащий файлы сертификатов PEM.

  9. Извлеките файлы PEM из загруженного файла. Например, если имя файла — csr_w_pk_pkcs8.gz, разархивируйте и распакуйте его с помощью этой команды:

    tar zxvf csr_w_pk_pkcs8.gz
    

    В результате извлечения получаются два файла: certificate_request.pem и private_key_pkcs8.pem.

  10. Используйте эту команду openssl для расшифровки закрытого ключа и создания файла с именем key.pem:

    openssl pkcs8 -in private_key_pkcs8.pem -out key.pem
    
  11. Скопируйте файл key.pem в директорию ssl.

  12. Скопируйте запрос на сертификат из certificate_request.pem в буфер обмена.

  13. Перейдите к Безопасность >> Местные ЦС. Выберите тот же ЦС, который вы создали ранее (тот, который вы загрузили для создания файла CA.pem), и нажмите Подписать запрос. Вставьте Запрос на сертификат из буфера обмена, выберите назначение сертификата — Клиент (keyring — клиент KeySecure) и нажмите Подписать запрос. В результате на новой странице появится сертификат, подписанный выбранным ЦС.

  14. Скопируйте подписанный сертификат в буфер обмена, затем сохраните содержимое буфера обмена в файле с именем cert.pem в директории ssl.

  15. (Необязательно) Если вы хотите защитить файл ключа паролем, следуйте инструкциям в разделе по защите файла ключа keyring_okv паролем.

После выполнения вышеуказанной процедуры перезапустите сервер MySQL. Он загрузит плагин keyring_okv, и keyring_okv будет использовать файлы в его директории конфигурации для связи с KeySecure.

Настройка keyring_okv для Townsend Alliance Key Manager

Townsend Alliance Key Manager использует протокол KMIP. Плагин keyring_okv может использовать Alliance Key Manager в качестве бэкенда KMIP для хранения ключей. Дополнительную информацию можно найти на странице Alliance Key Manager для MySQL.

Настройка keyring_okv для Entrust KeyControl

Entrust KeyControl использует протокол KMIP. Плагин keyring_okv может использовать Entrust KeyControl в качестве бэкенда KMIP для хранения ключей. Дополнительную информацию можно найти в руководстве по интеграции Oracle MySQL и Entrust KeyControl с nShield HSM.

Защита файла ключа keyring_okv паролем

Вы можете защитить файл ключа паролем и предоставить файл с паролем для его расшифровки. Для этого перейдите в директорию ssl и выполните следующие шаги:

  1. Зашифруйте файл ключа key.pem. Например, используйте такую команду, вводя пароль шифрования в запросах:

    $> openssl rsa -des3 -in key.pem -out key.pem.new
    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
    
  2. Сохраните пароль шифрования в текстовый файл с одной строкой, названный password.txt, в директории ssl.

  3. Убедитесь, что зашифрованный файл ключа может быть расшифрован с помощью следующей команды. Расшифрованный файл должен отобразиться в консоли:

    $> openssl rsa -in key.pem.new -passin file:password.txt
    
  4. Удалите исходный файл key.pem и переименуйте key.pem.new в key.pem.

  5. Измените права доступа к новому файлу key.pem и файлу password.txt, если необходимо, чтобы они соответствовали ограничениям других файлов в директории ssl.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/keyring-okv-plugin.html

Spec-Zone.ru

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