Beveiliging
Principes
- Least privilege — elke service heeft alleen de rechten die nodig zijn
- Defense in depth — meerdere lagen (Caddy TLS, Keycloak auth, RBAC, internal secrets)
- No secrets in code — alle gevoelige waarden via environment variables of GitHub Secrets
- Audit logging — alle admin-acties worden gelogd
Lagen
Internet → Caddy (TLS termination, rate limiting)
→ Keycloak (authenticatie + autorisatie)
→ applicatie RBAC (rollen per route)
→ internal secret (API-communicatie)
→ database (eigen users per service)
HTTPS
Caddy regelt automatisch Let's Encrypt certificaten voor alle subdomeinen. HTTP wordt redirect naar HTTPS.
Headers
Caddy voegt beveiligingsheaders toe:
Strict-Transport-SecurityX-Content-Type-OptionsX-Frame-OptionsReferrer-Policy