Přeskočit obsah

Údržba

Postupy aktualizací, rotace klíčů a plánovaná údržba

Verze dokumentu: 1.1.0
Poslední aktualizace: 2026-04-07


1. Plán údržby

Úkon Frekvence Vyžadován výpadek Priorita
Aktualizace platformy Dle vydání Ano (rolling pro K8s) Vysoká
Ověření zálohy databáze Týdně Ne Vysoká
Obnovení TLS certifikátu Před expirací Ne (reload) Kritická
Rotace šifrovacího klíče tajemství 90 dní Ne (na pozadí) Vysoká
Rotace JWT podepisovacího klíče Na vyžádání Ne Střední
Rotace hlavního klíče Ročně Ano (plánovaně) Kritická
Database vacuum/analyze Týdně Ne Střední
Rotace/čištění logů Denně Ne Nízká
DR test Čtvrtletně Ne (testovací prostředí) Vysoká

2. Aktualizace platformy

Kontrolní seznam před aktualizací

  • [ ] Přečtěte si poznámky k vydání ohledně přelomových změn
  • [ ] Vytvořte úplnou zálohu databáze
  • [ ] Ověřte integritu zálohy
  • [ ] Zdokumentujte aktuální verzi a konfiguraci
  • [ ] Naplánujte okno údržby (pokud je vyžadováno)
  • [ ] Informujte dotčené uživatele

Aktualizace Kubernetes

# Update Helm repo
helm repo update

# Diff changes
helm diff upgrade mazevault mazevault/mazevault \
  -n mazevault -f values-production.yaml

# Create backup
kubectl exec -n mazevault deploy/mazevault-backend -- \
  pg_dump -h $DB_HOST -U $DB_USER $DB_NAME | gzip > backup-pre-upgrade.sql.gz

# Upgrade
helm upgrade mazevault mazevault/mazevault \
  -n mazevault -f values-production.yaml \
  --wait --timeout 10m

# Verify
kubectl get pods -n mazevault
curl -sk https://vault.example.com/api/v1/health | jq .

Aktualizace On-Premise

cd /opt/mazevault

# Backup
./scripts/mazevault-backup.sh

# Pull new images (connected) or load from offline package (air-gapped)
docker compose pull
# OR
docker load < images/mazevault-backend-1.0.17.tar
docker load < images/mazevault-frontend-1.0.17.tar
docker load < images/mazevault-ocsp-1.0.17.tar

# Update image tags in docker-compose.yml

# Apply upgrade
docker compose up -d

# Verify
docker compose ps
curl -sk https://localhost/api/v1/health | jq .

Ověření po aktualizaci

  • [ ] Všechny kontejnery/pody běží
  • [ ] Endpoint stavu vrací healthy
  • [ ] Migrace databáze úspěšně provedeny
  • [ ] Přístup k tajemstvím ověřen (přečtení testovacího tajemství)
  • [ ] Operace s certifikáty ověřeny
  • [ ] Heartbeaty agentů obnoveny
  • [ ] Auditní log zaznamenává události
  • [ ] Validace licence úspěšná

Postup vrácení změn

# Kubernetes
helm rollback mazevault -n mazevault

# On-Premise
docker compose down
# Restore previous image tags in docker-compose.yml
docker compose up -d
# Restore database if migration was applied

3. Údržba databáze

Vacuum a Analyze

# On-Premise
docker exec client-postgres psql -U mazevault -d mazevault -c "VACUUM ANALYZE;"

# Azure
# Automatic for Azure Database for PostgreSQL Flexible Server

Reindex (pokud je potřeba)

docker exec client-postgres psql -U mazevault -d mazevault -c "REINDEX DATABASE mazevault;"

Sledování velikosti databáze

docker exec client-postgres psql -U mazevault -d mazevault -c "
  SELECT pg_size_pretty(pg_database_size('mazevault')) as db_size;
"

4. Plán rotace tajemství

Typ klíče Rotace Způsob
Šifrovací klíče tajemství Každých 90 dní Automaticky (přešifrování na pozadí)
JWT podepisovací klíče Na vyžádání API volání nebo administrátorské rozhraní
Hlavní šifrovací klíč Ročně Plánované okno údržby
API klíče Dle politiky organizace Ručně přes administrátorské rozhraní

Rotace JWT klíčů

Rotujte JWT podepisovací klíče přes administrátorské rozhraní:

Nastavení → Zabezpečení → JWT podepisovací klíče → Rotovat

Systém provádí plynulý přechod klíčů — stávající tokeny zůstávají platné do jejich expirace a nové tokeny jsou podepsány novým klíčem.

5. Údržba certifikátů

Rotace CA klíčů

Klíče kořenové CA by měly být rotovány v souladu s certifikační politikou vaší organizace. Typické plány:

Typ CA Doporučená životnost
Root CA 10–20 let
Intermediate CA 5–10 let
Issuing CA 2–5 let

Údržba CRL

CRL se regenerují automaticky. Ověřte aktuálnost CRL:

curl -sk https://vault.example.com/api/v1/crl/pem | \
  openssl crl -inform PEM -noout -lastupdate -nextupdate

6. Komunikace o okně údržby

Šablona oznámení o údržbě:

Subject: MazeVault Scheduled Maintenance — [DATE]

Dear Team,

MazeVault will undergo scheduled maintenance on [DATE] from [TIME] to [TIME] (UTC).

During this window:
- The platform will be [briefly unavailable / in read-only mode]
- Affect: [describe impact]

Actions required:
- [Any pre-maintenance actions]

