Projektowanie bezpiecznej architektury oznacza strukturyzowanie systemów z wbudowanymi zasadami bezpieczeństwa — obrona warstwowa, najmniejsza uprawnienia, zero trust, bezpieczne ustawienia domyślne i wiele innych. Te zasady kierują budowaniem systemów, które są odporne na ataki z projektu.
Podstawowe zasady bezpieczeństwa
DEFENSE IN DEPTH → multiple LAYERS of security (network, app, data, etc.) → no single
point of failure; if one layer fails, others still protect
LEAST PRIVILEGE → every component/user gets the MINIMUM access needed → limits blast radius
ZERO TRUST → "never trust, always verify" → don't trust based on network location;
authenticate/authorize every request (vs old "trusted internal network" model)
SECURE DEFAULTS → secure out of the box (closed by default, opt-in to open)
FAIL SECURELY → on failure, default to a SAFE/denied state (not open)
