Specifika bezpečnosti a logování v serverless
Serverless computing (FaaS a spravované backendové služby) mění bezpečnostní model: infrastrukturu vlastní poskytovatel, izolace runtime je jemnozrnná a životní cyklus funkcí je efemérní. Ochrana proto směřuje na identitu a přístup (IAM), integritu artefaktů, řízení datových toků a observabilitu bez pevného hostitele. Logování musí být strukturované, korelované napříč událostmi a citlivé k nákladům, protože objem logů roste s počtem vyvolání.
Threat model serverless aplikací
- Napadení dodavatelského řetězce: škodlivé knihovny, build kroky a kontejnerové báze pro runtime.
- Chybná konfigurace IAM: nadměrná oprávnění funkcí, otevřené topic/queue/subscription.
- Injekce přes události: payloady z API Gateway, webhooků, front a datových proudů.
- Úniky tajemství: environment proměnné, špatná práce s Secrets Manager, debug logy.
- Laterální pohyb: mezi funkcemi a spravovanými službami přes role a tokeny metadat.
- Více-tenantní rizika: izolace na úrovni poskytovatele (hypervisor, microVM), noisy neighbor.
Identity a přístup: princip nejmenších oprávnění
- Role-per-function: každá funkce má vlastní IAM roli se scoped oprávněními na konkrétní zdroje a akce.
- Bezpečné volání mezi službami: preferujte identity-based autorizaci (signované požadavky, workload identity) před sdílenými tokeny.
- Krátkodobé přihlašovací údaje: federace a výdej dočasných tokenů; zákaz statických klíčů v kódu.
- Oddělení účtů/projektů: prod a non-prod v samostatných účtech s centrální správou zásad.
Správa tajemství a kryptografie
- Secrets Manager/KMS: tajemství nikdy nenechávejte v env proměnných v čitelné podobě; načítejte on-demand s krátkou cache.
- Rotace: automatická rotace klíčů a hesel; verze tajemství s kontrolovaným rolloutem.
- Šifrování in transit (TLS/mTLS) a at rest (spravované klíče, případně zákaznické KMS s key policy).
- Citlivá data v logách: implementujte redaction/masking na úrovni loggeru a gatewaye.
Bezpečné hranice: API brána, fronty a eventy
- API Gateway: WAF, rate limiting, mTLS pro privátní API, validace schémat (OpenAPI/JSON Schema) pro payload.
- Event-driven: autorizace na topic/queue úrovni; dead-letter queue (DLQ) a retry policy bez nekonečných smyček.
- Datové proudy: partition-level ACL, sledování lagů, idempotentní consumer.
Síť a egress kontrola
- Privátní konektivita: privátní endpointy do databází a tajemství, žádný veřejný internet, pokud to není nutné.
- Egress proxy: výstupní kontrola (DLP, URL allowlist), egress-only pravidla, centralizovaný audit.
- VPC integrace: pozor na latenci cold-startů a limity socketů; definujte bezpečné SG/NSG pravidla.
Integrita buildů a artefaktů
- Reprodukovatelné buildy a SBOM (seznam závislostí), signing deploy balíčků/kontejnerů a enforcement na straně platformy.
- Policy as Code: OPA/Rego či nativní politiky pro validaci infrastructure-as-code a konfigurací funkcí (timeout, paměť, egress, role).
Runtime bezpečnost a hardening
- Timeouty a paměť: nastavte konzervativní limity; zabraňují DoS z nekonečných smyček a nadměrných alokací.
- Neuložená data: vyhněte se perzistenci mimo
/tmp; vše citlivé ukládejte do spravovaných úložišť s šifrováním. - Bezpečné parsování: velikostní limity requestů, streaming místo buffer-all, knihovny odolné vůči zip-bomb/xxe.
Idempotence, obnovitelnost a odolnost
- Idempotentní handlery: klíče deduplikace, conditional writes, kontrola pořadí událostí.
- DLQ a parkování: separace chyb obchodní logiky vs. dočasných poruch; metriky DLQ jako spouštěč incidentu.
- Backoff a jitter: exponenciální zpožďování, aby se neprohlubovalo přetížení.
Observabilita: logy, metriky a trasování
- Strukturované logy: JSON s poli
trace_id,span_id,correlation_id,tenant,pii_redacted,severity. - Distribuované trasování: propagace kontextu přes API Gateway/queue hlavičky (W3C Trace Context), serverless spans pro cold/warm starty.
- Metriky: p50/p95/p99 latence, chybovost, počty vyvolání, throttling, využití paměti/CPU přepočtené poskytovatelem.
- Log sampling: adaptivní vzorkování při špičkách; error-first a tail-based přístup pro anomálie.
Strukturované logování: doporučené schéma
| Pole | Popis | Poznámka |
|---|---|---|
| timestamp | UTC ISO8601 s milisekundami | Synchronizace s trasováním |
| severity | DEBUG/INFO/WARN/ERROR | Na úrovni handleru |
| function | Název funkce/verze | Zdroj události |
| request_id | ID vyvolání (provider + vlastní) | Korelace s metrikami |
| trace_id/span_id | W3C Trace Context | End-to-end sledování |
| tenant | Identifikace zákazníka | Multi-tenant filtrace |
| pii_redacted | true/false | Pro audit maskování |
| error.code/message | Strojově čitelné chybové kódy | Bez PII |
Řízení nákladů na logy a telemetrii
- Víceúrovňové cíle: krátká retence v „hot“ úložišti, dlouhodobá v levném objektovém.
- Filtrace u zdroje: potlačení DEBUG v produkci s možností on-demand zvýšení přes feature flag.
- Log routing: kritické události do SIEM, zbytek do data lake; metrics from logs pro agregované přehledy.
Detekce hrozeb a reakce v serverless
- Behaviorální pravidla: anomálie v IAM voláních, neobvyklé egress destinace, nárůst 4xx/5xx.
- Signály z platformy: throttling, časté cold-starty (indikace šumu/útoků), zvednuté limity.
- Automatizovaná reakce: quarantine verze funkce (feature flag), deny egress, rotace tajemství, povinný step-up pro správcovské akce.
Soukromí a compliance
- PII governance: minimalizace, pseudonymizace, field-level šifrování, záznam účelů zpracování.
- Data residency: volba regionů a zákaznických klíčů (BYOK); kontrola záloh a exportů logů.
- WORM/immutability: neměnitelné úložiště pro audity a forenzní logy.
Testování bezpečnosti v event-driven toku
- Contract testy vstupních payloadů a schémat; generativní testy na hraniční hodnoty.
- Chaos a fault injection: výpadky závislostí (tajemství, DB, egress), timeouts, duplikace událostí.
- Security scanning: SAST/DAST, SCA, politiky IaC, kontrola veřejných zdrojů.
Bezpečný design schránek a databází
- Row/column-level security pro multi-tenant model; prepared statements a parameterized queries.
- Limitace připojení: serverless connection pooling (proxy/sidecar služby) s TLS a identitou.
- TTL a retence: automatické mazání dočasných dat (tokens, cache záznamy).
Praktická matice rizik a kontrol
| Riziko | Příklad | Kontrola |
|---|---|---|
| Nadměrná oprávnění | Funkce může číst všechna tajemství | Role-per-function, ABAC, access analyzer |
| Únik PII v logách | Logování celého request body | Redakce/whitelisting polí, validace velikosti |
| Replay událostí | Duplicitní zpracování webhooku | Idempotence, deduplikace klíči, nonce s expirací |
| Laterální pohyb | Kompro role a přístup k DB | Segmentace účtů, egress allowlist, just-in-time přístup |
| Supply-chain | Malware v závislosti | SBOM, podpis artefaktů, povolené repozitáře |
Provozní SLO a metriky bezpečnosti
- Bezpečnost: doba rotace tajemství, počet zamítnutých neautorizovaných volání, pokrytí politikami.
- Observabilita: procento korelovaných požadavků (trace coverage), latence ingestu logů, p99 doba vyšetření.
- Spolehlivost: chybovost handlerů, DLQ rate, cold-start p95 a jeho dopad na SLO.
Check-list bezpečnosti a logování v serverless
- Má každá funkce vlastní IAM roli s minimem oprávnění?
- Jsou tajemství načítána z trezoru a automaticky rotována?
- Validují se payload schémata na hraně (API/queue) a jsou omezeny velikosti?
- Je zapnuta mTLS/privátní konektivita ke kritickým službám?
- Jsou logy strukturované, s trace/correlation ID a redakcí PII?
- Existuje DLQ, retry policy s backoffem a idempotence?
- Běží Policy as Code gate v CI/CD a podpis artefaktů?
- Máte definovaná SLO a alerty (chybovost, latence, throttling, DLQ nárůst)?
- Je zajištěno WORM u auditních logů a řízení retence?
Závěr: Bezpečnost jako vlastnost architektury, logy jako produkt
V serverless světě nelze spoléhat na tradiční perimetr ani per-host agenty. Ochrana je výsledkem identitně řízeného návrhu, bezpečných hranic událostí, důsledné správy tajemství a prvotřídní observability. Logy nejsou odpad, ale produkt – musí být strukturované, korelované, nákladově řízené a připravené na forenzní analýzu. Tím vzniká architektura, která je pružná, auditovatelná a odolná proti moderním hrozbám.