Check ID:
Provider: Kubernetes
Service:
Severity: CRITICAL
Categories:
Resource type:
controllermanager_root_ca_file_setProvider: Kubernetes
Service:
controllermanagerSeverity: CRITICAL
Categories:
encryption, cluster-securityResource type:
PodWhat this check verifies
Kubernetes Controller Manager uses--root-ca-file to reference a certificate bundle so pods get a ca.crt for validating the API server’s TLS certificate.
Risk
Without a configured root CA, pods cannot reliably verify the API server, enabling on-path spoofing. This exposes API traffic and service account tokens, allowing session hijack, data exfiltration, and malicious config changes-compromising confidentiality and integrity, and potentially disrupting availability.Recommendation
Set a trusted CA bundle via--root-ca-file on the controller manager to ensure verified TLS for in-cluster API calls. Use a cluster-controlled CA, rotate and monitor certificates, and keep the bundle aligned with the API server chain. Apply defense in depth and least privilege for service accounts.
Remediation
Dashboard steps- SSH to a control-plane node with sudo privileges
- Edit the static Pod manifest: /etc/kubernetes/manifests/kube-controller-manager.yaml
- In the kube-controller-manager container command list, add this flag:
- —root-ca-file=/etc/kubernetes/pki/ca.crt
- Save the file; kubelet will automatically restart the Pod
References
Where this check fires
This check runs on every scheduled scan against your Kubernetes account. Findings appear at Cloud Security → Findings filterable byCheck ID = controllermanager_root_ca_file_set. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Kubernetes checks