Статические секреты: KV put и get
Базовая операция Vault: положить пару ключ-значение и потом её прочитать.
KV (Key-Value) движок — простейший движок секретов Vault для хранения произвольных статических данных в виде пар «ключ-значение» по путям.
С KV начинают почти все: это знакомая модель «папка → файл с полями». В dev-режиме KV-движок уже смонтирован на пути secret/.
Запись секрета
Команда kv put кладёт по пути одно или несколько полей сразу:
vault kv put secret/myapp/database \
username="app_user" \
password="S3cr3t!" \
host="db.internal"
Путь secret/myapp/database вы придумываете сами — Vault не навязывает структуру. Хорошая практика — группировать по приложению и назначению.
Чтение секрета
vault kv get secret/myapp/database
Вывод:
===== Data ===== Key Value --- ----- host db.internal password S3cr3t! username app_user
Чаще нужно достать одно поле — для подстановки в скрипт. Флаг -field печатает голое значение без оформления:
vault kv get -field=password secret/myapp/database
Машиночитаемый вывод
Для скриптов удобен JSON:
vault kv get -format=json secret/myapp/database
{
"data": {
"data": {
"host": "db.internal",
"password": "S3cr3t!",
"username": "app_user"
},
"metadata": { "version": 1, "destroyed": false }
}
}
Обратите внимание на вложенность data.data — это особенность KV версии 2, о ней отдельный урок.
Просмотр и удаление
# какие пути лежат под secret/myapp/
vault kv list secret/myapp/
# удалить последнюю версию (мягко)
vault kv delete secret/myapp/database
Как работает под капотом
Каждая команда CLI превращается в HTTP-запрос к API. kv put — это POST на путь данных, kv get — GET. Полученные поля Vault шифрует барьером и кладёт в storage. Никакой «специальной БД секретов» нет — те же зашифрованные записи в общем хранилище.
Частые ошибки
- Использовать
kv putдля частичного обновления — он перезаписывает весь путь, затирая поля, которые вы не указали. Для добавления поля естьkv patch. - Парсить человекочитаемый вывод в скриптах — берите
-fieldили-format=json. - Класть в KV то, что лучше выдавать динамически (креды БД) — статический KV не ротируется сам.
Итог
- KV хранит статические секреты как пары «ключ-значение» по произвольным путям.
kv putпишет,kv getчитает;-fieldи-format=json— для скриптов.kv putперезаписывает путь целиком; для частичных правок естьkv patch.