Что такое HashiCorp Vault

Знакомимся с продуктом: что Vault делает, какие задачи закрывает и из каких возможностей состоит.

HashiCorp Vault — это инструмент для централизованного хранения, выдачи и управления жизненным циклом секретов, а также для шифрования данных как сервиса.

Vault часто называют «менеджером паролей для инфраструктуры», но это упрощение. Vault решает четыре разные задачи, и именно их сочетание делает его стандартом индустрии.

Четыре роли Vault

1. Хранилище статических секретов

Самое очевидное: положить пароль, прочитать пароль. Vault шифрует данные на диске и отдаёт их только аутентифицированным клиентам с подходящей политикой.

2. Генератор динамических секретов

Главная фишка. Vault не хранит креды к базе заранее — он создаёт их по запросу, с коротким сроком жизни, и сам удаляет, когда срок истёк. У каждого приложения свои уникальные временные креды.

3. Шифрование как сервис

Движок transit позволяет приложению зашифровать или расшифровать данные, не получая сам ключ — ключ никогда не покидает Vault. Приложение шлёт открытый текст, получает шифртекст.

4. Центр сертификации и выдачи

Движок PKI выдаёт короткоживущие TLS-сертификаты по запросу, заменяя ручной выпуск и долгие сроки действия.

Как с ним работают

Vault — это сетевой сервис с HTTP API. С ним общаются тремя способами: через CLI vault, напрямую по REST API и через веб-интерфейс (UI). CLI под капотом просто дёргает тот же API.

# положить секрет
vault kv put secret/myapp/db password="s3cr3t"

# прочитать секрет
vault kv get secret/myapp/db

Тот же запрос напрямую по API выглядит так:

{
  "request_id": "a1b2c3",
  "data": {
    "data": { "password": "s3cr3t" },
    "metadata": { "version": 1 }
  }
}

Как работает под капотом: всё — это путь

Ключевая идея архитектуры: в Vault всё представлено путями, как в файловой системе или REST API. Чтение секрета, логин, выпуск сертификата — всё это операции чтения/записи по путям вроде secret/data/myapp, auth/approle/login, database/creds/readonly. Это унифицирует и работу, и систему прав: политика просто описывает, какие операции разрешены на каких путях.

Где применяется

  • Микросервисы получают креды к БД и очередям при старте.
  • CI/CD-пайплайны берут токены деплоя на время выполнения.
  • Приложения шифруют чувствительные поля через transit.
  • Внутренняя инфраструктура получает TLS-сертификаты из PKI.

Частые ошибки

  • Считать Vault просто KV-хранилищем — это упускает динамические секреты, ради которых его чаще всего и внедряют.
  • Думать, что Vault сам себя защитит — без правильных политик и аудита он лишь переносит проблему.

Итог

  • Vault — это хранилище секретов, генератор динамических кредов, шифрование как сервис и центр сертификации в одном.
  • Работа идёт через единый HTTP API; CLI и UI — обёртки над ним.
  • Архитектурный принцип «всё — это путь» унифицирует операции и систему прав.
Проверьте себя
1. Какая возможность Vault считается его главной отличительной фишкой?
AХранение статических паролей
BГенерация динамических секретов по запросу с коротким сроком жизни
CВеб-интерфейс
DПоддержка CLI
2. Что означает принцип «в Vault всё — это путь»?
AВсе секреты лежат в одной папке
BОперации (чтение, логин, выпуск) выполняются как чтение/запись по путям, что унифицирует и права
CVault работает только с файловой системой
DПути нужны только для KV-движка
3. Что делает движок transit (шифрование как сервис)?
AХранит зашифрованные файлы на диске
BШифрует и расшифровывает данные, не отдавая ключ наружу
CПередаёт ключ приложению для локального шифрования
DГенерирует пароли