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 ContainersRule 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
Enabledefault
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 descriptionRule Medium Severity -
This is a helper rule to fetch the required api resource for detecting OCP version
no descriptionRule 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 commaValue -
Configure Kubelet use of the Strong Cryptographic Ciphers
Cryptographic Ciphers Available for KubeletValue -
Configure Kubelet to use secure TLS version
Secure version of TLS available for configuring KubeletValue -
Configure Kubelet to use secure TLS version
TLS versions available for configuring Kubelet, excluding insecure versionsValue
Node 2
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.