Skip to content

Guide to the Secure Configuration of Red Hat OpenShift Container Platform 4

Rules, Groups, and Values defined within the XCCDF Benchmark

  • Ensure the notification is enabled for Compliance Operator

    The OpenShift platform provides the Compliance Operator for administrators to monitor compliance state of a cluster and provides them with an overv...
    Rule Medium Severity
  • Kubernetes Pod Logs Must Be Group Owned By Root

    All logs must be owned by root user and group and have permissions 755. By default, the path for the Kubernetes pod logs is
    /var/log/pods/
    .
    Rule Medium Severity
  • Ensure the notification is enabled for file integrity operator

    The OpenShift platform provides the File Integrity Operator to monitor for unwanted file changes, and this control ensures proper notification aler...
    Rule Medium Severity
  • Kubernetes Pod Logs Must Be Owned and Group Owned By Root and have permissions 755

    <p> All logs must be owned by root user and group and have permissions 755. By default, the path for the Kubernetes pod logs is <pre...
    Rule Medium Severity
  • Kubernetes Pod Logs Must Be Owned By Root

    All logs must be owned by root user and group. By default, the path for the Kubernetes audit log is <pre>/var/log/kube-apiserver/</pre>. To proper...
    Rule Medium Severity
  • Verify Permissions on the pod log files

    All logs must be owned by root user and group and have permissions 755. By default, the path for the Kubernetes pod logs is
    /var/log/pods/
    .
    Rule Medium Severity
  • Apply Security Context to Your Pods and Containers

    Apply Security Context to your Pods and Containers
    Rule Medium Severity
  • Manage Image Provenance Using ImagePolicyWebhook

    OpenShift administrators can control which images can be imported, tagged, and run in a cluster. There are two facilities for this purpose: (1) All...
    Rule Medium Severity
  • The default namespace should not be used

    Kubernetes provides a default namespace, where objects are placed if no namespace is specified for them. Placing objects in this namespace makes ap...
    Rule Medium Severity
  • Ensure Seccomp Profile Pod Definitions

    Enable default seccomp profiles in your pod definitions.
    Rule Medium Severity
  • Create administrative boundaries between resources using namespaces

    Use namespaces to isolate your Kubernetes objects.
    Rule Medium Severity
  • Ensure that GitOps Operator is deployed

    Red Hat OpenShift GitOps is a declarative continuous delivery platform based on Argo CD. It enables teams to adopt GitOps principles for managing c...
    Rule Medium Severity
  • Ensure that the kubeadmin secret has been removed

    The kubeadmin user is meant to be a temporary user used for bootstrapping purposes. It is preferable to assign system administrators whose users ar...
    Rule Medium Severity
  • Ensure that the OpenShift OAuth login template is set

    A legal notice can be configured via a customized login template. <br> This is achievable via the OAuth object by creating a custom login page, st...
    Rule Medium Severity
  • Ensure that the OpenShift OAuth logout URL is set

    The user can be redirected to a configured URL upon logout <br> This is achievable via the OAuth object by setting the <code>logoutRedirect</code>...
    Rule Medium Severity
  • Ensure that the OpenShift OAuth provider selection is set

    Custom login pages can be helpful to show users a branded page that they trust and expect before being redirected to the authentication provider. <...
    Rule Medium Severity
  • Ensure That The kubelet Client Certificate Is Correctly Set

    To ensure the kubelet TLS client certificate is configured, edit the kubelet configuration file <code>/etc/kubernetes/kubelet.conf</code> and confi...
    Rule Medium Severity
  • Ensure that the OpenShift MOTD is set

    To configure OpenShift's MOTD, create a <b>ConfigMap</b> called <code>motd</code> in the <code>openshift</code> namespace. The object should look ...
    Rule Medium Severity
  • Ensure that project templates autocreate Resource Quotas

    <p> Configure a template for newly created projects to use default resource quotas and make sure this template is referenced from th...
    Rule Medium Severity
  • Ensure that project config references a project template

    The OpenShift Container Platform API server automatically provisions new projects based on the project template that is identified by the <code>pro...
    Rule Medium Severity
  • Ensure that project templates autocreate Resource Quotas

    Configure a template for newly created projects to use default resource quotas and make sure this template is referenced from the default project t...
    Rule Medium Severity
  • Ensure that all daemonsets has resource limits

    When deploying an application, it is important to tune based on memory and CPU consumption, allocating enough resources for the application to func...
    Rule Medium Severity
  • Ensure That The kubelet Client Certificate Is Correctly Set

    To ensure the kubelet TLS client certificate is configured, edit the kubelet configuration file <code>/etc/kubernetes/kubelet.conf</code> and confi...
    Rule Medium Severity
  • Ensure that all deployments has resource limits

    When deploying an application, it is important to tune based on memory and CPU consumption, allocating enough resources for the application to func...
    Rule Medium Severity
  • Ensure that all statefulsets has resource limits

    When deploying an application, it is important to tune based on memory and CPU consumption, allocating enough resources for the application to func...
    Rule Medium Severity
  • Ensure workloads use resource requests and limits

    There are two ways to enable resource requests and limits. To create either: A multi-project quota, defined by a ClusterResourceQuota object, all...
    Rule Medium Severity
  • Ensure workloads use cluster resource requests and limits

    There are two ways to enable resource requests and limits. To create either: A multi-project quota, defined by a ClusterResourceQuota object, all...
    Rule Medium Severity
  • Ensure workloads use resource requests and limits per namespace

    There are two ways to enable resource requests and limits. To create either: A multi-project quota, defined by a ClusterResourceQuota object, all...
    Rule Medium Severity
  • Ensure TLS v1.2 is minimum for Openshift APIServer

    Verify tls version for the openshift APIServer.
    Rule Medium Severity
  • Ensure TLS v1.2 is minimum for Openshift master and worker nodes

    Ensure that the Kubelet is configured to only use strong cryptographic ciphers. To set the cipher suites for the kubelet, create new or modify exis...
    Rule Medium Severity
  • Ensure TLS v1.2 is minimum for Openshift Router

    Verify tls version for the Openshift Router.
    Rule Medium Severity
  • This is a helper rule to fetch the required api resource for detecting HyperShift OCP version

    no description
    Rule Medium Severity
  • This is a helper rule to fetch the required api resource for detecting OCP version

    no description
    Rule Medium Severity
  • Kubernetes Kubelet Settings

    The Kubernetes Kubelet is an agent that runs on each node in the cluster. It makes sure that containers are running in a pod. The kubelet takes a ...
    Group
  • Configure Kubelet Event Limit

    Maximum event creations per second.
    Value
  • kubelet - Authorization Options

    ABAC - Attribute-Based Access Control (ABAC) mode allows you to configure policies using local files. <br>RBAC - Role-based access control (RBAC) m...
    Value
  • Configure Kubelet EvictionHard Image FS Available

    Image FS Available for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard Image FS inodes Free

    Image FS inodes Free for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard Memory Available

    Memory Available for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard NodeFS Available

    Node FS Available for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard Node FS inodes Free

    Node FS inodes Free for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Image FS Available

    Image FS Available for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Image FS inodes Free

    Image FS inodes Free for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Memory Available

    Memory Available for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft NodeFS Available

    Node FS Available for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Node FS inodes Free

    Node FS inodes Free for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet use of the Strong Cryptographic Ciphers

    Cryptographic Ciphers Available for Kubelet, separated by comma
    Value
  • Configure Kubelet use of the Strong Cryptographic Ciphers

    Cryptographic Ciphers Available for Kubelet
    Value
  • Configure Kubelet to use secure TLS version

    Secure version of TLS available for configuring Kubelet
    Value
  • Configure Kubelet to use secure TLS version

    TLS versions available for configuring Kubelet, excluding insecure versions
    Value

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