EKS에 SPIRE mTLS 도입(ALB 호환) 문의

안녕하세요!

다름이 아니라 현재 EKS 환경에서 파드간 통신 보안 강화를 위해 SPIFFE/SPIRE 도입을 검토중에 있습니다. 해당 오픈소스 프로젝트가 많이 알려져있지도 않고 생태계가 작아서 트러블슈팅이 쉽지 않네요.

환경

  • EKS 1.33 / ARM64 노드 (t4g.medium)

  • Go 기반 마이크로서비스

  • ALB Ingress Controller

  • SPIRE Server 0.19.x

현재 상황 : 서비스 코드에 go-spiffe/v2 라이브러리로 Workload API 통합해서 mTLS 활성화했는데, ALB와 연동하는 부분에서 막혔습니다.

서비스가 HTTPS(mTLS)로 떠있으니까 ALB Target Group이 health check 실패하더라구요. ALB는 백엔드 mTLS를 지원 안한다는걸 뒤늦게 알았습니다…

질문

  1. ALB 환경에서 SPIRE mTLS 적용하신 분 계신가요?

  2. 외부 트래픽(ALB)은 일반 TLS, 내부 서비스간만 mTLS 적용하는 패턴을 구현하려면 어떤 방식이 좋을까요?

    • 듀얼 포트 (8080: HTTP for ALB, 8443: mTLS for internal)?

    • Envoy 사이드카?

    • 아니면 NGINX Ingress로 갈아타기?

경험 있으신 분들 조언주시면 감사하겠습니다..!

4 Likes

Bro분들의 경험과 노하우가 공유되기를 기대합니다. :slight_smile:

1 Like

안녕하세요
SPIRE은 사용안해봐서 잘모르겠지만 혹시 도움이 될까 싶어서 작성했습니다..

ALB 사용 하시려면 위에 작성해주신 대로 헬스체크용으로 듀얼포트 사용해야 트래픽 전달될 것 같고,
TLS 종료도 ALB에서 처리 후에 다시 암호화 해야될거 같습니다

개인적으로는 istio에 제로트러스트 적용해보고 있는데,
Client —(TLS/mTLS 패스스루)—NLB(저는 Cloudflare tunnel + HAPROXY)—> Ingress/Gateway(L7 라우팅·정책·mTLS 종단)
이런 느낌으로, 앞단에는 그냥 TCP 패스스루만 하게 구성했습니다.

(앞단에 WAF 같은거 없고, ALB 기능이 필수 아니면) NLB 사용하는 방식도 구조가 단순해질 거 같습니다

2 Likes

현재 말씀해주신 내용대로 듀얼포트 적용한 상황입니다! SPIRE 오픈소스 담당자에게 메일을 보내봤는데 현재 제 상황에선 듀얼포트가 가장 간단한 방법이라고 하네요.
좋은 답변 감사합니다.

1 Like