Guide to the Secure Configuration of Red Hat OpenShift Container Platform 4
Rules, Groups, and Values defined within the XCCDF Benchmark
-
Verify Permissions on the OVNKubernetes DB files
To properly set the permissions of/var/lib/ovn/etc/*.db
, run the command:$ sudo chmod 0640 /var/lib/ovn/etc/*.db
Rule Medium Severity -
Verify Permissions on the Open vSwitch Configuration Database
To properly set the permissions of/etc/openvswitch/conf.db
, run the command:$ sudo chmod 0640 /etc/openvswitch/conf.db
Rule Medium Severity -
OpenShift API Server
This section contains recommendations for openshift-apiserver configuration.Group -
Verify Permissions on the Open vSwitch Configuration Database Lock
To properly set the permissions of <code>/etc/openvswitch/.conf.db.~lock~</code>, run the command: <pre>$ sudo chmod 0600 /etc/openvswitch/.conf.d...Rule Medium Severity -
Verify Permissions on the Open vSwitch Process ID File
To properly set the permissions of <code>/var/run/openvswitch/ovs-vswitchd.pid</code>, run the command: <pre>$ sudo chmod 0644 /var/run/openvswitc...Rule Medium Severity -
Verify Permissions on the Open vSwitch Persistent System ID
To properly set the permissions of <code>/etc/openvswitch/system-id.conf</code>, run the command: <pre>$ sudo chmod 0644 /etc/openvswitch/system-i...Rule Medium Severity -
Verify Permissions on the Open vSwitch Daemon PID File
To properly set the permissions of <code>/run/openvswitch/ovs-vswitchd.pid</code>, run the command: <pre>$ sudo chmod 0644 /run/openvswitch/ovs-vs...Rule Medium Severity -
Verify Permissions on the Open vSwitch Database Server PID
To properly set the permissions of <code>/run/openvswitch/ovsdb-server.pid</code>, run the command: <pre>$ sudo chmod 0644 /run/openvswitch/ovsdb-...Rule Medium Severity -
Verify Permissions on the Kubernetes Scheduler Pod Specification File
To properly set the permissions of <code>/etc/kubernetes/static-pod-resources/kube-scheduler-pod-*/kube-scheduler-pod.yaml</code>, run the command...Rule Medium Severity -
Verify Permissions on the Kubernetes Scheduler Kubeconfig File
To properly set the permissions of <code>/etc/kubernetes/static-pod-resources/kube-scheduler-pod-*/configmaps/scheduler-kubeconfig/kubeconfig</cod...Rule Medium Severity -
The OpenShift etcd Data Directory Must Have Mode 0700
To properly set the permissions of/var/lib/etcd
, run the command:$ sudo chmod 0700 /var/lib/etcd
Rule Medium Severity -
Verify Permissions on the OpenShift SDN CNI Server Config
To properly set the permissions of <code>/var/run/openshift-sdn/cniserver/config.json</code>, run the command: <pre>$ sudo chmod 0444 /var/run/ope...Rule Medium Severity -
Kubernetes - Network Configuration and Firewalls
Most systems must be connected to a network of some sort, and this brings with it the substantial risk of network attack. This section discusses th...Group -
Verify User Who Owns The OpenShift Node Service File
' To properly set the owner of <code>/etc/systemd/system/kubelet.service</code>, run the command: <pre>$ sudo chown root /etc/systemd/system/ku...Rule Medium Severity -
Ensure that cluster-wide proxy is set
<p> Production environments can deny direct access to the Internet and instead have an HTTP or HTTPS proxy available. </p> ...Rule Medium Severity -
Ensure that the CNI in use supports Network Policies
There are a variety of CNI plugins available for Kubernetes. If the CNI in use does not support Network Policies it may not be possible to effectiv...Rule High Severity -
Ensure that HyperShift Hosted Namespaces have Network Policies defined.
Use network policies to isolate traffic in your cluster network.Rule High Severity -
Ensure that application Namespaces have Network Policies defined.
Use network policies to isolate traffic in your cluster network.Rule High Severity -
Ensure that the default Ingress CA (wildcard issuer) has been replaced
Check that the default Ingress CA has been replaced.Rule Medium Severity -
Ensure that the default Ingress certificate has been replaced
Check that the default Ingress certificate has been replaced.Rule Medium Severity -
Ensure IngressController is configured to use secure tlsSecurityProfile
<p> The configuration <code>tlsSecurityProfile</code> specifies TLS configurations to be used while establishing connections with th...Rule Medium Severity -
Ensure custom tlsSecurityProfile configured for IngressController uses secure TLS version
The configuration <code>tlsSecurityProfile</code> specifies TLS configurations to be used while establishing connections with the externally expose...Rule Medium Severity -
Ensure IngressController is not configured to use Old tlsSecurityProfile
The configuration <code>tlsSecurityProfile</code> specifies TLS configurations to be used while establishing connections with the externally expose...Rule Medium Severity -
Ensure that project templates autocreate Network Policies
Configure a template for newly created projects to use default network policies and make sure this template is referenced from the default project ...Rule Medium Severity -
Ensure that project templates autocreate Network Policies
Configure a template for newly created projects to use default network policies. For more information, follow <a href="https://docs.openshift.com/c...Rule Medium Severity -
Ensure that all Routes has rate limit enabled
OpenShift has an option to set the IP whitelist for Routes [1] when creating new Routes. All routes outside the openshift namespaces and the kube ...Rule Medium Severity -
Ensure that all OpenShift Routes prefer TLS
OpenShift Container Platform provides methods for communicating from outside the cluster with services running in the cluster. TLS must be used to ...Rule Medium Severity -
Configure the OpenShift API Server Maximum Retained Audit Logs
To configure how many rotations of audit logs are retained, edit the <code>openshift-apiserver</code> configmap and set the <code>audit-log-maxback...Rule Low Severity -
Configure OpenShift API Server Maximum Audit Log Size
To rotate audit logs upon reaching a maximum size, edit the <code>openshift-apiserver</code> configmap and set the <code>audit-log-maxsize</code> p...Rule Medium Severity -
Configure the Audit Log Path
To enable auditing on the OpenShift API Server, the audit log path must be set. Edit the <code>openshift-apiserver</code> configmap and set the <co...Rule High Severity -
Role-based Access Control
Role-based access control (RBAC) objects determine whether a user is allowed to perform a given action within a project. Cluster administrators ca...Group -
Ensure cluster roles are defined in the cluster
<p> RBAC is a critical feature in terms of security for Kubernetes and OpenShift. It enables administrators to segment the privilege...Rule Medium Severity -
Profiling is protected by RBAC
Ensure that the cluster-debugger cluster role includes the /debug/pprof resource URL. This demonstrates that profiling is protected by RBAC, with a...Rule Medium Severity -
Ensure that the RBAC setup follows the principle of least privilege
Role-based access control (RBAC) objects determine whether a user is allowed to perform a given action within a project. If users or groups exist ...Rule High Severity -
Ensure that the cluster-admin role is only used where required
The RBAC role cluster-admin provides wide-ranging powers over the environment and should be used only where and when needed.Rule Medium Severity -
Limit Access to Kubernetes Secrets
The Kubernetes API stores secrets, which may be service account tokens for the Kubernetes API or credentials used by workloads in the cluster. Acce...Rule Medium Severity -
Ensure that the ClusterLogging and ClusterLoggingForwarder resources are protected from unauthorized deletion
The ClusterLogging and ClusterLoggingForwarder Custom Resources provide a way to configure the logging forwarding subsystem and delete access to i...Rule Medium Severity -
Ensure that the ClusterLogging and ClusterLoggingForwarder resources are protected from unauthorized modification
The ClusterLogging and ClusterLoggingForwarder Custom Resources provide a way to configure the logging forwarding subsystem and modification acces...Rule Medium Severity -
Ensure that the ClusterLogging and ClusterLoggingForwarder resources are protected from unauthorized access
The ClusterLogging and ClusterLoggingForwarder Custom Resources provide a way to configure the logging forwarding subsystem and view access to it ...Rule Medium Severity -
Minimize Access to Pod Creation
The ability to create pods in a namespace can provide a number of opportunities for privilege escalation. Where applicable, remove <code>create</co...Rule Medium Severity -
Ensure roles are defined in the cluster
<p> RBAC is a critical feature in terms of security for Kubernetes and OpenShift. It enables administrators to segment the privilege...Rule Medium Severity -
Minimize Wildcard Usage in Cluster and Local Roles
Kubernetes Cluster and Local Roles provide access to resources based on sets of objects and actions that can be taken on those objects. It is possi...Rule Medium Severity -
Kubernetes - Registry Security Practices
Contains evaluations for Kubernetes registry security practices, and cluster-wide registry configuration.Group -
Limit Access to the Host IPC Namespace
Containers should not be allowed access to the host's Interprocess Communication (IPC) namespace. To prevent containers from getting access to a ho...Rule Medium Severity -
Configure ImagePruner so that images that are no longer needed are automatically removed
<p> Images from the internal registry that are no longer required by the system due to age, status, or exceed limits are automatical...Rule Medium Severity -
All configured ImageStreams are configured to periodically check for updates
<p> The configuration <code>imagestream.spec.tags.importPolicy.scheduled</code> determines whether the imagestream is configured to ...Rule Medium Severity -
Allowed registries are configured
The configuration <code>registrySources.allowedRegistries</code> determines the permitted registries that the OpenShift container runtime can acces...Rule Medium Severity -
Allowed registries for import are configured
The configuration <code>allowedRegistriesForImport</code> limits the container image registries from which normal users may import images. This is ...Rule Medium Severity -
Check configured allowed registries for import uses secure protocol
The configuration <code>allowedRegistriesForImport</code> limits the container image registries from which normal users may import images. This is ...Rule Medium Severity -
Check if any insecure registry sources is configured
The configuration <code>registrySources.insecureRegistries</code> determines the insecure registries that the OpenShift container runtime can acces...Rule Medium Severity
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.