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 APIServer is not configured with Old tlsSecurityProfile

    The configuration <code>tlsSecurityProfile</code> specifies TLS configurations to be used while establishing connections with the externally expose...
    Rule Medium Severity
  • Disable Token-based Authentication

    To ensure OpenShift does not accept token-based authentication, follow the OpenShift documentation and configure alternate mechanisms for authentic...
    Rule High Severity
  • Ensure that Audit Log Forwarding Is Enabled

    OpenShift audit works at the API server level, logging all requests coming to the server. Audit is on by default and the best practice is to ship a...
    Rule Medium Severity
  • Ensure that Audit Log Webhook Is Configured

    Audit is on by default and the best practice is to ship audit logs off an cluster for retention. HyperShift is able to do this with the a audit web...
    Rule Medium Severity
  • Authentication

    In cloud workloads, there are many ways to create and configure to multiple authentication services. Some of these authentication methods by not be...
    Group
  • OAuth Clients Token Inactivity Timeout

    Enter OAuth Clients Token Inactivity Timeout in Seconds
    Value
  • Configure An Identity Provider

    <p> For users to interact with OpenShift Container Platform, they must first authenticate to the cluster. The authentication layer i...
    Rule Medium Severity
  • Configure OAuth server so that tokens expire after a set period of inactivity

    <p> You can configure OAuth tokens to expire after a set period of inactivity. By default, no token inactivity timeout is set. </p> ...
    Rule Medium Severity
  • Configure OAuth tokens to expire after a set period of inactivity

    <p> You can configure OAuth tokens to expire after a set period of inactivity. By default, no token inactivity timeout is set. </p> ...
    Rule Medium Severity
  • Configure OAuth tokens to expire after a set period of inactivity

    <p> You can configure OAuth tokens to have have a custom duration. By default, the tokens are valid for 24 hours (86400 seconds). </...
    Rule Medium Severity
  • Configure OAuth server so that tokens have a maximum age set

    <p> You can configure OAuth tokens to have have a custom duration. By default, the tokens are valid for 24 hours (86400 seconds). </...
    Rule Medium Severity
  • Kube controller manager config check - secure port

    Kube controller manager config check - secure port
    Value
  • Kube controller manager config check - service account CA

    Kube controller manager config check - service account CA
    Value
  • Kube controller manager config check - service account private key

    Kube controller manager config check - service account private key
    Value
  • Kube controller manager config check - use service account

    Kube controller manager config check - use service account
    Value
  • Configure which node to scan based on role

    Configure which node to scan based on role
    Value
  • Configure OAuth clients so that tokens expire after a set period of inactivity

    <p> You can configure OAuth tokens to expire after a set period of inactivity. By default, no token inactivity timeout is set. </p> ...
    Rule Medium Severity
  • Configure OAuth clients so that tokens have a maximum age set

    <p> You can configure OAuth tokens to have have a custom duration. By default, the tokens are valid for 24 hours (86400 seconds). </...
    Rule Medium Severity
  • Do Not Use htpasswd-based IdP

    <p> For users to interact with OpenShift Container Platform, they must first authenticate to the cluster. The authentication layer i...
    Rule Medium Severity
  • Only Use LDAP-based IdPs with TLS

    <p> For users to interact with OpenShift Container Platform, they must first authenticate to the cluster. The authentication layer i...
    Rule High Severity
  • OpenShift Controller Settings

    This section contains recommendations for the kube-controller-manager configuration
    Group
  • Kube controller manager config data name

    Kube controller manager config data name
    Value
  • Kube controller manager config filepath

    Kube controller manager config filepath
    Value
  • Kube controller manager config check - port should not be zero

    Kube controller manager config check - port should not be zero
    Value
  • Kube controller manager config check - rotate kubelet server certs

    Kube controller manager config check - rotate kubelet server certs
    Value
  • OpenShift - Logging Settings

    Contains evaluations for the cluster's logging configuration settings.
    Group
  • Ensure Controller insecure port argument is unset

    To ensure the Controller Manager service is bound to secure loopback address and a secure port, set the <code>RotateKubeletServerCertificate</code>...
    Rule Low Severity
  • Ensure that the RotateKubeletServerCertificate argument is set

    To enforce kubelet server certificate rotation on the Controller Manager, set the <code>RotateKubeletServerCertificate</code> option to <code>true<...
    Rule Medium Severity
  • Ensure Controller secure-port argument is set

    To ensure the Controller Manager service is bound to secure loopback address using a secure port, set the <code>RotateKubeletServerCertificate</cod...
    Rule Low Severity
  • Configure the Service Account Certificate Authority Key for the Controller Manager

    To ensure the API Server utilizes its own key pair, set the <code>masterCA</code> parameter to the public key file for service accounts in the <cod...
    Rule Medium Severity
  • Configure the Service Account Private Key for the Controller Manager

    To ensure the API Server utilizes its own key pair, set the <code>privateKeyFile</code> parameter to the public key file for service accounts in th...
    Rule Medium Severity
  • Ensure that use-service-account-credentials is enabled

    To ensure individual service account credentials are used, set the <code>use-service-account-credentials</code> option to <code>true</code> in the ...
    Rule Medium Severity
  • OpenShift etcd Settings

    Contains rules that check correct OpenShift etcd settings.
    Group
  • Etcd config filter

    Etcd config filter
    Value
  • Etcd config file path

    Etcd config file path
    Value
  • Disable etcd Self-Signed Certificates

    To ensure the <code>etcd</code> service is not using self-signed certificates, run the following command: <pre>$ oc get cm/etcd-pod -n openshift-et...
    Rule Medium Severity
  • Ensure That The etcd Client Certificate Is Correctly Set

    To ensure the etcd service is serving TLS to clients, make sure the <code>etcd-pod*</code> ConfigMaps in the <code>openshift-etcd</code> namespace ...
    Rule Medium Severity
  • Ensure ETCD has correct cipher suite

    Check the current cipher suite used in ETCD.
    Rule Medium Severity
  • Enable The Client Certificate Authentication

    To ensure the <code>etcd</code> service is serving TLS to clients, make sure the <code>etcd-pod*</code> <code>ConfigMaps</code> in the <code>opensh...
    Rule Medium Severity
  • Ensure That The etcd Key File Is Correctly Set

    To ensure the etcd service is serving TLS to clients, make sure the <code>etcd-pod*</code> ConfigMaps in the <code>openshift-etcd</code> namespace ...
    Rule Medium Severity
  • Disable etcd Peer Self-Signed Certificates

    To ensure the <code>etcd</code> service is not using self-signed certificates, run the following command: <pre>$ oc get cm/etcd-pod -n openshift-et...
    Rule Medium Severity
  • Ensure That The etcd Peer Client Certificate Is Correctly Set

    To ensure the etcd service is serving TLS to peers, make sure the <code>etcd-pod*</code> ConfigMaps in the <code>openshift-etcd</code> namespace co...
    Rule Medium Severity
  • Enable The Peer Client Certificate Authentication

    To ensure the <code>etcd</code> service is serving TLS to clients, make sure the <code>etcd-pod*</code> <code>ConfigMaps</code> in the <code>opensh...
    Rule Medium Severity
  • Ensure That The etcd Peer Key File Is Correctly Set

    To ensure the etcd service is serving TLS to peers, make sure the <code>etcd-pod*</code> ConfigMaps in the <code>openshift-etcd</code> namespace co...
    Rule Medium Severity
  • Configure A Unique CA Certificate for etcd

    A unique CA certificate should be created for <code>etcd</code>. OpenShift by default creates separate PKIs for etcd and the Kubernetes API server...
    Rule Medium Severity
  • Kubernetes - General Security Practices

    Contains evaluations for general security practices for operating a Kubernetes environment.
    Group
  • Ensure the alert receiver is configured

    In OpenShift Container Platform, an alert is fired when the conditions defined in an alerting rule are true. An alert provides a notification that ...
    Rule Medium Severity
  • Streaming Connection Timeout Options

    Time until connection timeouts. Use (s) for seconds, (m) for minutes, and (h) for hours.
    Value
  • Ensure that a OpenShift OAuth login template or a classification banner is set

    A legal notice must be configured. <br> This is achievable via the OAuth object by creating a custom login page, storing it in a Kubernetes Secret...
    Rule Medium Severity
  • Enable Classification Banner on OpenShift Console

    A classification banner can be configured by creating a Console Notification CRD on OpenShift
    Rule Medium Severity

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