Ensure the RotateKubeletServerCertificate argument for controller managers is set to True

Error: The RotateKubeletServerCertificate argument for controller managers is not set to True

Bridgecrew Policy ID: BC_K8S_85
Checkov Check ID: CKV_K8S_112
Severity: MEDIUM

The RotateKubeletServerCertificate argument for controller managers is not set to True

Description

Enable kubelet server certificate rotation. RotateKubeletServerCertificate causes the kubelet to both request a serving certificate after bootstrapping its client credentials and rotate the certificate as its existing credentials expire. This automated periodic rotation ensures that the there are no downtimes due to expired certificates and thus addressing availability in the CIA security triad.

📘

Note

This recommendation only applies if you let kubelets get their certificates from the API server. In case your kubelet certificates come from an outside authority/tool (e.g. Vault) then you need to take care of rotation yourself.

Fix - Buildtime

Kubernetes

Kind: Pod

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: kubelet
    tier: control-plane
  name: kubelet
  namespace: kube-system
spec:
  containers:
  - command:
+   - kubelet
+   - --feature-gates=RotateKubeletServerCertificate=true
    image: gcr.io/google_containers/kubelet-amd64:v1.6.0