ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Egress Gateway에서 TLS를 종료할 때 인증서는 어떻게 동작할까?
    카테고리 없음 2025. 3. 13. 00:15
    728x90

     

    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 세션은 별개이며, 각각 다른 인증서를 사용한다.

    1. 앱 → Egress Gateway: Istio 자체 CA에서 발급한 mTLS 인증서 사용.
    2. Egress Gateway → 외부 서버: 외부 서버의 공인 인증서를 사용하여 새로운 TLS 세션 생성.

    🚀 즉, Egress Gateway에서 TLS를 해석하면, Istio 내부에서 사용하는 인증서와 외부 서버에서 사용하는 인증서는 완전히 다르게 관리됨! 🚀

    728x90
Designed by Tistory.