Skip to content

Как настроить HashiCorp Vault

Коротко:

HashiCorp Vault — industry-standard secret manager. Stores: API keys, DB passwords, TLS certs, SSH keys. Features: dynamic secrets (creates credentials on-demand), leasing/revocation, audit log, K8s integration. Deploy: docker/K8s (3-node HA для prod), init, unseal (5 keys, 3 для unseal — Shamir's sharing). Production: enable auth (LDAP/OIDC/K8s), policies, audit.

Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.

Пошаговая настройка

  1. Dev mode (local test): docker run -d -p 8200:8200 -e VAULT_DEV_ROOT_TOKEN_ID=dev hashicorp/vault
  2. Set env: export VAULT_ADDR=http://localhost:8200 VAULT_TOKEN=dev
  3. Enable KV v2 secret engine: vault secrets enable -path=secret kv-v2
  4. Write secret: vault kv put secret/myapp db_password=s3cr3t
  5. Read: vault kv get secret/myapp
  6. Production: install via Helm в K8s, init + unseal, configure storage (Consul/Raft)
  7. Enable auth methods: AppRole (machines), Kubernetes (pods), LDAP (users)
  8. Write policies, audit log

Рабочие примеры

СценарийКонфиг
Write/read secretvault kv put secret/myapp api_key=sk-abc123 vault kv get -field=api_key secret/myapp
K8s integration# ServiceAccount in K8s vault auth enable kubernetes vault write auth/kubernetes/config \ kubernetes_host=https://kubernetes.default.svc vault write auth/kubernetes/role/myapp \ bound_service_account_names=myapp \ bound_service_account_namespaces=default \ policies=myapp-policy
Dynamic DB credentialsvault secrets enable database vault write database/config/postgres \ plugin_name=postgresql-database-plugin \ connection_url='postgresql://vault@pg:5432/{{name}}' \ allowed_roles=readonly # Rotate: vault read database/creds/readonly → returns new user/pass, auto-expires
Policy file# myapp-policy.hcl path "secret/data/myapp/*" { capabilities = ["read"] } path "database/creds/readonly" { capabilities = ["read"] }
Vault Agent injector (K8s sidecar)# Pod annotations vault.hashicorp.com/agent-inject: 'true' vault.hashicorp.com/role: 'myapp' vault.hashicorp.com/agent-inject-secret-db: 'secret/data/myapp'

Типичные ошибки

  • Dev mode — НЕ для prod (in-memory, lose на restart)
  • Unseal keys хранить отдельно (HSM, 5 разных людей). Lose all = data loss
  • Root token использовать только для bootstrap + revoke. После setup — use AppRole/K8s
  • Audit log обязателен для compliance. Vault без audit = blind spot
  • Backup Raft storage регулярно. Snapshot: vault operator raft snapshot save backup.snap
ЗаголовкиCSP, HSTS, X-Frame-Options и др.
SSL/TLSШифрование и сертификат
КонфигурацияСерверные настройки и утечки
Оценка A-FОбщий балл безопасности

Почему нам доверяют

OWASP
рекомендации
15+
заголовков безопасности
<2с
результат
A–F
оценка безопасности

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

1

Введите URL сайта

2

Анализ заголовков безопасности

3

Получите оценку A–F

Что проверяет анализ безопасности?

Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.

Анализ заголовков

Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.

Проверка SSL

Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.

Обнаружение утечек

Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.

Отчёт с рекомендациями

Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.

Кому это нужно

Специалисты по безопасности

аудит HTTP-заголовков

DevOps

проверка конфигурации

Разработчики

CSP и HSTS настройка

Аудиторы

соответствие стандартам

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

Нет Content-Security-PolicyCSP — главная защита от XSS. Без него инъекция скриптов значительно проще.
Нет заголовка HSTSБез HSTS возможна downgrade-атака с HTTPS на HTTP. Включите Strict-Transport-Security.
Server header раскрывает версиюServer: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.
X-Frame-Options не установленСайт можно встроить в iframe для clickjacking-атаки. Установите DENY или SAMEORIGIN.
Нет X-Content-Type-OptionsБез nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).

Лучшие практики

Начните с базовых заголовковМинимум: HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy. Займёт 5 минут.
Внедрите CSP постепенноНачните с Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.
Скройте серверные заголовкиУдалите Server, X-Powered-By, X-AspNet-Version из ответов.
Настройте Permissions-PolicyОграничьте доступ к камере, микрофону, геолокации — только то, что реально используется.
Проверяйте после каждого деплояЗаголовки безопасности могут быть перезаписаны при обновлении конфигурации сервера.

Получите больше с бесплатным аккаунтом

История security-проверок и мониторинг HTTP-заголовков безопасности.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Vault или AWS Secrets Manager?

AWS SM: managed, tight AWS integration, $0.40/secret/month. Vault: multi-cloud, dynamic creds, advanced features (transit encryption), но self-host complexity.

License — open-source?

Vault стал BSL (Business Source License) в 2023, как Terraform. Open-source fork — OpenBao (Linux Foundation).

Как rotate secrets?

Dynamic secrets: auto-rotate при каждом запросе. Static: TTL + VersionedKV + manual rotation via API.

Integration с apps?

Vault Agent (sidecar renders secrets в file), Vault SDK (Python/Go/Java), Kubernetes Secret Injector.