Vault

HashiCorp Vault — централизованное хранилище секретов: пароли к базам, API-ключи, сертификаты — всё хранится в одном месте, зашифровано, с аудит-логом «кто когда читал».

Проблема без Vault: секреты разбросаны по переменным окружения на десятках серверов, непонятно кто имеет доступ, ротация — вручную на каждой машине.

Как работает:

# Записать секрет
vault kv put secret/myapp db_password=super_secret

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

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

Динамические секреты — «убийственная фича» Vault: вместо постоянного пароля к базе, Vault может создать временные логин/пароль для конкретного приложения с TTL (например, 1 час). По истечению Vault сам их удаляет.

Копнуть глубже

Spring Vault — интеграция через spring-cloud-vault-config:

# bootstrap.yml
spring:
  cloud:
    vault:
      host: vault.company.com
      authentication: TOKEN
      token: ${VAULT_TOKEN}
      kv:
        enabled: true
        backend: secret
        application-name: myapp

Spring автоматически загружает секреты из Vault в Environment при старте — @Value("${db_password}") работает как обычно, но значение берётся из Vault.

Аутентификация приложения к Vault:

  • Token — простой статический токен (для разработки)
  • AppRole — специальный ID+Secret для приложений (для продакшена)
  • Kubernetes — Pod может автоматически аутентифицироваться через ServiceAccount Kubernetes — никаких статических токенов, Vault доверяет Kubernetes API

Seal/Unseal механизм. Vault при старте “запечатан” (sealed) — данные зашифрованы и недоступны. Для распечатки нужны части мастер-ключа (схема Shamir’s Secret Sharing): если ключ разделён на 5 частей с порогом 3, любые 3 из 5 владельцев могут вместе распечатать Vault. Это защита от ситуации, когда один сотрудник знает весь ключ и может злоупотребить доступом.

🎤 Закрыл тему, если можешь объяснить:
• какую проблему решает Vault по сравнению с переменными окружения;
• что такое динамические секреты и зачем они нужны (если дошёл до 2-го слоя).