Spec-Zone.ru › MariaDB

Подключаемый модуль управления ключами Hashicorp

MariaDB начиная с 10.9

Подключаемый модуль управления ключами Hashicorp используется для реализации шифрования с помощью ключей, хранящихся в KMS Hashicorp Vault. Для получения дополнительной информации см. HashiCorp Vault и MariaDB, а для установки Vault см. Установить Vault, а также MySQL/MariaDB Secrets Engine для баз данных.

Текущая версия этого модуля реализует следующие функции:

  • Аутентификация выполняется с использованием метода аутентификации токенов Hashicorp Vault;
  • Если требуется дополнительная аутентификация клиента, то путь к файлу пакета сертификатов CA может быть передан в качестве параметра плагина;
  • Создание ключей и их управление осуществляются с использованием KMS Hashicorp Vault и соответствующих инструментов;
  • Модуль использует libcurl (https) в качестве интерфейса к серверу HashiCorp Vault;
  • Парсинг JSON выполняется через службу JSON (через include/mysql/service_json.h);
  • Для разработки и тестирования использовался HashiCorp Vault 1.2.4.

Поскольку нам требуется поддержка версии ключей, хранилище ключей-значений должно быть настроено в Hashicorp Vault как хранилище ключей-значений, использующее интерфейс второй версии. Например, вы можете создать его следующим образом:

~$ vault secrets enable -path /test -version=2 kv

Имена ключей должны соответствовать их числовым идентификаторам. Более подробное описание идентификаторов ключей, их возможных значений и правил использования приведено в основной документации MariaDB.

С точки зрения хранилища ключей-значений (в терминах Hashicorp Vault), ключ представляет собой секрет, содержащий одну пару ключ-значение с именем «data» и значением, представляющим двоичную строку, содержащую значение ключа, например:

~$ vault kv get /test/1

====== Metadata ======
Key              Value
---              -----
created_time     2019-12-14T14:19:19.42432951Z
deletion_time    n/a
destroyed        false
version          1

==== Data ====
Key     Value
---     -----
data    0123456789ABCDEF0123456789ABCDEF

Значения ключей — это строки, содержащие двоичные данные. MariaDB в настоящее время использует алгоритм AES с 256-битными ключами в качестве метода шифрования по умолчанию. В этом случае ключи, которые будут храниться в Hashicorp Vault, должны быть 32-байтовыми строками. Вероятно, вы будете использовать какие-то утилиты для создания и администрирования ключей, предназначенные для работы с Hashicorp Vault. Но в самом простом случае ключи можно создать из командной строки с помощью утилиты vault, например, так:

~$ vault kv put /test/1 data="0123456789ABCDEF0123456789ABCDEF"

Если вы используете шифрование по умолчанию (AES), необходимо убедиться, что длина ключа составляет 32 байта, в противном случае использование InnoDB в качестве хранилища данных может быть невозможно.

Плагин в настоящее время не выполняет автоматическое разблокирование Hashicorp Vault, это необходимо выполнить предварительно самостоятельно.

Для использования KMS Hashicorp Vault плагин должен быть предварительно загружен и активирован на сервере. Большинство его параметров не должны изменяться во время работы плагина, поэтому они должны быть предварительно настроены как часть конфигурации сервера через конфигурационный файл или параметры командной строки:

--plugin-load-add=hashicorp_key_management.so
--loose-hashicorp-key-management
--loose-hashicorp-key-management-vault-url="$VAULT_ADDR/v1/test"
--loose-hashicorp-key-management-token="$VAULT_TOKEN"

Параметры

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

