Механизм секретов kv
представляет собой общее хранилище ключ-значение для хранения произвольных секретов в настроенном физическом хранилище для Stronghold. Этот механизм секретов может работать в двух режимах:
- kv версии 1, для хранения одного значения для ключа
- kv версии 2, с версионностью и возможностью хранения произвольно настроиваемового количества версий для каждого ключа.
KV версия 1
При использовании механизма секретов kv
хранилища в режиме без поддержки версионирования, сохраняется только последнее обновленное значение ключа. Основным преимуществом использования данного режима является уменьшение занимаемого пространства на хранилище для каждого ключа, так как не сохраняются дополнительные метаданные и история изменений. Кроме того, операции запроса к механизму секретов, настроенному таким образом, являются более производительными, так как для каждого конкретного запроса требуется меньше обращений к хранилищу данных и не возникает блокировки при изменении значения ключа.
KV версия 2
При использовании версии 2 механизма секретов kv ключ может сохранять настраиваемое количество версий. По умолчанию это 10 версий. Метаданные и данные старых версий могут быть извлечены из каждой сохраненной версии. Кроме того, для предотвращения случайной перезаписи данных можно использовать операции Check-and-Set.
При удалении версии данные, лежащие в ее основе, не удаляются, а помечаются как удаленные. Удаление версии может быть отменено. Для окончательного удаления данных версии можно использовать консольную команду destroy или отправить запрос в соответствующий путь API. Кроме того, все версии и метаданные для ключа могут быть удалены командой delete
по метаданным или конечной точкой API. На каждую из этих операций можно наложить различные ACL, ограничивающие права на мягкое удаление, удаление без удаления или полное удаление данных.
Использование
Для взаимодействия с механизмом секретов K/V используйте команду d8 stronghold kv <подкоманда> [options] [args]
.
Доступные подкоманды перечислены в следующей таблице:
Подкоманда | kv v1 | kv v2 | Описание |
---|---|---|---|
delete | x | x | Удаление версий секретов, хранящихся в K/V |
destroy | x | Постоянное удаление одной или нескольких версий секретов | |
enable-versioning | x | Включение версионности для существующего хранилища K/V v1 | |
get | x | x | Получение данных |
list | x | x | Перечислить данные или секреты |
metadata | x | Взаимодействие с хранилищем ключей-значений Stronghold | |
patch | x | Обновление секретов без перезаписи существующих секретов | |
put | x | x | Установка или обновление секретов (при этом происходит замена существующих секретов) |
rollback | x | Откат к предыдущей версии секретов | |
undelete | x | Восстановление удаленной версии секретов |