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

Самый быстрый способ потрогать Vault руками — dev-режим, и почему его нельзя нести в прод.

Dev-режим — упрощённый режим запуска Vault, где он сразу инициализирован, распечатан и держит данные в памяти; предназначен только для обучения и локальной разработки.

Чтобы начать, не нужен ни кластер, ни TLS, ни ритуал с unseal-ключами. Одна команда поднимает готовый к работе Vault.

Запуск

vault server -dev

В консоли появится адрес и root-токен. Vault печатает их прямо в лог — это первый признак, что режим небезопасен:

==> Vault server configuration:
         Api Address: http://127.0.0.1:8200
             Storage: inmem

Unseal Key: 1+yv...
Root Token: hvs.devonlyXXXX

Что dev-режим делает за вас

  • Инициализирует и распечатывает Vault автоматически — никаких operator init и unseal.
  • Хранит данные в памяти (inmem) — после остановки всё исчезает.
  • Слушает по HTTP без TLS на 127.0.0.1:8200.
  • Выдаёт root-токен и монтирует KV-движок на secret/.

Настройка клиента

CLI vault — это тоже клиент по сети, ему нужно знать адрес и токен. Их передают через переменные окружения:

export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN='hvs.devonlyXXXX'

vault status

После этого можно сразу работать:

vault kv put secret/hello name=world
vault kv get secret/hello

Как работает под капотом

Dev-режим — это обычный Vault с предустановленными «костылями для удобства»: backend inmem, авто-unseal встроенным фиктивным ключом и единый порог 1/1. Архитектурно это тот же Vault, поэтому всё, что вы изучите в dev, применимо и в проде — меняется лишь обвязка запуска и хранения.

Почему dev НЕЛЬЗЯ в прод

Свойство devЧем грозит в проде
данные в памятиперезапуск стирает все секреты
HTTP без TLSсекреты ходят по сети открыто
root-токен в логеполный доступ виден всем, у кого есть лог
авто-unseal фикс-ключомкража диска раскрывает всё

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

  • Запустить dev и забыть про него на сервере, доступном из сети — открытый Vault с root-токеном.
  • Удивляться потере данных после рестарта — в dev так и задумано.
  • Тащить root-токен из dev в скрипты — он временный и небезопасный.

Итог

  • Dev-режим даёт готовый Vault одной командой — идеален для обучения.
  • Клиент настраивается через VAULT_ADDR и VAULT_TOKEN.
  • В прод dev-режим нести нельзя: память, отсутствие TLS и root-токен в логе.
Проверьте себя
1. Что dev-режим делает автоматически?
AНастраивает TLS и кластер
BИнициализирует, распечатывает Vault и хранит данные в памяти
CСоздаёт бэкапы на диск
DВключает аудит
2. Почему dev-режим нельзя использовать в продакшне?
AОн медленный
BДанные в памяти, нет TLS, root-токен печатается в лог
CОн не поддерживает KV
DВ нём нет CLI
3. Как CLI vault узнаёт, куда обращаться?
AИз файла /etc/hosts
BЧерез переменные VAULT_ADDR и VAULT_TOKEN
CАвтоматически сканирует сеть
DИз storage backend