title: "Istio overview: Security"
description: |
	대표적 Service Mesh 제품인 Istio에 대한 overview로 Kubernetes를 배경으로 설명한다.
	Istio overview: Architecture, Traffic Management, Istio overview: Observability 에 이어 Security feature에 대해 다룬다(이후 Istio overview: Extensibility, Etc. 로 이어 진다).
cleanUrl: /sw-engineer/istio-overview-3
ogImage: "<https://anyflower.notion.site/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F7570d2fc-66b1-4e23-bb3c-ff7b56842b0d%2F57b06503-a2cc-4283-b15d-2a54efce6caf%2FUntitled.png?table=block&id=1c77bbd9-5831-4317-9e03-66ebe39db8d1&spaceId=7570d2fc-66b1-4e23-bb3c-ff7b56842b0d&width=2000&userId=&cache=v2>"
floatFirstTOC: right

Istio의 사용자, 서비스 보안 구조. Zero Trust Architecture 에서 자세히 논한다.

Istio의 사용자, 서비스 보안 구조. Zero Trust Architecture 에서 자세히 논한다.

Introduction

대표적 Service Mesh 제품인 Istio에 대한 overview로 Kubernetes를 배경으로 설명한다.

Istio overview: Architecture, Traffic Management, Istio overview: Observability 에 이어 Security feature에 대해 다룬다(이후 Istio overview: Extensibility, Etc. 로 이어 진다).

참조한 문서는 글 내부 및 References 에 달았다.

Summary

Zero Trust Architecture

Security

Istio는 ZTA(Zero Trust Architecture)를 추구하는 것으로 보이는데, 실제 위 공식 문서는 Zero Trust network를 언급한다. 이는 Istio가 multi clusters 및 외부 host가 포함된 환경도 지원함을 고려하면 충분히 이해되는 부분이다(이들 환경에서는 traffic이 보호되지 않거나 보안 정책이 상이한 구간을 지나기 마련이다).

<aside> 💡 ZTA; Zero Trust Architecture란 (하기 링크 요약)

Zero trust security model

경계 없는 보안(perimeterless security)로도 불리는 ZTA의 주요 개념은 "신뢰하지 않고 항상 확인"이다. 이는 위치에 관계 없이 resource에 접근하는 user와 device가 기본적으로 신뢰 불가하다는 뜻으로, LAN, VPN 등 전통적 보안 요소가 클라우드 서비스, 인프라, IoT 서비스 등의 현대 network 환경에서는 부족하다는 인식에 근간한다.

*ZTA는 기본적으로 user와 device 모두에 대한 인증과 최소 권한 부여를 요구하여, 전체 구현에는 향상된 ID 거버넌스 및 정책 기반 액세스 제어, 마이크로 세분화, **오버레이 네트워크(overlay network)*가 포함된다.

</aside>

위의 ZTA 설명 중 오버레이 네트워크가 특히 눈에 띄는데, Service Mesh, 즉 Istio 자체가 일종의 오버레이 네트워크이기 때문이다.

맨 앞의 그림은 이러한 관점에서의 Istio의 보안 features 전체의 요약으로, Istio의 보안 서비스는 사용자와 서비스 관점 보안으로 나눠 볼 수 있어, 각각 좌측과 우측에 해당한다. 양자 공통으로 인증(AuthN; AutheNtication), 인가(AuthZ; AuthoriZation)를 제공하는데, 서비스 관점 보안에서는 mTLS을 통해, 기밀성, 무결성, 부인방지가 추가된다. 사용자 관점에서 이는 불필요한데, 일반적으로 public CA(Certificate Authority) 관리 하에 TLS가 동작하기 때문이다.

참고로, AAA(Authentication, Authorization, Audit) 중 Audit은 아래 설명할 AuthorizationPolicyaction 에서 AUDIT (logging)으로 동작한다. 이외에도 Istio overview: Observability에서 논한 (Access) Logs는 Audit을 위한 장치로 볼 수 있다.

사용자 관점 보안 via OIDC, RequestAuthentication