HashiCorp Vault на VPS: хранение секретов
Vault self-hosted на VPS: API keys, DB passwords, rotation. Централизованные секреты для приложений и CI/CD.
Краткий ответ: Vault хранит секреты централизованно: приложение запрашивает DB password по token, не из .env в git. Self-hosted на VPS — для команд без облачного Secrets Manager.
.env на диске — риск. Restic бэкапит файлы, но секреты не должны лежать в plaintext.
Vault vs .env vs Docker secrets
| Vault | .env file | Docker secrets | |
|---|---|---|---|
| Rotation | Да | Вручную | Сложно |
| Audit log | Да | Нет | Нет |
| Сложность | Высокая | Низкая | Средняя |
| Single VPS | Overkill? | OK | OK |
Для solo dev на одном VPS — .env + Tailscale достаточно. Vault — 3+ сервиса, команда.
Dev mode (только тест)
docker run -d --name vault -p 8200:8200 \
-e VAULT_DEV_ROOT_TOKEN_ID=dev-token \
hashicorp/vault
Production — Raft storage, TLS, unseal keys.
Запись секрета
export VAULT_ADDR='https://vault.example.com'
vault kv put secret/myapp db_password=xxx api_key=yyy
vault kv get secret/myapp
Приложение — AppRole auth, periodic token.
Интеграция CI/CD
GitLab Runner и GitHub Actions получают секреты из Vault в runtime — не в repository secrets.
Безопасность
- TLS обязателен (certbot DNS)
- Unseal keys offline
- Fail2ban + CrowdSec
- Бэкап Raft — Restic
Итог
Vault — enterprise-grade secrets. На одном VPS редко нужен; при росте инфраструктуры — must-have.
VPS 2 GB+ — StormNet Cloud. Базовая безопасность — защита VPS.
Рекомендуем прочитать
Частые вопросы
Нужен ли Vault на одном VPS?
Редко. Для solo-проекта достаточно .env с правами 600. Vault окупается при нескольких сервисах и ротации секретов.
Vault или облачный Secrets Manager?
Self-hosted Vault — контроль и без vendor lock-in. Облачный — проще ops, но платно и данные у провайдера.






