The Kubernetes kubelet must enable explicit authorization.
Severity | Group ID | Group Title | Version | Rule ID | Date | STIG Version |
---|---|---|---|---|---|---|
high | V-242392 | SRG-APP-000033-CTR-000095 | CNTR-K8-000380 | SV-242392r1069461_rule | 2025-02-20 | 2 |
Description |
---|
Kubelet is the primary agent on each node. The API server communicates with each kubelet to perform tasks such as starting/stopping pods. By default, kubelets allow all authenticated requests, even anonymous ones, without requiring any authorization checks from the API server. This default behavior bypasses any authorization controls put in place to limit what users may perform within the Kubernetes cluster. To change this behavior, the default setting of AlwaysAllow for the authorization mode must be set to "Webhook". |
ℹ️ Check |
---|
Run the following command on each Worker Node: ps -ef | grep kubelet Verify that the --authorization-mode exists and is set to "Webhook". If the --authorization-mode argument is not set to "Webhook" or doesn't exist, this is a finding. |
✔️ Fix |
---|
Edit the Kubernetes Kubelet service file in the --config directory on the Kubernetes Worker Node: Set the value of "--authorization-mode" to "Webhook" in KUBELET_SYSTEM_PODS_ARGS variable. Restart the kubelet service using the following command: systemctl daemon-reload && systemctl restart kubelet |