Under active development Content is continuously updated and improved

V-242425Kubernetes Kubelet must enable tlsCertFile for client authentication to secure service.

CAT II - Medium
CNTR-K8-001470

>Control Description

Kubernetes container and pod configuration are maintained by Kubelet. Kubelet agents register nodes with the API Server, mount volume storage, and perform health checks for containers and pods. Anyone who gains access to Kubelet agents can effectively control applications within the pods and containers. Using authenticity protection, the communication can be protected against man-in-the-middle attacks/session hijacking and the insertion of false information into sessions. The communication session is protected by utilizing transport encryption protocols such as TLS. TLS provides the Kubernetes API Server with a means to authenticate sessions and encrypt traffic. To enable encrypted communication for Kubelet, the parameter tlsCertFile must be set. This parameter gives the location of the SSL Certificate Authority file used to secure Kubelet communication.

>Check Content

On the Control Plane,

$ps -ef | grep kubelet

If the argument for "--tls-cert-file" option exists, this is a finding. Note the path to the config file (identified by --config).

$grep -i tlsCertFile <path_to_config_file>

If the setting "tlsCertFile" is not set or contains no value, this is a finding.

>Remediation

On the Control Plane,

$ps -ef | grep kubelet

Remove the "--tls-cert-file" option if present. Note the path to the config file (identified by --config). Edit the Kubernetes Kubelet config file: Set "tlsCertFile" to a path containing an Approved Organization Certificate. Restart the kubelet service

$systemctl daemon-reload && systemctl restart kubelet

>CCI References

Control Correlation Identifiers (CCIs) map STIG findings to NIST 800-53 controls.

>Cross-Framework Mappings

NIST SP 800-53 r5

via DISA CCI List

Ask AI

Configure your API key to use AI features.