안전한 아키텍처를 설계한다는 것은 보안 원칙을 내재화하여 시스템을 구조화하는 것을 의미합니다 — 심층 방어, least privilege, zero trust, secure defaults 등입니다. 이 원칙들은 설계상 공격에 탄력적인 시스템 구축을 안내합니다.
핵심 보안 원칙
DEFENSE IN DEPTH → 여러 보안 LAYER(network, 앱, 데이터 등) → 단일 실패 지점 없음;
한 계층이 실패해도 다른 계층이 보호
LEAST PRIVILEGE → 모든 구성요소/사용자가 필요한 MINIMUM 접근을 받음 → blast radius 제한
ZERO TRUST → "절대 신뢰하지 말고, 항상 검증하라" → network 위치에 기반해 신뢰하지 마라;
모든 요청을 인증/권한 부여(기존 "신뢰된 내부 network" 모델 대비)
SECURE DEFAULTS → 기본적으로 안전(기본 폐쇄, 명시적 개방)
FAIL SECURELY → 실패 시 SAFE/거부 상태를 기본값으로(개방 아님)
