title: "Zero Trust Architecture via Istio"
description: "사내 보안 전문가 과정 중 작성한 발표 자료의 일부로서, Zero Trust Architecture(ZTA) 및 Kubernetes 환경에서의 ZTA 관점에서 바라본 Istio에 관한 정리이다. 참고로 NIST SP 800-207은 미국 국립표준기술연구소가 작성한 Zero Trust Architecture의 공식 표준 문서로서, 이를 가장 많이 참조하였다."
cleanUrl: /sw-engineer/zta-via-istio
ogImage: ""
floatFirstTOC: right
graph LR
subgraph NIST["NIST SP 800-207 ZTA"]
direction LR
PE["Policy Engine"]
PA["Policy Administrator"]
PEP_N["PEP"]
PKI_N["PKI / ID Management"]
Logs_N["Activity Logs"]
end
subgraph Istio["Istio" / OPA]
direction LR
OPA["OPA"]
Istiod["Istio: istiod"]
Envoy["Istio: istio-proxy / Waypoint"]
SPIFFE["Istio: istiod<br/>(SPIFFE, Citadel)"]
Logs_I["Istio: Access Log"]
end
PE -.-> OPA
PA -.-> Istiod
PEP_N -.-> Envoy
PKI_N -.-> SPIFFE
Logs_N -.-> Logs_I
style NIST fill:#1e293b,stroke:#94a3b8,color:#ffffff
style Istio fill:#1e293b,stroke:#60a5fa,color:#ffffff
style PE fill:#0f172a,stroke:#94a3b8,color:#ffffff
style PA fill:#0f172a,stroke:#94a3b8,color:#ffffff
style PEP_N fill:#0f172a,stroke:#94a3b8,color:#ffffff
style PKI_N fill:#0f172a,stroke:#94a3b8,color:#ffffff
style Logs_N fill:#0f172a,stroke:#94a3b8,color:#ffffff
style OPA fill:#1e293b,stroke:#fbbf24,color:#fbbf24
style Istiod fill:#1e293b,stroke:#60a5fa,color:#60a5fa
style Envoy fill:#1e293b,stroke:#34d399,color:#34d399
style SPIFFE fill:#1e293b,stroke:#f472b6,color:#f472b6
style Logs_I fill:#1e293b,stroke:#a78bfa,color:#a78bfa
사내 보안 전문가 과정 중 작성한 발표 자료의 일부로서, Zero Trust Architecture(ZTA) 및 Kubernetes 환경에서의 ZTA 관점에서 바라본 Istio에 관한 정리이다. 참고로 NIST SP 800-207은 미국 국립표준기술연구소가 작성한 Zero Trust Architecture의 공식 표준 문서로서, 이를 가장 많이 참조하였다. Istio overview: Security 에서 역시 ZTA를 언급함과 동시에 여기서 논하는 Istio 보안 features 상세를 다뤘다.
ZTA는 “절대 신뢰하지 않고, 항상 검증한다(Never trust, always verify)”는 원칙에 기반한 새로운 보안 패러다임이다. 방화벽, IDS/IPS, WAF를 필두로 하는 기존의 경계 기반(Perimeter based) 보안 모델이 내부 네트워크를 신뢰하는 것과 달리, ZTA는 위치에 관계없이 모든 사용자, 장치, 그리고 서비스와 트래픽을 잠재적 위협으로 간주하고, 매 순간 인증 및 권한 확인 절차를 거치도록 요구한다. 경계 보안 모델이 침입을 막는 것'에 집중했다면, ZTA는 침입을 가정하고 확산을 막는 것'에 집중한다. 아래는 간단한 경계 기반 보안 모델과 ZTA 간 비교이다.
| 구분 | 경계 기반 보안 모델 | ZTA |
|---|---|---|
| 신뢰 기준 | 내부 네트워크 위치 | 사용자, 디바이스, 서비스 각각의 신원 검증 |
| 보안 범위 | 네트워크 경계 중심 | 데이터, 서비스, 워크로드 등 개별 리소스 중심 |
| 접근 제어 | 경계 지점에서의 일회성 인증 | 내/외부 무관, 매 요청마다 검증 및 최소 권한 부여 |
| 위협 대응 | 외부 침입 차단에 집중 | 내부 침투 가정, 측면 이동 차단 |
<aside> 💡
ZTA 부각과 현황 2009년 Operation Aurora 해킹, 2015년 OPM(미국 인사관리처) 해킹, 2020년 SolarWinds 공급망 공격 등은 기존 경계 기반 모델의 한계를 보여줌과 동시에 ZTA의 요구를 부각시킨 사례로, 이들 모두 공통적으로 경계 기반 모델이 다룰 수 없는 측면 이동(lateral movement; 내부 침투 후 정상 계정·연결을 이용해 다른 시스템으로 확산하는 공격 기법**)**을 사용했다.
이후 미국에서는 연방정부 차원의 행정명령을 통해 ZTA는 필수가 되었고, NIST SP 800-207 “Zero Trust Architecture” 표준 문서를 발표하였으며, CISA는 Zero Trust Maturity Model 2.0을 제정하였다. 우리나라의 경우 과학기술정보통신부와 한국인터넷진흥원(KISA)가 "제로 트러스트 가이드라인 2.0"을 발표했으나, 미국처럼 정부 차원에서의 의무화 등은 현재 없어 보인다.
</aside>
또한, 경계 기반 보안 모델 뿐 아니라 Kubernetes 역시 측면 이동 위협에 취약한 것은 마찬가지이다.
NetworkPolicy는 IP 주소와 포트 기반 제어만 제공한다. 예를 들어 "Service A는 Service B의 80 포트에 접근 가능"이라는 규칙은 만들 수 있지만, "Service A는 Service B의 /api/users 엔드포인트에 GET 요청만 가능"과 같은 애플리케이션 계층 수준의 세밀한 제어는 불가능하다.아래는 NIST SP 800-207 중 ZTA의 핵심을 다루는 Tenets of Zero Trust, Logical Components of Zero Trust Architecture에 대한, Kubernetes / 마이크로서비스 환경을 주로 고려한 요약이다.