
HashiCorp Vault — хранилище секретов на своём сервере
Vault в Docker одной командой: HTTPS с Let's Encrypt, инициализация, распечатка, бэкапы и доступ только с ваших IP. Ответьте на 3–5 вопросов и сервис готов.
Пароли от баз, токены, ключи API и сертификаты обычно лежат где придётся: в .env, в чатах, в вики, в головах. Vault собирает их в одном месте: доступ по правам, журнал «кто что читал», временные пароли вместо вечных.
Обычно его поднимают день-два: Docker, хранилище, TLS, инициализация, ключи распечатки, бэкапы. Здесь это одна команда и несколько вопросов.
Что получаете
- Vault 2.2.0 — последняя стабильная версия. Другую можно выбрать при установке.
- Vault с веб-интерфейсом на своём домене с HTTPS (сертификат Let's Encrypt выпускается и продлевается сам) или на порту сервера за вашим nginx/Traefik.
- Готовый к работе Vault: инициализирован, распечатан, root token и ключи — в защищённом файле на сервере.
- Надёжное хранилище Raft: тот же узел потом можно расширить до кластера без переноса данных.
- Бэкапы одной командой — снапшоты, хранятся последние 14.
- Доступ только с ваших IP — офис, VPN, свой сервер. Остальным закрыто, меняется на лету.
- Обновления без ручной работы: перед обновлением делается снапшот, после — распечатка.
- Установщик на русском или английском — выбираете первым вопросом.
Кому подойдёт
- Команде, у которой секреты разбросаны по
.envи чатам. - Тем, кому нужен свой Vault, а не облачный: данные не уходят третьим лицам.
- Для CI/CD: GitLab, GitHub Actions, Jenkins и Kubernetes берут секреты прямо из Vault.
Как установить
- Подготовьте сервер с Ubuntu или Debian (требования ниже). Для HTTPS направьте A-запись домена, например
vault.example.com, на IP сервера. - Скопируйте команду из блока «Скачать» — он появится после входа. В команде ваш личный токен, он действует 12 часов.
- Выполните её на сервере и ответьте на вопросы:
Language / Язык (en / ru) [en]: ru
Версия HashiCorp Vault (последняя стабильная: 2.2.0) [2.2.0]:
Каталог установки (данные, настройки, бэкапы) [/opt/vault]:
Режим: public — свой домен с HTTPS (Let's Encrypt), local — порт на этом сервере для вашего прокси (public / local) [local]: public
Домен (A-запись должна указывать на этот сервер): vault.example.com
Email для Let's Encrypt: admin@example.com
Пускать только с этих IP/подсетей: 203.0.113.10, 10.20.0.0/16
Автоматически распечатывать Vault после перезапуска? (yes/no) [no]: no
- Сохраните ключи. В конце установщик покажет адрес, root token и где лежат ключи распечатки. Перенесите файл в менеджер паролей и удалите его с сервера:
rs vault forget-keys.
Перед установкой скрипт проверяет ОС, ресурсы, свободные порты и что домен смотрит на сервер, — до выпуска сертификата, чтобы не упереться в лимиты Let's Encrypt.
Системные требования
| Минимум | Рекомендуем | |
|---|---|---|
| ОС | Ubuntu 22.04 / 24.04, Debian 12+ | Ubuntu 24.04 |
| Процессор | 1 vCPU, amd64 или arm64 | 2 vCPU |
| Память | 2 ГБ | 4 ГБ |
| Диск | 20 ГБ | 50 ГБ SSD |
- Права root (
sudo). - Docker не нужен заранее — поставится сам из официального репозитория.
- Для режима с доменом: A-запись на сервер и свободные порты 80 и 443.
- Доступ к Docker Hub. Если он заблокирован, добавьте зеркало:
RS_REGISTRY_MIRROR=https://mirror.gcr.io.
Два режима
| Режим | Что получаете | Когда выбрать |
|---|---|---|
public | https://ваш-домен с сертификатом Let's Encrypt | Vault нужен по сети, своего прокси нет |
local | http://127.0.0.1:8200 или порт на всех интерфейсах | Уже есть nginx/Traefik с TLS или доступ только с самого сервера |
Управление после установки
rs vault status состояние: запущен, запечатан или нет
rs vault unseal распечатать после перезапуска
rs vault backup снапшот в /opt/vault/backups
rs vault upgrade [версия] снапшот → новая версия (по умолчанию последняя стабильная) → распечатка
rs vault access "203.0.113.10, 10.0.0.0/8" пускать только эти IP (off — снять)
rs vault logs | restart | uninstall
Повторный запуск установки безопасен: данные и ключи сохраняются, Vault не инициализируется заново. Так же меняются параметры — например, переход с порта на домен.
Безопасность
- Ключи распечатки и root token — доступ ко всем секретам. Храните их вне сервера.
- Root token нужен только для первой настройки: заведите пользователей и политики, затем отзовите его.
- Автораспечатка удобна для тестовых стендов: Vault поднимается сам после перезагрузки. Но ключи тогда лежат на том же сервере — для продакшена оставьте ручную распечатку.
- Ограничение по IP в режиме с доменом работает на уровне HTTPS-прокси, в режиме порта — правилами firewall Docker (обычный
ufwпорты Docker не закрывает, здесь это учтено).
Вопросы
Сколько стоит? Установка бесплатная. Vault — продукт HashiCorp под лицензией BSL 1.1: для использования в своей компании бесплатно.
Нет домена? Выберите local: Vault будет на порту сервера, HTTPS настроите своим прокси.
Можно без вопросов, для автоматизации? Да: передайте параметры переменными или файлом и добавьте --yes — примеры в блоке «Скачать».
Что если токен в команде истёк? Откройте эту страницу заново — команда обновится.
Официальная документация
https://developer.hashicorp.com/vault
Материалы доступны после входа и подтверждения email.
