Kubernetes STIG Version Comparison
Kubernetes Security Technical Implementation Guide
Comparison
There are 7 differences between versions v2 r1 (July 24, 2024) (the "left" version) and v2 r3 (April 2, 2025) (the "right" version).
Check CNTR-K8-000380 was changed between these two versions. Green, underlined text was added, red, struck-out text was removed.
The regular view of the left check and right check may be easier to read.
Text Differences
Title
The Kubernetes kubelet must enable explicit authorization.
Check Content
On Run the following command on each Control Plane and Worker Node: ps Node, run the command: ps -ef | grep kubelet If kubelet Verify that the "--authorization-mode" --authorization-mode option exists, exists this and is a finding. Note set to "Webhook". If the --authorization-mode argument path to the config file (identified by --config). Inspect the content of the config file: Locate the "authorization" section. If the field "mode" does not exist or is not set to "Webhook", "Webhook" or doesn't exist, this is a finding.
Discussion
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".
Fix
On each Control Plane and Edit the Kubernetes Kubelet service file in the --config directory on the Kubernetes Worker Node: Set Node, run the value of command: ps -ef | grep kubelet Remove the "--authorization-mode" option if present. Note the path to "Webhook" in KUBELET_SYSTEM_PODS_ARGS variable. Restart the config file (identified by --config). Edit the config file: In the "authorization" section, set "mode" to "Webhook". Restart the kubelet service using the following command: systemctl command: systemctl daemon-reload && systemctl restart kubelet