Kubernetes/Udemy - CKAD with Tests

Authentication, Authorization and Admission Control

비번변경 2021. 12. 23. 15:36

쿠버네티스 클러스터에서 보안이 필요한 부분과 그 방법에 대해 정리한다.

 

호스트

쿠버네티스 클러스터를 형성한 호스트에 대한 접근은 보호되어 있어야 한다.

비밀번호 인증 접근은 제한되어야 하며, SSH 키 인증 접근만이 허용되어야 한다.

 

kube-apiserver

kube-apiserver는 쿠버네티스 내 모든 작업의 중심으로, 사용자는 kubectl를 이용하거나 apiserver에 직접 접근하여 클러스터와 상호작용할 수 있다. 클러스터에서 거의 모든 작업을 kube-apiserver를 통해 수행할 수 있으므로 apiserver 자체에 대하 접근 제어가 필수적이다.

 

고려사항

  • 누가 클러스터에 접근할 수 있는가
    ID/PASSWD, Token, 인증서, 외부 인증 공급자(LDAP), Service Accounts 등 인증(Authorization) 메커니즘에 의해 결정된다.
  • 클러스터에 접근해 무엇을 할 수 있는가
    ID/PASSWD 저장 파일, Token 저장 파일, 인증서, 외부 인증 공급자(LDAP), Service Accounts 등 권한 부여(Authentication) 메커니즘에 의해 결정된다.

 

클러스터 내 구성 요소

ETCD 클러스터, Kube 컨트롤러 관리자, 스케줄러, API 서버와 같은 구성 요소와 클러스터 간 모든 통신은 TLS 암호화를 사용하여 보호되어야 한다.

 

포드 간 통신

기본적으로 임의의 포드는 클러스터 내의 모든 포드와 통신할 수 있다. 필요한 통신만을 허용하기 위해서는 network policy에 의한 제한이 필요하다.