136. Security - Section Introduction
이번챕터에서 중요한거 많이 나온다.
138. Kubernetes Security Primitives
쿠버네티스 보안 원칙에 대해 알아보자
Secure Hosts
클러스터를 구성하는 호스트에 암호 기반 접속, ssh key 기반 인증이 가능해야한다.
Kube-apiserver 통제
kubeapiserver는 많은 역할을 담당하기 때문에 해당 api server에 보안을 잘 적용하면 되다.
통제해야하는 건
1. 누가 접속 가능한지
2. 그리고 무엇을 할 수 있는지
해당 두 키워드만 조절하면 된다.
Authentication
비번, 인증 등을 이용한 접근 제한
Authorization
마찬가지로 권한 제한
TLS Certificates
클러스터내의 파드들이 kube apiserver를 걸쳐 통신할때 TLS 암호화된다.
Network Policies
클러스터 내 파드들은 통신할 수 있다.
네트워크 정책을 이용해 액세스 권한을 제한할 수 있다.
139. Authentication
노드, 파드등 다양한 구성요소로 구성된 클러스터가 있다.
관리자, 개발자, 엔드 유저등등
내부 구성 요소들간의 통신과 인증 메커니즘을 알아보자 .
클러스터 보안에 집중해보자!
end user 보안의 경우 응용 프로그램 자체에 의해 내부적으로 관리된다.
논의에서 제외하고
관리자, 개발자, 서비스 봇 만 남는다.
관리자, 개발자는 사람이고 봇은 서비스 계정이다.
쿠버네티스는 사용자 계정을 직접 관리하지 않는다.
외부 소스에 의존한다. 정보가 담긴 파일이나 인증서 또는 타사 ID 서비스 처럼.
이런 사용자를 관리하는 LDAT 같은 거다.
서비스 계정은 만들 수 있다
kube api 서버와 통신 할때
- 유저를 인증하고
- 프로세스를 처리한다.
어떻게 인증할까 ?
여러가지 방식이 잇지만 여기서
static 비밀 번호 ,토큰 방식이 있다 .
Auth Mechanisms - Basic
파일을 csv 로 만들고 kube apiserver 내에 해당 내용을 추가한다.
kube-apiserver.service 에 내용을 추가할 뿐만 아니라
파드 정의 파일도 수정해야한다.
Kube ADM 도구는 자동으로 Kube API 서버를 재시작한다.
추가한 유저를 인증할때
4번째 열에 그룹을 추가할 수 있고
static token 파일의 경우 첫번째 열에 토큰을 명시할 수 있다.