Learning path¶
A guided way to study this repo — each lab builds on the last and shows the payoff before asking you to install more. Defensive/infra only.
Why this matters (금융 망분리 완화): 이 스택이 어떤 규제 맥락에서 왜 중요한지는 금융 망분리 완화(MLS) ↔ 통제 매핑 참고 — FSC 「금융분야 망분리 개선 로드맵」(2024-08-13)의 다층보안(MLS) 보상통제에 각 통제를 1:1 매핑하고 NIST 800-207·검증 항목까지 연결한다. (교육·포트폴리오 목적 — 법률/금융 자문도, 공식 FSC 컴플라이언스 매핑도 아니다. 규제 세부는 1차 출처 대조 필요.)
정량 평가: 검증가능성 커버리지 분석(MLS 보상통제의 82.5%가 코드로 검증가능 — 갭 공개) · 감사 적용: 감사증거 패키지 예시(1통제를 기준·산출물· 증거·재현명령까지).
인가 모델 포지셔닝: RBAC + ABAC 하이브리드 · policy-as-code · 지속평가 — 이 스택이 인가 지형(RBAC/ABAC/ReBAC/PaC/지속평가)의 어디에 정렬되는지, ReBAC 갭과 AI에이전트/NHI 확장까지.
클라우드로 가면 (비용 포함): 로컬 → AWS/EKS 경로 + 가격대별 실습 가이드 — 각 통제의 AWS 등가물(Cedar→Verified Permissions, etcd암호화→KMS 등) + 무료(로컬)부터 Tier 0~3 비용 사다리와 teardown 체크리스트. 발표용 자료:
presentation/.
| Lab | You'll learn | Needs | Read time |
|---|---|---|---|
| 0 — Authorization as code | Cedar policies + how forbid/limits/roles work, unit-tested |
Python only | 5 min |
| 1 — Shift-left scanning | checkov on IaC + K8s, and honest suppression triage | Python only | 5 min |
| 2 — Network + app authz | one request through Cilium L3 → L7 → Cedar; break each and watch it react | Docker+kind | 20 min |
| 3 — Runtime (eBPF) | Tetragon detects + SIGKILLs a shell in a popped container | Docker+kind | 10 min |
| 4 — Identity (B7) | who gets to be web/api: least-priv SAs, label↔SA admission, mutual auth — and the honest residual |
Docker+kind | 15 min |
| 5 — Data protection | the data itself: WireGuard in-transit, Secret encryption at-rest, PDP minimization in-use | Docker+kind | 15 min |
Read time = reading the concept page. Rebuilding the control from an empty file is much longer — see the reimplementation track (e.g. M0 ~3–6h, M2 ~30–45m).
The idea in one picture¶
Four independent layers guard the same asset (the api). Each stops an
attack the others can't see:
attacker / bad request
│ forges its pod identity ....... admission (label↔SA) + mutual auth → denied
│ wrong pod identity ............ Cilium L3 → dropped (no route)
│ disallowed HTTP path/method ... Cilium L7 → 403 (Envoy)
│ not the owner / over limit .... Cedar (app) → 403 (PDP decision)
│ tries to exfiltrate outbound .. Cilium egress → dropped
│ sniffs the wire / reads etcd .. WireGuard + Secret-at-rest encryption → ciphertext
▼ pops the container, runs a shell Tetragon → SIGKILL (eBPF)
scripts/verify.{sh,ps1} proves the enforcement live. Start at Lab 0 — it needs
nothing but Python and takes five minutes.