쿠버네티스 SSL 및 TLS 쉽게 구성하는 방법
NGINX Ingress Controller를 배포해서 쿠버네티스 SSL 및 TLS 구성을 사용하면 Kubernetes 환경에서 손쉽게 SSL/TLS를 구성할 수 있습니다. 웹 어플리케이션의 트래픽을 관리하고 보호하기 위해 SSL/TLS 암호화는 매우 중요합니다.
특히, 현대 웹 어플리케이션 관점에서 SSL/TLS 보안은 필수 요소 중 하나입니다.
해당 블로그 포스트에서는 NGINX Ingress Controller를 사용하여 SSL/TLS를 구성하는 방법에 대해 알아보겠습니다.
목차
1. NGINX Ingress Controller SSL/TLS 구성 – 인증서 발급
2. NGINX Ingress Controller SSL/TLS 구성 – Ingress yaml 작성
3. 쿠버네티스 SSL/TLS 구성 확인
4. 결론
1. NGINX Ingress Controller SSL/TLS 구성 – 인증서 발급
openssl 명령어를 사용하여 자체 서명된 tls.crt 인증서와 tls.key 이름을 가진 private key를 생성합니다.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=devops.com/O=devops.com" -addext "subjectAltName = DNS:devops.com"
생성된 인증서 파일 (tls.crt)과 private key (tls.key)파일을 확인합니다.
ls tls.*
tls.crt tls.key
생성한 인증서를 바탕으로 NGINX Ingress Controller의 Namespace인 ingress-nginx로 Kuberentes Secret 리소스를 생성합니다.
kubectl create secret tls tls.crt --key tls.key --cert tls.crt -n ingress-nginx
생성된 시크릿을 확인해보면 tls.crt 시크릿이 kubernetes.io/tls 형식으로 생성된 것을 확인할 수 있습니다.

kubectl get secret -n ingress-nginx
NAME TYPE DATA AGE
tls.crt kuberentes.io/tls 2 3m
2. NGINX Ingress Controller 쿠버네티스 SSL/TLS 구성 – Ingress yaml 작성
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: svc-ingress
annotations:
spec:
tls:
- hosts:
- shop.example.com
secretName: tls.crt
rules:
- host: shop.example.com
http:
paths:
- path: /account
pathType: Prefix
backend:
service:
name: svc-account
port:
number: 80
- path: /menu
pathType: Prefix
backend:
service:
name: svc-menu
port:
number: 80
- path: /sales
pathType: Prefix
backend:
service:
name: svc-sales
port:
number: 80
ingressClassName: nginx
Ingress 리소스 yaml을 작성하여 NGINX Ingress Controller의 namespace인 ingress-nginx로 배포합니다.
kubectl apply -f ssl-tls.yaml -n ingress-nginx
3. 쿠버네티스 SSL/TLS 구성 확인
NGINX Ingress Controller SSL/TLS 의 443 NordPort인 31332 포트로 접근합니다.
kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 10.108.42.5 <none> 80:32503/TCP,443:31332/TCP 6m
배포된 서비스 중 하나인 account 서비스로 https 접근을 성공했습니다.


크롬 인증서 뷰어를 통해 인증서 정보를 보면 SSL/TLS 인증서 발급 목차에서 옵션을 설정한대로 일반이름, 조직명, 유효기간을 확인할 수 있습니다.
4. 결론
쿠버네티스 SSL를 사용하여 앱을 보호하는 것은 복잡해 보일 수 있지만 올바른 접근 방식을 사용하면 관리하기 쉬워집니다. NGINX Ingress Controller를 배포하고 SSL 및 TLS를 구성하여 웹 애플리케이션이 잠재적 위협으로부터 강화되도록 하는 방법을 살펴보았습니다. 이러한 단계를 구현하면 웹 트래픽의 보안을 강화할 뿐만 아니라 보다 탄력적인 인프라를 구축할 수 있습니다.
기억하세요. IT 세계에서 보안은 지속적인 프로세스입니다. 프로토콜을 정기적으로 업데이트하고 최신 보안 관행에 대한 정보를 얻는 것이 중요합니다. 이 가이드가 도움이 되고 보다 고급 구성을 탐색하고 싶다면 여러분을 지원할 수 있는 리소스와 커뮤니티가 많이 있습니다. 보안을 즐기세요!
NGINX Ingress Controller를 사용하면 쿠버네티스 SSL/TLS를 구성하는 것이 간단해집니다.
이를 통해 사용자는 애플리케이션의 보안을 강화하고 데이터의 기밀성을 보장할 수 있습니다.
따라서 NGINX Ingress Controller를 활용하여 SSL/TLS를 적용하고 웹 어플리케이션의 보안을 강화하는 것이 중요합니다.
NGINX Ingress Controller의 상업적 지원 기능이 포함된 엔터프라이즈용 NGINX Plus Ingress Controller를 지금 NGINX STORE에서 만나보세요.
댓글을 달려면 로그인해야 합니다.