[EKS] NLB에 TLS 적용

Hyun-Sung Kim·2025년 1월 5일

Kubernetes

목록 보기
13/24
post-thumbnail

TLS는 오늘날 거의 모든 서비스에서 기대되는 기본 보안 요소이며, NLB와 연계하면 이를 간소화하고 최적화할 수 있습니다.

거의 모든 웹 및 네트워크 서비스에 데이터 전송 암호화가 요구되는 상황에서, NLB에 TLS를 연동하는 것은 통신 보안과 서비스 효율성을 모두 고려한 중요한 설계 요소로 작용합니다.


NLB에 tls 적용

  • 목표 : EKS에 연결된 NLB에 tls를 적용한다.

  • [관련 기술 문서]
    NLB https
    annotation

  • 적용 절차
    1) ACM에 (해당 Region에) SSL 인증서 업로드
    'Certificate ID'가 아래 yaml 파일 상에, 'ssl-cert' 값으로 활용된다.

2) 'service' yaml 파일을 위 기술 문서를 참고하여 'anotation' 부분을 수정

	```
    apiVersion: v1
	kind: Service
	metadata:
	  name: service-kdream-01
	  namespace: test
	  labels:
	    app: auth-test
	  annotations:
	    service.beta.kubernetes.io/aws-load-balancer-type: external
	    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
	    service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
	    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https1, https2
	    service.beta.kubernetes.io/aws-load-balancer-ssl-cert : "arn:aws:acm:us-west-2:4xxxxxxxxxxx:certificate/aaaaaaaaa-2028-bbbb-cccc-dddddd"    
	    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: TCP
	    service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy : "ELBSecurityPolicy-TLS13-1-2-2021-06"
	spec:
	  ports:
	    - name: https1
	      port: 8080
	      targetPort: 80
	    - name: https2
	      port: 443
	      targetPort: 80
	  type: LoadBalancer 
    
  • service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy

     	* 이 주석은 클라이언트와 로드 밸런서 간의 SSL 연결을 협상하도록 보안 정책을 구성하는 옵션을 제공합니다.
         * 보안 정책은 사용하려는 SSL 프로토콜, SSL 암호의 조합이며 기본적으로 이 주석을 지정하지 않으면 ELBSecurityPolicy-2016-08 정책을 사용합니다.
         * 또한 이 기본 정책은 TLSv1.3 프로토콜을 지원하지 않으며 매니페스트 파일에 사용한 ELBSecurityPolicy-TLS13-1-2-2021-06 보안 정책을 사용하는 것이 좋습니다.
         * 이 보안 정책에는 보안 및 성능에 최적화된 TLS 1.3이 포함되며 TLS 1.2와 역호환됩니다.
  • externalTrafficPolicy

     	* 이 옵션은 서비스가 외부 트래픽을 노드 로컬 또는 클러스터 전체 엔드포인트로 라우팅하려는지 여부를 나타냅니다.
         * 클러스터(기본값) 및 로컬의 두 가지 옵션을 사용할 수 있습니다. 클러스터는 클라이언트 소스 IP를 가리고 다른 노드로 두 번째 홉을 발생시킬 수 있지만 전반적인 부하 분산이 양호해야 합니다.
         * 로컬은 클라이언트 소스 IP를 보존하고 LoadBalancer 및 NodePort 유형 서비스에 대한 두 번째 홉을 방지하지만 잠재적으로 불균형 트래픽 확산의 위험이 있습니다.
         * 필요에 따라 두 옵션중 하나를 선택할 수 있습니다.
     

3) Routet53에 관련 DNS CNAME 등록

profile
Cloud Engineer

0개의 댓글