Post-maintenance:
- Service will be restored automatically
- Verify access at https://vault.example.com

For questions, contact: [support contact]

7. Automatizované systémové úlohy

MazeVault automaticky spouští několik úloh na pozadí. Tyto nevyžadují ruční zásah, ale jsou zde uvedeny pro operační přehled, plánování firewallu a řešení problémů.

Úlohy backendu

Správa certifikátů

# Úloha Interval Popis
1 Plánovač životního cyklu certifikátů 1h + 6h Označuje expirované certifikáty, kontroluje způsobilost pro automatickou obnovu, automaticky archivuje expirované položky. Synchronizuje stav z externích CA každých 6 hodin
2 Plánovač obnovy certifikátů 1h Detekuje certifikáty blížící se expiraci, zařazuje úlohy obnovy, zpracovává frontu obnov (5 souběžných workerů, PostgreSQL advisory lock)
3 Regenerace CRL 168h plný / 24h delta Regeneruje seznamy odvolaných certifikátů pro každou CA. Výchozí: plný CRL týdně, delta CRL denně (konfigurovatelné per CA)
4 Synchronizace CA 5 min Objevuje a importuje certifikáty z připojených externích CA účtů
5 Čištění ACME serveru 15 min / 30 min Odstraňuje expirované ACME nonce (15 min) a expirované objednávky certifikátů (30 min)

Tajemství a rotace

# Úloha Interval Popis
6 Plánovač rotace 1 min Detekuje tajemství a certifikáty s plánovanou rotací. Provádí přes 3-worker pool s databázovým řádkovým zamykáním a exponenciálním backoffem
7 Engine synchronizačních pravidel 1 min Vyhodnocuje pravidla synchronizace tajemství a spouští synchronizaci do nakonfigurovaných externích cílů
8 Rotace klíčů 24h Rotuje interní systémové klíče (RSA podepisovací, šifrovací, API klíče) s konfigurovatelnými grace periody

Notifikace a reporting

# Úloha Interval Popis
9 Plánovač notifikací 24h Zasílá upozornění na expiraci certifikátů expirujících do 30 dnů a upozornění na selhání rotace přes nakonfigurované kanály (Teams, Slack, Email, JIRA)
10 Týdenní report 1 min kontrola Generuje týdenní souhrnný report compliance a auditu. Spouští se každé pondělí v 7:00 (Europe/Prague)

Azure Entra ID

# Úloha Interval Popis
11 Synchronizace Entra ID 1h Synchronizuje registrace aplikací Azure Entra ID a jejich přihlašovací údaje
12 Monitor expirace Entra přihlašovacích údajů 1h Monitoruje přihlašovací údaje Entra aplikací z hlediska blížící se expirace (prahy 30 a 7 dní), zasílá upozornění

Licencování

# Úloha Interval Popis
13 Plánovač licencí 5 min / 1h / 24h Heartbeat na licenční server (5 min), reportování metrik využití (1h), plná validace licence a obnova stavu (24h)

Audit a logování

# Úloha Interval Popis
14 Retence auditních logů 24h Vynucuje nakonfigurovanou politiku retence auditních logů, odstraňuje expirované záznamy
15 Archivace auditu 5 min Seskupuje auditní události a archivuje do nakonfigurovaného dlouhodobého úložiště (S3, GCS, Azure Blob)
16 Flush log streamu 5 sek Odesílá bufferované auditní a eventové logy do nakonfigurovaných SIEM endpointů (Splunk, Elasticsearch, Syslog)

Systém a infrastruktura

# Úloha Interval Popis
17 Čištění archivu 1h Trvale odstraňuje archivovaná tajemství a certifikáty po uplynutí retenční doby
18 Reload TLS certifikátu 30 sek Hot-reload serverového TLS certifikátu z disku bez restartu. Konfigurovatelné přes MAZEVAULT_TLS_RELOAD_INTERVAL
19 Monitor zdraví gateway 30 sek Monitoruje heartbeaty gateway, detekuje nedostupné gateway (3 po sobě vynechané heartbeaty), spouští DR failover pokud je povolený
20 Detektor externích změn 1h Pouze v orchestrátorovém režimu — detekuje nesoulad mezi lokálními metadaty tajemství a hodnotami uloženými v externím správci tajemství

Úlohy agentů

Úloha Interval Popis
Synchronizace tajemství Konfigurovatelný (výchozí 5 min) Synchronizuje tajemství z backendu do lokálního úložiště
Heartbeat 60 sekund Hlásí stav agenta, metriky a verzi
Objevování certifikátů 1 hodina Skenuje infrastrukturu pro certifikáty (filesystem, JKS, Windows cert store)
Kontrola aktualizací 24 hodin Kontroluje dostupnost novější verze agenta

Úlohy gateway

Úloha Interval Popis
Heartbeat 60 sekund Hlásí stav gateway a konektivitu
Polling úloh 10 sekund Dotazuje backend na nevyřízené certifikační operace
Reconciliace fronty 30 sekund Sladí lokální frontu úloh se stavem backendu

Konfigurovatelné intervaly

Většina intervalů je pevně nastavena pro optimální výkon. Uživatelsky konfigurovatelné intervaly:

  • Synchronizace tajemství agenta — proměnná prostředí SYNC_INTERVAL_SECONDS
  • Reload TLS certifikátu — proměnná prostředí MAZEVAULT_TLS_RELOAD_INTERVAL (výchozí: 30s)
  • Regenerace CRL — konfigurovatelné per CA v nastavení CA (plný a delta interval nezávisle)

Související