AWS 네트워크 로드 밸런서(NLB)에서 TLS 리스너와 TCP 리스너 사용하기
AWS에서 네트워크 로드 밸런서(NLB)는 높은 가용성과 성능을 제공하는 서비스로, 클라우드 기반 애플리케이션의 트래픽을 효율적으로 분산시킬 수 있습니다. 이번 글에서는 NLB에서 TLS 리스너와 TCP 리스너를 사용하는 방법에 대해 알아보겠습니다. 특히 TLS 종료(TLS Termination)와 관련된 설정에 대해 설명하고, 어떻게 종단 간 암호화(end-to-end encryption) 및 상호 TLS 인증(mutual TLS)을 구현할 수 있는지 알아보겠습니다.
1. NLB에서 TLS 리스너 설정
TLS 리스너란?
NLB에서 TLS 리스너는 클라이언트와 서버 간의 암호화된 연결을 종료하는 역할을 합니다. TLS 종료란, 클라이언트와의 연결에서 TLS 암호화를 해제하고, 그 이후의 트래픽은 암호화되지 않은 HTTP로 전달되는 방식입니다. 이를 통해 NLB는 서버 인증서를 사용하여 암호화된 트래픽을 처리하고, 트래픽을 복호화하여 EC2 인스턴스로 전달합니다.
TLS 리스너 설정 절차
- **ACM(AWS Certificate Manager)**에서 인증서를 생성합니다.
- NLB에 TLS 리스너를 추가하고, 생성한 인증서를 리스너에 연결합니다.
- 클라이언트는 443번 포트를 통해 NLB에 암호화된 TLS 트래픽을 보냅니다.
- NLB는 해당 트래픽을 복호화하여 대상 그룹에 있는 EC2 인스턴스로 전달합니다.
클라이언트 IP 보존 설정
NLB에서 클라이언트 IP 보존(Client IP Preservation) 설정을 활성화하면, 대상 EC2 인스턴스는 클라이언트의 실제 IP 주소를 확인할 수 있습니다. 이는 트래픽이 NLB에서 복호화된 후에도, EC2 인스턴스가 클라이언트 IP와 포트를 정확히 파악할 수 있게 해줍니다.
2. NLB에서 TCP 리스너 설정
TCP 리스너란?
TCP 리스너는 TLS 종료를 하지 않고, 클라이언트와 EC2 인스턴스 간의 트래픽을 그대로 전달하는 방식입니다. 이 설정에서는 NLB가 트래픽을 복호화하지 않고 그대로 전달하므로, EC2 인스턴스에서 직접 TLS 종료와 인증을 처리해야 합니다.
TCP 리스너 설정 절차
- TCP 리스너를 443번 포트에 설정합니다. TLS가 아닌, 순수한 TCP 연결을 사용하는 방식입니다.
- 클라이언트는 암호화된 트래픽을 NLB로 전송합니다.
- NLB는 해당 트래픽을 암호화된 채로 EC2 인스턴스로 전달합니다.
- EC2 인스턴스에서 TLS 종료를 수행하고, **상호 TLS 인증(mTLS)**을 처리할 수 있습니다.
상호 TLS 인증
TCP 리스너를 사용하면 NLB가 트래픽을 복호화하지 않기 때문에, EC2 인스턴스에서 직접 TLS 종료와 상호 인증을 처리할 수 있습니다. 이는 보안 강화와 클라이언트와 서버 간의 상호 인증을 요구하는 시스템에서 유용합니다.
3. TLS 리스너 vs TCP 리스너
암호화 처리 | NLB에서 TLS 종료 후, 트래픽 복호화 | EC2 인스턴스에서 TLS 종료 후, 트래픽 복호화 |
상호 TLS 인증 | 지원하지 않음 | EC2 인스턴스에서 직접 구현 가능 |
클라이언트 IP 보존 | 가능 (Client IP Preservation 활성화) | 가능 (클라이언트 IP 그대로 전달) |
용도 | HTTPS 웹 애플리케이션 등 | End-to-End 암호화가 필요한 애플리케이션 |
4. 결론
NLB는 AWS에서 고성능 네트워크 로드 밸런싱을 제공하며, TLS 리스너와 TCP 리스너는 각기 다른 보안 요구 사항을 충족할 수 있는 옵션을 제공합니다. TLS 리스너는 트래픽을 NLB에서 종료시키고, EC2 인스턴스로는 복호화된 HTTP 트래픽을 전달하는 방식입니다. 반면 TCP 리스너는 트래픽을 암호화된 채로 EC2 인스턴스로 전달하여, EC2에서 직접 TLS 종료와 상호 TLS 인증을 처리할 수 있도록 합니다.
이러한 설정을 잘 활용하면, 보안과 성능을 동시에 고려한 네트워크 아키텍처를 구축할 수 있습니다. 각 방식에 대해 정확한 이해를 바탕으로, 여러분의 애플리케이션 요구 사항에 맞는 최적의 선택을 하시기 바랍니다.
이 글은 NLB에서 TLS 리스너와 TCP 리스너를 어떻게 설정하고 사용하는지에 대해 자세히 설명하였습니다. 이러한 설정을 통해 AWS 클라우드 환경에서 보안을 강화하고, 보다 효율적인 트래픽 관리를 구현할 수 있습니다.
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] ACM - 보안 (0) | 2024.12.25 |
---|---|
[AWS SCS] AWS Certificate Manager (ACM) (0) | 2024.12.25 |
[AWS SCS] ELB SSL 인증서 보안 (0) | 2024.12.25 |
[AWS SCS] ELB SSL 인증서 (1) | 2024.12.25 |
[AWS SCS] ELB Sticky Sessions (0) | 2024.12.25 |