DevOps и инфраструктура

Учебник HashiCorp Vault для начинающих

31 урок · 9 разделов · бесплатно, без регистрации

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

Мы пройдём путь от проблемы «secret sprawl» и базовой работы с vault kv до динамических секретов БД и облака, движков transit и PKI, интеграции с Kubernetes и продакшн-разворачивания с HA и авто-unseal. Курс рассчитан на инженеров, знакомых с командной строкой, Docker и основами сетевой безопасности.

Курс «HashiCorp Vault: управление секретами» состоит из 9 разделов и 31 урока: Проблема секретов и знакомство с Vault, Архитектура: seal/unseal и хранилище, Установка, запуск и базовая работа, Аутентификация: кто заходит в Vault, Политики и токены, Динамические секреты, Шифрование, сертификаты и SSH, Интеграция с приложениями и Kubernetes и Аудит, продакшн и практики. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Проблема секретов и знакомство с Vault

    1. Почему секреты нельзя хранить в коде

      Хардкод паролей, .env в гите, секреты в репозитории — почему это опасно и к чему приводит на практике.

    2. Secret sprawl: как секреты расползаются

      Что такое secret sprawl — расползание секретов по репозиториям, CI, чатам и образам — и почему его трудно контролировать.

    3. Что такое HashiCorp Vault

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

  2. 2 Архитектура: seal/unseal и хранилище

    1. Storage backend и барьер шифрования

      Где Vault хранит данные, почему storage backend не доверенный и что такое криптографический барьер.

    2. Seal и unseal: запечатывание Vault

      Что такое запечатанное состояние, как мастер-ключ открывает барьер и почему после старта Vault нужно распечатывать.

    3. Разделение ключа: схема Шамира

      Shamir's Secret Sharing — как мастер-ключ делится на части с порогом, зачем это нужно и как задаются shares и threshold.

  3. 3 Установка, запуск и базовая работа

    1. Dev-режим и первый запуск

      Запуск Vault в dev-режиме для обучения: что он делает автоматически и почему категорически не годится для прода.

    2. Prod-режим: init и unseal на практике

      Запуск Vault с конфигом, инициализация operator init, распечатывание тремя ключами и первый вход root-токеном.

    3. Статические секреты: KV put и get

      Хранение и чтение статических секретов через движок KV: vault kv put, get, list и работа с полями.

    4. KV v2: версии секретов

      Версионирование секретов в KV v2: история значений, откат, soft delete и destroy, отличия от KV v1.

    5. Движки секретов и пути

      Secrets engines как модули по путям: монтирование, перечисление, изоляция движков и почему всё в Vault организовано путями.

  4. 4 Аутентификация: кто заходит в Vault

    1. Auth-методы и принцип логина

      Как устроена аутентификация в Vault: методы как плагины, логин в обмен на токен и привязка к политикам.

    2. AppRole: вход для приложений

      AppRole — как приложение логинится в Vault через RoleID и SecretID, зачем разделять эти части и где брать SecretID.

    3. Kubernetes, LDAP и OIDC

      Аутентификация подов через Kubernetes auth по ServiceAccount-токену и вход людей через LDAP и OIDC/SSO.

  5. 5 Политики и токены

    1. Политики на HCL и capabilities

      Как пишутся политики Vault на HCL: пути и capabilities (read, create, update, delete, list, deny), запрет приоритетнее.

    2. Принцип наименьших привилегий

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

    3. Токены: TTL, renew, revoke, иерархия

      Жизненный цикл токена Vault: создание, время жизни TTL и max_TTL, продление renew, отзыв revoke и древовидная иерархия.

  6. 6 Динамические секреты

    1. Идея динамических секретов

      Чем динамические секреты лучше статических: уникальные временные креды по запросу, авто-отзыв и сужение окна компрометации.

    2. Database engine: креды для Postgres

      Настройка database secrets engine для PostgreSQL: connection, роль с creation_statements и выдача временных кредов по запросу.

    3. Облачные секреты: AWS engine

      AWS secrets engine: динамическая выдача временных IAM-кредов по запросу, типы iam_user и assumed_role, авто-отзыв.

    4. Leasing и renewal: аренда секретов

      Как работает аренда динамических секретов: lease_id, lease_duration, продление renew, отзыв revoke и каскадный отзыв.

  7. 7 Шифрование, сертификаты и SSH

    1. Transit: шифрование как сервис

      Transit engine: encryption-as-a-service — Vault шифрует и расшифровывает данные, не храня их, ключи не покидают Vault.

    2. PKI: Vault как центр сертификации

      PKI engine: Vault выпускает короткоживущие TLS-сертификаты по запросу, роли с разрешёнными доменами, выдача issue.

    3. SSH-секреты: обзор

      Обзор SSH secrets engine: подписанные SSH-сертификаты и одноразовые пароли (OTP) вместо раздачи статических ключей.

  8. 8 Интеграция с приложениями и Kubernetes

    1. Vault Agent и auto-auth

      Vault Agent: автоматическая аутентификация (auto-auth), кэш токена и шаблоны для рендеринга секретов в файлы.

    2. Vault Agent Injector в Kubernetes

      Vault Agent Injector: автоматическая инъекция секретов в поды через sidecar по аннотациям, без изменения образа приложения.

    3. Чтение секретов из кода и CSI

      Работа с Vault из кода через клиент: логин и чтение секретов при старте; обзор Secrets Store CSI Driver как альтернативы.

  9. 9 Аудит, продакшн и практики

    1. Audit devices: логирование обращений

      Audit-устройства Vault: журналирование всех запросов и ответов, хеширование секретов в логах, требование хотя бы одного устройства.

    2. HA, авто-unseal и продакшн

      Продакшн-Vault: высокая доступность через Raft-кластер, активный и standby узлы, авто-unseal через облачный KMS.

    3. Vault и альтернативы

      Сравнение Vault с AWS Secrets Manager, Sealed Secrets и SOPS: сильные стороны, ниши и когда что выбирать.

    4. Ошибки, best practices и пример

      Типичные ошибки (root token в проде, нет ротации, широкие политики), best practices и сквозной пример: приложение берёт креды БД динамически.