Istio 보안
Istio 보안 (Security)
마이크로서비스가 많아지면 서비스 사이 통신에 "누가 진짜 그 서비스인지"를 믿을 수 있어야 해요. 내부 공격자든 외부 공격자든, 데이터·엔드포인트·통신·플랫폼을 노리는 위협을 막아야 하는데 Istio 보안이 그 역할을 해요.
Istio는 세 축으로 보안을 구성해요.
- 인증(Authentication): 주체가 누구인지 검증해요. 서비스 간 인증은 PeerAuthentication으로, 최종 사용자 인증은 RequestAuthentication으로 다뤄요. 서비스 간 인증은 mutual TLS(mTLS)를 전송 계층에서 처리하는데, 서비스 코드를 바꾸지 않아도 켤 수 있는 게 특징이에요.
- 인가(Authorization): 인증된 주체가 특정 작업을 할 권한이 있는지 판단해요. AuthorizationPolicy로 HTTP·TCP 트래픽, JWT 토큰 등에 접근 제어를 걸 수 있어요.
- 신뢰와 인증서 관리(Trust & certificate): 각 워크로드에 x.509 인증서를 발급하고 자동으로 회전해요. Istio CA(Certificate Authority)가 이 과정을 관리하고, 자체 CA를 연결해 커스텀 인증서 체계를 쓸 수도 있어요.
트래픽이 암호화되고 주체가 검증되면, 그 다음 단계가 "그 주체가 무엇을 해도 되는가"예요. 그래서 인증과 인가를 함께 구성하는 것이 실무에서 중요해요. mTLS만으로는 "이 서비스가 다른 서비스의 특정 API를 호출해도 되는지"는 알 수 없고, 그 판단은 인가 정책이 담당해요.
더 알아보기
- 인증 정책으로 mTLS와 JWT 인증을 잡는 법: Authentication Policy
- 접근 제어 예시: Authorization
- Istio CA에 인증서 플러그인: Plug in CA Certificates