쿠버네티스 보안 기본 요소
쿠버네티스는 프로덕션 급 애플리케이션 호스팅의 선호 플랫폼으로, 보안은 매우 중요한 고려사항입니다.
클러스터 호스트 보안
- 클러스터를 구성하는 호스트에 대한 접근은 반드시 보안되어야 합니다.
- 루트 접근 비활성화
- 비밀번호 기반 인증 비활성화
- SSH 키 기반 인증만 허용
- 물리적 또는 가상 인프라 보안에 필요한 기타 조치 적용
쿠버네티스 관련 보안
1. 인증(Authentication)
- kube-apiserver는 쿠버네티스 내의 모든 작업의 중심에 있습니다.
- 인증 메커니즘을 통해 클러스터에 접근할 수 있는 주체를 정의합니다.
- 사용자 ID 및 비밀번호, 토큰, 인증서, LDAP과 같은 외부 인증 제공자와의 통합 등이 포함됩니다.
- 기계의 경우, 서비스 계정을 생성합니다.
2. 권한 부여(Authorization)
- 클러스터 내에서 수행할 수 있는 작업은 권한 부여 메커니즘에 의해 정의됩니다.
- 역할 기반 접근 제어(Role-Based Access Control, RBAC) 사용
- 사용자는 특정 권한이 있는 그룹에 연결됩니다.
- 속성 기반 접근 제어(Attribute-Based Access Control), 노드 인증자(Node authorizers), 웹훅 등의 다른 권한 부여 모듈이 있습니다.
3. 통신 보안
- 클러스터 내외부의 다양한 컴포넌트 간 통신은 TLS 암호화를 사용하여 보안됩니다.
4. 네트워크 정책
- 기본적으로 모든 파드는 클러스터 내의 다른 모든 파드에 접근할 수 있습니다.
- 네트워크 정책을 사용하여 이러한 접근을 제한할 수 있습니다.