클러스터내 정보가 노출되어 다른 공격에 이용되지 않도록 kube-apiserver와 kubelet, 사용자간의 통신 시 (SSL/TLS) 보안 통신을 한다.
플래그의 설정값이 true일 경우, kube-apiserver와 kubelet간의 HTTPS 암호화 통신을 활성화 한다.
기본값이 true이기 때문에 존재하지 않도록 하거나 --kubelet-https=true 설정을 권고한다.
kube-apiserver가 보안 HTTPS 통신을 수신할 포트를 지정한다.
기본값이 6443이기 때문에 값이 없어도 무방하나 0으로 설정 할 경우 https를 사용하지 않는다는 설정이기 때문에 설정을 제거 하거나 특정 1-65536 포트로 지정을 권고한다.
해당 플래그 설정이 없으면 kube-apiserver가 kubelet의 인증서가 신뢰할 수 있는 CA에 의해 서명되었는지 유효성 검증을 하지 않기 때문에 설정을 권고한다.
kubelet와 tls 통신하기 위한 클라이언트 공개키 인증서이다.
kubelet와 tls 통신하기 위한 클라이언트 개인키 인증서이다.
서비스 계정 토큰을 확인하기 위한 공개키로 클러스터내의 서비스 계정을 인증하는데 사용된다.
예를들어, kubectl create sa 와같이 서비스 계정을 생성 할때 생기는 서비스어카운트의 토큰이 정상인지의 유효성을 검증하기 위한 공개키로,
--service-account-signing-key-file 플래그의 파일로 서명하고 --service-account-key-file 플래그의 파일로 검증한다.
ex) --service-account-key-file=/etc/kubernetes/ssl/sa.pub
--service-account-signing-key-file=/etc/kubernetes/ssl/sa.key
tls 통신에 사용할 지원하는 암호화 방식 리스트이다.
ex) --tls-cipher-suites=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256
kube-apiserver의 tls 공개키 인증서 파일 설정으로 tls 핸드셰이크 중 클라이언트에 제공된다.
kube-apiserver의 tls 개인키 인증서 파일 설정으로 tls-cert-file로 암호화된 데이터를 복호화한다.
클라이언트 인증서의 유효성을 검사하기 위해 kube-apiserver에서 사용하는 ca 파일 설정이다.
audit log란?
kubernetes에서 모든 요청은 kube-apiserver를 거쳐야한다.
이때 audit로그는 kube-apiserver를 오가는 API를 로깅하는 것이다.
kubernetes 클러스터 구축시 자동으로 설정되지 않기 때문에 수동으로 설정이 필요하다.
audit log가 쌓일 경로 (ex_ /var/log/audit.log)
ex) - --audit-log-maxbackup=1000
보존할 최대 백업 로그 파일 수를 설정으로 이 값을 초과하면 새 로그 파일을 위한 공간을 확보하기 위해 오래된 로그 파일이 삭제된다.
기본값은 0으로 최대 백업 제한이 없음으로 계속적으로 쌓이기만 하기 때문에 파일수 제한을 위해 설정을 권고한다.
ex) - --audit-log-maxsize=100
로그 파일의 최대 크기(MB)를 지정한다. 기본값은 100MB이며 해당 크기에 도달하면 새 로그 파일이 생성되고 이전로그 파일의 이름은 타임스탬프 접미사로 변경된다.
ex) - --audit-log-maxage=30
로그 파일의 최대 수명으로 설정 값보다 오래된 로그 파일은 삭제 된다.
기본값은 30이다.
ex)- --audit-policy-file=/etc/kubernetes/pki/audit-policy-file.yaml
로그에 대한 정책을 설정하는 파일로 기록해야 하는 이벤트와 포함해야 하는 데이터에 대한 규칙을 정의한다.