hashicorp-key-management-vault-url

  • Описание: HTTP[s] URL, используемый для подключения к серверу Hashicorp Vault. Он должен содержать имя схемы (https:// для защищенного подключения) и, согласно правилам API для хранилищ типа «ключ-значение» в Hashicorp Vault, после адреса сервера путь должен начинаться со строки "/v1/" (в качестве префикса), например: https://127.0.0.1:8200/v1/my_secrets. По умолчанию путь не установлен, поэтому вы должны заменить его правильным путем к вашим секретам.
  • Командная строка: --[loose-]hashicorp-key-management-vault-url="<url>"

hashicorp-key-management-token

  • Описание: Токен аутентификации, переданный Hashicorp Vault в заголовке запроса. По умолчанию этот параметр содержит пустую строку, поэтому необходимо указать для него корректное значение, иначе сервер Hashicorp Vault откажет в авторизации.
  • Командная строка: --[loose-]hashicorp-key-management-token="<token>"

hashicorp-key-management-vault-ca

  • Описание: Путь к файлу пакета сертификатов Certificate Authority (CA) (файл, содержащий корневые и промежуточные сертификаты). По умолчанию этот параметр содержит пустую строку, что означает отсутствие пакета сертификатов CA.
  • Командная строка: --[loose-]hashicorp-key-management-vault-ca="<path>"

hashicorp-key-management-timeout

  • Описание: Установка времени ожидания соединения с сервером Hashicorp Vault (в секундах). Значение по умолчанию — 15 секунд. Допустимый диапазон — от 1 до 86400 секунд. Пользователь также может указать нулевое значение, что означает использование значения таймаута по умолчанию, заданного библиотекой libcurl (в настоящее время 300 секунд).
  • Командная строка: --[loose-]hashicorp-key-management-timeout=<timeout>

hashicorp-key-management-retries

  • Описание: Количество попыток повторного запроса к серверу в случае таймаута. Значение по умолчанию — три попытки.
  • Командная строка: ----[loose-]hashicorp-key-management-retries=<retries>

hashicorp-key-management-caching-enabled

  • Описание: Включить кэширование ключей (хранение значений ключей, полученных от сервера Hashicorp Vault, в локальной памяти). По умолчанию кэширование включено.
  • Командная строка: --[loose-]hashicorp-key-management-caching-enabled="on"|"off"

hashicorp-key-management-use-cache-on-timeout

  • Описание: Этот параметр сообщает плагину использовать значения ключей или номера версий из кэша в случае таймаута при обращении к серверу vault. По умолчанию этот параметр отключен. Обратите внимание, что значения ключей или номера версий будут считываться из кэша при истечении таймаута только после того, как исчерпаны все попытки считать их с сервера хранилища, указанные параметром --[loose-]hashicorp-key-management-retries.
  • Командная строка: --[loose-]hashicorp-key-management-use-cache-on-timeout="on"|"off"

hashicorp-key-management-cache-timeout

  • Описание: Время (в миллисекундах) после которого значение ключа, хранящегося в кэше, становится недействительным, и попытка чтения этих данных вызывает отправку нового запроса на сервер vault. По умолчанию записи кэша становятся недействительными через 60 000 миллисекунд (через одну минуту). Если значение этого параметра равно нулю, то ключи всегда будут считаться недействительными, но они всё ещё могут использоваться, если сервер vault недоступен, и соответствующий режим работы кэша (--[loose-]hashicorp-key-management-use-cache-on-timeout="on") включен.
  • Командная строка: --[loose-]hashicorp-key-management-cache-timeout=<timeout>

hashicorp-key-management-cache-version-timeout

  • Описание: Время (в миллисекундах) после которого информация о последнем номере версии ключа (хранящаяся в кэше) становится недействительной, и попытка чтения этой информации вызывает отправку нового запроса на сервер vault. Если значение этого параметра равно нулю, то информация о последних номерах версий ключей всегда считается недействительной, кроме случаев, когда нет связи с сервером vault и использование кэша разрешено при отсутствии связи с сервером. По умолчанию этот параметр равен нулю, то есть последние номера версий ключей, хранящихся в кэше, считаются всегда недействительными, кроме случаев, когда сервер vault недоступен и использование кэша разрешено при сбоях сервера.
  • Командная строка: --[loose-]hashicorp-key-management-cache-version-timeout=<timeout>

hashicorp-key-management-check-kv-version

  • Описание: Этот параметр включает («on», это значение по умолчанию) или отключает («off») проверку версии хранилища kv во время инициализации плагина. Для корректной работы плагина хранилище должно быть версии 2 или более ранней.
  • Командная строка: --[loose-]hashicorp-key-management-check-kv-version="on"|"off"

См. также

  • HashiCorp Vault и MariaDB
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/hashicorp-key-management-plugin/

Spec-Zone.ru

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