Перейти к основному содержимому

Практикум Vault — итоги

Практикум показал, как убрать plaintext credentials из Git и .env, централизовав секреты в HashiCorp Vault. Ниже — выводы по каждому блоку и связь с GitOps.


1. Зачем Vault в инфраструктуре

Секреты хранятся в Vault, Git остаётся без passwords и API keys — 8.03/117.

БылоСтало
.env в репозиторииpath secret/demo/db в Vault
Один файл на все средыsecret/dev/, secret/prod/
Root token в CIAppRole, K8s auth, OIDC

2. Шаг 1 — KV v2

  1. Vault в Docker -dev на http://127.0.0.1:8200.
  2. Движок kv-v2 с версионированием и metadata.
  3. Команды vault kv put / vault kv get — базовый CRUD секретов.
  4. Dev-режим только lab — нет persistence, предсказуемый root token.

3. Шаг 2 — Policies и AppRole

  1. Policy demo-read — least privilege, read на secret/data/demo/*.
  2. AppRolerole_id + secret_id → short-lived client_token.
  3. Root token — break-glass для админов, не для приложений и CI.
  4. Audit log — обязателен в production для compliance — 8.07/114.

4. Шаг 3 — приложение, K8s, CI

  1. Fetch at startup — секрет в памяти процесса, hvac или HTTP API.
  2. External Secrets Operator — Vault → Kubernetes Secret без YAML password в Git.
  3. Связка с GitOps practicum — Argo CD sync ExternalSecret, ESO sync значений.
  4. GitHub Actions + OIDC — JWT вместо long-lived VAULT_TOKEN8.12/8.
  5. Rotationvault kv put новой версии, ESO refresh или restart Pod.

5. Production checklist

ТребованиеLabProduction
HA VaultНетRaft / Consul cluster
Auto-unsealDev autoKMS, HSM
TLSHTTP localhostHTTPS, cert rotation
Auth для appsAppRoleK8s auth, SPIFFE, OIDC
AuditОпциональноImmutable + SIEM
Policiesdemo-readПо сервисам и средам

DevSecOps-практики — 8.12/3.


6. Связка GitOps + Vault (итоговая схема)

Git описывает структуру (какой Secret нужен). Vault хранит значения. Argo CD не видит password в diff PR.


7. Куда идти дальше

ТемаСсылка
GitOps цикл8.13 intro
Kubernetes8.06/211
OIDC CI8.12/8
СамопроверкаЧек-лист

Чек-лист · Методы защиты данных