IT/CKA

CKA 준비과정 - Security (1) / 쿠버네티스 보안 기초

Primes 2023. 6. 16. 15:49
728x90

쿠버네티스는 여러 애플리케이션을 통합 관리할 수 있는 솔루션이기 때문에, 보안적 요소가 매우 중요해진다.

 

클러스터를 생성하는 호스트의 보안부터 중요하게 다루어야 한다.

비밀번호를 입력하여 접속하는 인증은 불가능해야 하며, SSH 키 기반의 인증을 사용하여야 한다.

 

 

이제 클러스터 보안에 대해 알아보자.

 

쿠버네티스의 모든 기능의 중심에는 kube-apiserver가 존재한다. 각 유틸리티가 서로 상호작용을 할 때, 항상 해당 서버를 통과하게 된다. 따라서 apiserver의 보안이 1차 보안 저지선이 된다.

 

API 서버에 대한 액세스 접근 제어를 실행하는 것이다.

 

kube-apiserver 접근에 대한 정책 수립

 

이러한 접근 제어는 인증 을 통해서 제어하게 된다.

인증은 사용자 ID, 암호, 토큰을 파일로 저장하여 인증하거나, LDAP와 같은 외부 인증 공급자를 통해서 인증을 할 수도 있다.

 

 

 

또한, kubelet, kube-proxy 와 같이 워커 노드에서 실행되는 통신에는 모두 TLS 암호화가 적용되어 있다.

 

인증

쿠버네티스 클러스터에는 다양한 유저들이 접속한다. 관리자 / 개발자 / 외부 접근 유저 로 크게 나뉜다.

여기서, 외부 접근 유저에 대한 보안은 보안 프로그램을 통해 관리된다.

 

따라서 내부 리소스에 접근하게 되는 관리자와 개발자에 대한 클러스터 내 보안이 필요하다.

쿠버네티스는 사용자 계정을 직접 관리하지 않기 대문에, 위에서 설명했다 싶이 파일, 외부 인증기관과 같은 리소스를 통해 인증 과정을 거친다. 다만, 서비스 계정은 쿠버네티스가 생성하여 관리할 수 있다.

 

kube-apiserver를 통해 서비스 계정을 생성할 수 있다.

 

모든 사용자 계정의 접근은 kube-apiserver를 통해 이루어진다.

계정이 apiserver에 접근하면, 인증 과정을 거친다.

 

이 때, password file 또는 토큰 파일을 사용하거나, 외부 인증 등의 방법을 사용할 수 있다.

 

단, 일반 파일에 사용자 이름, 암호, 토큰을 저장하는 방법은 불안정하며 보안적으로 취약하므로 권장되지 않는다.

반응형