Ú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¶
Upozornění na novou verzi¶
Když existuje novější release, administrátoři uvidí v konzoli banner (GET /api/v1/system/updates/check, oprávnění system:read). Backend se ptá licenčního serveru MazeVault (LICENSE_SERVER_URL) minutu po startu a pak denně (nebo po Re-check) a potřebuje registrovanou licenci; požadavek obsahuje jen identitu licence a instance a aktuální verzi. Banner odkazuje na changelog daného releasu v dokumentaci MazeVault, která vyžaduje přihlášení. Vývojové a předprodukční buildy (dev, staging-…) ho nezobrazují nikdy. Bez licence nebo spojení s licenčním serverem banner zůstane skrytý.
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)¶
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í¶
- Zálohování a obnova — Zálohovací postupy před údržbou
- Kontroly stavu — Ověření po údržbě
- Škálování — Plánování kapacity