Check ID:
Provider: Kubernetes
Service:
Severity: CRITICAL
Categories:
Resource type:
apiserver_etcd_tls_configProvider: Kubernetes
Service:
apiserverSeverity: CRITICAL
Categories:
encryption, cluster-securityResource type:
PodWhat this check verifies
Kubernetes API server uses TLS for its etcd client connection, signaled by--etcd-certfile and --etcd-keyfile in the API server pod arguments.
This evaluates whether client-certificate authentication is configured between the API server and etcd.
Risk
Without TLS and client certs, API server-etcd traffic can be intercepted or altered, compromising confidentiality (Secrets, tokens), integrity (state tampering), and availability (control-plane instability). Attackers could perform MITM, exfiltrate data, or inject state to seize cluster control.Recommendation
Enforce mutual TLS between API server and etcd with trusted CAs and unique client certificates. Restrict etcd network access to control-plane nodes, rotate keys, and monitor certificate expiry. Apply least privilege and defense in depth using private networking and firewall policies.Remediation
Dashboard steps- SSH to each control plane node
- Edit /etc/kubernetes/manifests/kube-apiserver.yaml
- In spec.containers[0].command add:
- —etcd-certfile=<path/to/client-certificate-file>
- —etcd-keyfile=<path/to/client-key-file>
- Save the file; the kubelet will restart the API server with the new flags
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 = apiserver_etcd_tls_config. 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