[Cluster Setup and Hardening] Kubernetes 대시보드: 웹 기반 GUI를 통한 클러스터 관리

IMKUNYOUNG·2024년 7월 5일
0

CKS

목록 보기
17/70
post-thumbnail

Kubernetes는 애플리케이션 관리를 위한 강력한 오케스트레이션 도구로 잘 알려져 있습니다. Kubernetes의 하위 프로젝트 중 하나인 Kubernetes 대시보드는 웹 기반 그래픽 사용자 인터페이스(GUI)로, 클러스터의 다양한 활동을 모니터링하고 리소스를 프로비저닝할 수 있는 강력한 도구입니다. 이 글에서는 Kubernetes 대시보드의 배포 방법과 접근을 안전하게 보호하는 방법을 살펴보겠습니다.

Kubernetes 대시보드란?

Kubernetes 대시보드는 클러스터 내 리소스를 시각적으로 관리할 수 있는 웹 기반 인터페이스입니다. 이를 통해 구성, 비밀 등의 리소스를 확인할 수 있으며, 새로운 애플리케이션을 생성하고 클러스터에 배포할 수 있습니다. 하지만 초기 릴리스에서는 접근 제어가 제대로 설정되지 않아 보안 이슈가 발생한 사례가 있었습니다.

보안 사고 사례: Tesla

Tesla의 경우, Kubernetes 대시보드가 인증 없이 공개 접근 가능하게 되어 사이버 공격자들이 이를 악용해 인프라를 사용하여 암호 화폐를 채굴하는 사고가 발생했습니다. 이는 RedLock 클라우드 보안 팀에 의해 발견되었습니다. 이러한 사례는 Kubernetes 대시보드 접근을 안전하게 보호하는 것이 얼마나 중요한지를 보여줍니다.

Kubernetes 대시보드 배포

Kubernetes 대시보드는 Kubernetes 대시보드 GitHub 저장소에 있는 권장 구성 파일을 적용하여 배포됩니다. 배포 후에는 kubernetes-dashboard라는 네임스페이스가 생성되고, 그 안에 대시보드 UI 서버를 호스팅하는 배포, 이를 노출하는 서비스, 설정을 저장하는 configmap, 인증서를 저장하는 secret 객체 등이 생성됩니다.

클러스터 IP 설정

기본적으로 대시보드를 노출하는 서비스는 로드 밸런서나 NodePort로 설정되지 않고, 클러스터 IP로 설정됩니다. 이는 대시보드가 클러스터 외부에서 접근할 수 없고 클러스터 내부에서만 접근 가능하도록 하기 위함입니다.

Laptop에서 Kubernetes 대시보드 접근하기

클러스터에 호스팅된 Kubernetes 대시보드에 접근하려면, 로컬 머신의 브라우저를 통해 접근하는 방법이 있습니다. 이를 위해 kubectl proxy 명령을 사용하여 로컬 호스트에서 API 서버로의 요청을 프록시합니다.

프록시 설정

다음 명령을 실행하여 프록시를 설정합니다:

kubectl proxy

그 후 브라우저에서 다음 URL로 이동하여 대시보드에 접근할 수 있습니다:

https://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

이 접근 방식은 로컬 호스트에서만 유효하며, 다른 사용자에게 대시보드를 접근 가능하게 하려면 추가 설정이 필요합니다.

대시보드 외부 접근 방법

대시보드를 외부에서 접근하기 위해서는 서비스 유형을 변경해야 합니다.

로드 밸런서 설정

클라우드 환경에 클러스터가 배포된 경우, 서비스 유형을 로드 밸런서로 설정하여 대시보드를 외부에서 접근할 수 있습니다. 그러나 이는 대시보드를 공개적으로 노출하는 것이므로 권장되지 않습니다.

NodePort 설정

또 다른 방법은 서비스 유형을 NodePort로 설정하는 것입니다. 이를 통해 클러스터의 노드 포트에서 애플리케이션을 노출할 수 있습니다. 네트워크가 안전하다고 확신한다면, 이 방법을 사용할 수 있습니다.

인증 프록시 구성

보다 안전한 접근 방법으로는 인증 프록시를 구성하는 것입니다. 인증 프록시는 성공적인 인증 후 트래픽을 대시보드로 라우팅할 수 있는 방식입니다. (ex, nginx의 인증 프록시 활용)

마무리

Kubernetes 대시보드는 클러스터 관리를 위한 매우 유용한 도구이지만, 보안 설정에 주의를 기울여야 합니다. 이 글에서는 대시보드를 배포하고 접근하는 방법, 그리고 접근을 안전하게 보호하는 방법을 설명했습니다. 다음 글에서는 Kubernetes 대시보드의 인증 메커니즘에 대해 자세히 살펴보겠습니다.

0개의 댓글