Check ID:
Provider: Kubernetes
Service:
Severity: HIGH
Categories:
Resource type:
controllermanager_service_account_private_key_fileProvider: Kubernetes
Service:
controllermanagerSeverity: HIGH
Categories:
cluster-security, secretsResource type:
PodWhat this check verifies
Kubernetes controller manager uses a service account signing key configured via--service-account-private-key-file.
The evaluation identifies whether this argument is present, indicating the component can sign service account tokens.
Risk
Without a configured signing key, the token controller can’t mint service account tokens, breaking pod-to-API auth and controller operations (availability). Inability to rotate keys prolongs validity of stolen or stale tokens, weakening integrity and confidentiality.Recommendation
Set a dedicated signing key using--service-account-private-key-file, or adopt an approved external signer.
Apply least privilege to key access, enforce regular rotation and rollover, separate signing/verification duties, and prefer short-lived tokens with strict RBAC.
Remediation
Dashboard steps- SSH to the control plane node
- Edit /etc/kubernetes/manifests/kube-controller-manager.yaml
- Under containers[].command, add: - —service-account-private-key-file=/etc/kubernetes/pki/sa.key
- Save the file; the kubelet will restart the kube-controller-manager pod automatically
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_service_account_private_key_file. 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