Skip to content

Kubernetes Security Technical Implementation Guide

Rules, Groups, and Values defined within the XCCDF Benchmark

  • SRG-APP-000033-CTR-000095

    Group
  • The Kubernetes Kubelet must have the "readOnlyPort" flag disabled.

    Kubelet serves a small REST API with read access to port 10255. The read-only port for Kubernetes provides no authentication or authorization security control. Providing unrestricted access on port...
    Rule High Severity
  • SRG-APP-000033-CTR-000095

    Group
  • The Kubernetes API server must have the insecure bind address not set.

    By default, the API server will listen on two ports and addresses. One address is the secure address and the other address is called the "insecure bind" address and is set by default to localhost. ...
    Rule High Severity
  • SRG-APP-000033-CTR-000100

    Group
  • The Kubernetes API server must have the secure port set.

    By default, the API server will listen on what is rightfully called the secure port, port 6443. Any requests to this port will perform authentication and authorization checks. If this port is disab...
    Rule Medium Severity
  • SRG-APP-000033-CTR-000100

    Group
  • SRG-APP-000142-CTR-000325

    Group
  • The Kubernetes API Server must have an audit log path set.

    When Kubernetes is started, components and user services are started for auditing startup events, and events for components and services, it is important that auditing begin on startup. Within Kube...
    Rule Medium Severity
  • SRG-APP-000026-CTR-000070

    Group
  • SRG-APP-000033-CTR-000090

    Group
  • The Kubernetes Kubelet must have anonymous authentication disabled.

    A user who has access to the Kubelet essentially has root access to the nodes contained within the Kubernetes Control Plane. To control access, users must be authenticated and authorized. By allowi...
    Rule High Severity
  • SRG-APP-000033-CTR-000095

    Group
  • The Kubernetes kubelet must enable explicit authorization.

    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...
    Rule High Severity
  • SRG-APP-000033-CTR-000095

    Group
  • Kubernetes Worker Nodes must not have sshd service running.

    Worker Nodes are maintained and monitored by the Control Plane. Direct access and manipulation of the nodes should not take place by administrators. Worker nodes should be treated as immutable and ...
    Rule Medium Severity
  • SRG-APP-000033-CTR-000095

    Group
  • Kubernetes Worker Nodes must not have the sshd service enabled.

    Worker Nodes are maintained and monitored by the Control Plane. Direct access and manipulation of the nodes must not take place by administrators. Worker nodes must be treated as immutable and upda...
    Rule Medium Severity
  • SRG-APP-000033-CTR-000095

    Group
  • Kubernetes dashboard must not be enabled.

    While the Kubernetes dashboard is not inherently insecure on its own, it is often coupled with a misconfiguration of Role-Based Access control (RBAC) permissions that can unintentionally over-grant...
    Rule Medium Severity
  • SRG-APP-000033-CTR-000090

    Group
  • SRG-APP-000033-CTR-000090

    Group
  • The Kubernetes kubelet staticPodPath must not enable static pods.

    Allowing kubelet to set a staticPodPath gives containers with root access permissions to traverse the hosting filesystem. The danger comes when the container can create a manifest file within the /...
    Rule High Severity
  • SRG-APP-000033-CTR-000100

    Group
  • SRG-APP-000033-CTR-000095

    Group
  • Kubernetes DynamicKubeletConfig must not be enabled.

    Kubernetes allows a user to configure kubelets with dynamic configurations. When dynamic configuration is used, the kubelet will watch for changes to the configuration file. When changes are made, ...
    Rule Medium Severity
  • SRG-APP-000033-CTR-000090

    Group
  • The Kubernetes API server must have Alpha APIs disabled.

    Kubernetes allows alpha API calls within the API server. The alpha features are disabled by default since they are not ready for production and likely to change without notice. These features may a...
    Rule Medium Severity
  • SRG-APP-000092-CTR-000165

    Group
  • Kubernetes Controller Manager must disable profiling.

    Kubernetes profiling provides the ability to analyze and troubleshoot Controller Manager events over a web interface on a host port. Enabling this service can expose details about the Kubernetes ar...
    Rule Medium Severity
  • SRG-APP-000142-CTR-000325

    Group
  • The Kubernetes API Server must enforce ports, protocols, and services (PPS) that adhere to the Ports, Protocols, and Services Management Category Assurance List (PPSM CAL).

    Kubernetes API Server PPSs must be controlled and conform to the PPSM CAL. Those PPS that fall outside the PPSM CAL must be blocked. Instructions on the PPSM can be found in DoD Instruction 8551.01...
    Rule Medium Severity
  • SRG-APP-000142-CTR-000325

    Group
  • SRG-APP-000133-CTR-000290

    Group
  • Kubernetes Kubelet must deny hostname override.

    Kubernetes allows for the overriding of hostnames. Allowing this feature to be implemented within the kubelets may break the TLS setup between the kubelet service and the API server. This setting a...
    Rule Medium Severity
  • SRG-APP-000133-CTR-000295

    Group
  • SRG-APP-000133-CTR-000300

    Group
  • The Kubernetes KubeletConfiguration file must be owned by root.

    The kubelet configuration file contains the runtime configuration of the kubelet service. If an attacker can gain access to this file, changes can be made to open vulnerabilities and bypass user au...
    Rule Medium Severity
  • SRG-APP-000133-CTR-000305

    Group
  • The Kubernetes KubeletConfiguration files must have file permissions set to 644 or more restrictive.

    The kubelet configuration file contains the runtime configuration of the kubelet service. If an attacker can gain access to this file, changes can be made to open vulnerabilities and bypass user au...
    Rule Medium Severity
  • SRG-APP-000133-CTR-000310

    Group
  • SRG-APP-000141-CTR-000315

    Group
  • SRG-APP-000171-CTR-000435

    Group
  • Secrets in Kubernetes must not be stored as environment variables.

    Secrets, such as passwords, keys, tokens, and certificates should not be stored as environment variables. These environment variables are accessible inside Kubernetes by the "Get Pod" API call, and...
    Rule High Severity
  • SRG-APP-000211-CTR-000530

    Group
  • Kubernetes must separate user functionality.

    Separating user functionality from management functionality is a requirement for all the components within the Kubernetes Control Plane. Without the separation, users may have access to management ...
    Rule Medium Severity
  • SRG-APP-000219-CTR-000550

    Group
  • The Kubernetes API server must use approved cipher suites.

    The Kubernetes API server communicates to the kubelet service on the nodes to deploy, update, and delete resources. If an attacker were able to get between this communication and modify the request...
    Rule Medium Severity
  • SRG-APP-000219-CTR-000550

    Group
  • SRG-APP-000219-CTR-000550

    Group

The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.

Capacity
Modules