More Info:
Ensure that the Kubelet is configured to only use strong cryptographic ciphers.Risk Level
MediumAddress
SecurityCompliance Standards
- CIS Kubernetes
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
On every worker node, back up the existing kubelet config and systemd drop-in (if present):
-
On every worker node, configure strong ciphers in the kubelet config file
/var/lib/kubelet/config.yaml(if the file exists and is used) by adding or updating thetlsCipherSuitesfield under the top-level config (create the list if missing):
- 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 EOF
KUBELET_CONFIG_ARGS / KUBELET_EXTRA_ARGS / ExecStart= line contains:-
On every worker node, reload systemd and restart kubelet (note: restarting kubelet temporarily disrupts node-level operations and may evict or reschedule pods depending on your cluster configuration):
-
On every worker node, verify that the kubelet process is running and (if started via flags) that the
--tls-cipher-suitesargument reflects only the strong cipher list:Confirm the output shows kubelet running and, where applicable, includes:
--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.
Using kubectl
Using kubectl
kubectl cannot configure kubelet’s TLS cipher suites because this setting lives in host-level files and flags on each worker node (for example
/var/lib/kubelet/config.yaml or the kubelet systemd unit). To remediate this finding, follow the guidance in the Manual Steps section directly on every worker node.Automation
Automation

