-
Egress Gateway에서 TLS를 종료할 때 인증서는 어떻게 동작할까?카테고리 없음 2025. 3. 13. 00:15728x90
Q. 앱과 Egress Gateway 사이에서의 인증서와 Egress Gateway와 외부서버에서 사용되는 인증서는 다를까?
👉 예, 앱과 Egress Gateway 사이에서 사용되는 인증서와 Egress Gateway와 외부 서버 간의 인증서는 다릅니다.
👉 Egress Gateway가 **TLS를 중간에서 해석(TLS Termination)**하기 때문에, TLS가 두 개의 개별 세션으로 나뉘게 됩니다.1️⃣ TLS 세션이 나뉘는 구조
📌 트래픽 흐름 (SIMPLE 모드)
[앱] --(TLS: Istio 인증서)--> [Egress Gateway] --(TLS: 외부 서버 인증서)--> [외부 서버]연결 구간 TLS 종료 여부 사용되는 인증서 앱 → Egress Gateway ✅ TLS 종료 Istio에서 발급한 mTLS 인증서 Egress Gateway → 외부 서버 ✅ TLS 새로 설정 외부 서버의 공개 인증서 2️⃣ 세션별 인증서 상세 설명
✅ 1. 앱 → Egress Gateway (mTLS)
- Istio 서비스 메시 내부에서는 **mTLS(Mutual TLS, 양방향 TLS 인증)**를 기본적으로 사용할 수 있음.
- 즉, 앱(Pod)과 Egress Gateway 간의 통신에서는 Istio의 자체 CA(Certificate Authority)에서 발급한 인증서가 사용됨.
- Istio의 자동 mTLS 기능을 사용하면 내부 Pod들은 자동으로 mTLS 인증서를 사용하여 Egress Gateway와 통신함.
📌 DestinationRule 설정 (Egress Gateway에서 내부 서비스와 mTLS 사용)
apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: egressgateway spec: host: istio-egressgateway.istio-system.svc.cluster.local trafficPolicy: tls: mode: ISTIO_MUTUAL # 앱(Pod)과 Egress Gateway 간 mTLS 적용✅ 이 설정을 사용하면:
- 앱 → Egress Gateway 간 TLS는 Istio의 자체 인증서를 사용하여 mTLS로 암호화됨.
✅ 2. Egress Gateway → 외부 서버 (외부 CA 인증서)
- Egress Gateway가 TLS를 해석한 후, 외부 서버에 다시 새로운 TLS 연결을 설정함.
- 이때 외부 서버의 공개 인증서(예: Let's Encrypt, DigiCert, GlobalSign 등)가 사용됨.
- 일반적인 웹 서버(TLS를 제공하는 API 서버)는 자신의 공인 인증 기관(CA)에서 발급한 인증서를 제공하므로, Egress Gateway는 해당 인증서를 사용하여 TLS 세션을 다시 맺음.
📌 DestinationRule 설정 (Egress Gateway → 외부 서버의 TLS 설정)
apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: egress-tls spec: host: api.external-service.com trafficPolicy: tls: mode: SIMPLE # 외부 서버와 새로운 TLS 세션 생성✅ 이 설정을 사용하면:
- Egress Gateway → 외부 서버 간 TLS는 외부 서버의 공인 인증서를 사용하여 설정됨.
3️⃣ 인증서 비교 (Istio mTLS vs 외부 서버 TLS)
연결 구간사용 인증서인증 기관 (CA)특징
앱 → Egress Gateway Istio mTLS 인증서 Istio 자체 CA 내부 트래픽 암호화 및 보안 강화 Egress Gateway → 외부 서버 외부 서버의 TLS 인증서 Let's Encrypt, DigiCert 등 공인된 인증 기관이 발급한 인증서 ✅ 즉, Egress Gateway는 중간에서 TLS를 해석하고, 두 개의 별도 TLS 세션을 유지하면서 각각 다른 인증서를 사용함.
- 앱 → Egress Gateway 간에는 Istio가 발급한 내부 mTLS 인증서 사용
- Egress Gateway → 외부 서버 간에는 외부 서버가 발급한 공인된 TLS 인증서 사용
🚀 결론
💡 앱과 Egress Gateway, 그리고 Egress Gateway와 외부 서버 간의 TLS 세션은 별개이며, 각각 다른 인증서를 사용한다.
- 앱 → Egress Gateway: Istio 자체 CA에서 발급한 mTLS 인증서 사용.
- Egress Gateway → 외부 서버: 외부 서버의 공인 인증서를 사용하여 새로운 TLS 세션 생성.
🚀 즉, Egress Gateway에서 TLS를 해석하면, Istio 내부에서 사용하는 인증서와 외부 서버에서 사용하는 인증서는 완전히 다르게 관리됨! 🚀
728x90