Formálně definované hardening požadavky pro VM prostředí kde běží EP21 Backup Agent: dedikovaný systémový uživatel ep21-backup, file system oprávnění pro backup volumes a secrets, auditd pravidla pro Docker socket operace, a golden image checklist. Navazuje na ADR-0008 a ADR-0011.
EP21 Backup Agent (ADR-0002, ADR-0007) běží jako Docker kontejner s přístupem k host PostgreSQL a restic remote. ADR-0011 rozhodl, že Docker socket se pro discovery nepoužívá — backup kontejner přistupuje pouze k PostgreSQL a restic.
Přesto je potřeba formálně definovat hardening baseline pro VM prostředí:
Pod jakým uživatelem kontejner běží a jaká má oprávnění
File system oprávnění pro backup volumes a secrets
Audit trail operací prováděných backup agentem
Checklist pro golden image deployment
Bez těchto pravidel je golden image deployment (ADR-0002) nekompletní z bezpečnostního hlediska.
Rozhodnutí
✓ Chosen: Přijmout definované hardening guidelines pokrývající: systémového uživatele ep21-backup, file system oprávnění, auditd záznamy a golden image checklist
1. Systémový uživatel
Vytvořit dedikovaného uživatele ep21-backup na hostu:
Bez login shellu (/usr/sbin/nologin)
Bez sudo oprávnění
Člen skupiny docker pouze pokud je Docker socket potřeba (dle ADR-0011 není pro EP21 produkci)
Docker Compose a systemd unit spouštěny pod tímto uživatelem
Host PostgreSQL (port 5432 nebo konfigurovaný port)
Restic remote (Contabo S3 endpoint — HTTPS 443)
Odchozí provoz na ostatní adresy blokovat přes iptables/nftables whitelist nebo Docker network policy. Implementace závisí na konkrétní VM síťové topologii.
5. Golden image checklist
Před nasazením backup agenta na nový VM musí být splněno:
[ ] ep21-backup uživatel existuje (bez shell, bez sudo)
[ ] DB_BKUP_ROOT adresářová struktura má správná oprávnění
[ ] backup.env a RESTIC_PASSWORD_FILE mají mode 400, owner ep21-backup
[ ] auditd pravidla aktivní a testována (auditctl -l)
[ ] Smoke test backup agenta proběhl úspěšně (backup + verify)
[ ] Síťová pravidla aplikována a ověřena
Důsledky
Pozitivní:
Formálně definovaná bezpečnostní baseline — každý VM s backup agentem má stejnou hardening úroveň
Golden image checklist jako auditovatelný artefakt deployment procesu
Audit trail umožňuje detekci neobvyklého přístupu k secrets a Docker socketu
Menší attack surface — backup uživatel nemá zbytečná oprávnění
Negativní:
Přidává kroky do golden image přípravy (jednorázový overhead)
Audit logy přibývají — zahrnout do log retention politiky
Síťové restrikce mohou komplikovat debugging (připojit se ad-hoc k restic remote)
Koordinace s ostatními ADR
ADR-0011 (explicit whitelist): Docker socket se nepoužívá → auditd pravidlo pro docker.sock je volitelné
ADR-0008 (container runtime): Docker Compose konfigurace musí reflektovat ep21-backup uživatele
ADR-0002 (agent model): golden image checklist je součástí deployment procesu definovaného v ADR-0002
Changelog
Version
Date
Author
Note
0.2.0
2026-04-10
david.sorf + claude-sonnet-4-6
Draft rozšířen: ep21-backup uživatel, file system tabulka oprávnění, auditd pravidla, síťové restrikce, golden image checklist. Čeká na design review a přijetí.
0.1.0
2026-04-09
david.sorf + claude-sonnet-4-6
Initial draft. Vytvořeno jako tracked follow-up z ADR-0008 § Follow-up. Definuje oblasti k řešení a navrhované guidelines, formální rozhodnutí zatím nebylo přijato.