Guide to the Secure Configuration of Red Hat OpenShift Container Platform 4
Rules, Groups, and Values defined within the XCCDF Benchmark
-
Ensure That The kubelet Server Key Is Correctly Set
To ensure the kubelet TLS private server key certificate is configured, edit the kubelet configuration file <code>/etc/kubernetes/kubelet.conf</code> and configure the kubelet private key file. <pr...Rule Medium Severity -
Ensure that the Kubelet only makes use of Strong Cryptographic Ciphers
Ensure that the Kubelet is configured to only use strong cryptographic ciphers. To set the cipher suites for the kubelet, create new or modify existing <code>KubeletConfig</code> object along these...Rule Medium Severity -
Ensure that the Ingress Controller only makes use of Strong Cryptographic Ciphers
Ensure that the Ingress Controller is configured to only use strong cryptographic ciphers.Rule Medium Severity -
Ensure that the Kubernetes API Server Operator only makes use of Strong Cryptographic Ciphers
Ensure that the Kubernetes API Server Operator is configured to only use strong cryptographic ciphers.Rule Medium Severity -
Ensure that the OpenShift API Server Operator only makes use of Strong Cryptographic Ciphers
Ensure that the OpenShift API Server Operator is configured to only use strong cryptographic ciphers.Rule Medium Severity -
Ensure Kubelet is configured with allowed TLS versions
<p> The configuration <code>tlsSecurityProfile</code> specifies TLS configurations to be used while establishing connections with the externally exposed servers. Though secure transp...Rule Medium Severity -
kubelet - Hostname Override handling
Normally, OpenShift lets the kubelet get the hostname from either the cloud provider itself, or from the node's hostname. This ensures that the PKI allocated by the deployment uses the appropriate ...Rule Low Severity -
Configure the OpenShift Audit Profile
Audit log profiles define how to log requests that come to the OpenShift API server, the Kubernetes API server, and the OAuth API server.Value -
kubelet - Enable Certificate Rotation
To enable the kubelet to rotate client certificates, edit the kubelet configuration file <code>/etc/kubernetes/kubelet.conf</code> on the kubelet node(s) and set the below parameter: <pre> ... rota...Rule Medium Severity -
kubelet - Enable Client Certificate Rotation
To enable the kubelet to rotate client certificates, edit the kubelet configuration file <code>/etc/kubernetes/kubelet.conf</code> on the kubelet node(s) and set the below parameter: <pre> featureG...Rule Medium Severity -
kubelet - Do Not Disable Streaming Timeouts
Timeouts for streaming connections should not be disabled as they help to prevent denial-of-service attacks. To configure streaming connection timeouts, edit the kubelet configuration file <code>/e...Rule Medium Severity -
kubelet - Ensure that the --read-only-port is secured
Disable the read-only port.Rule Medium Severity -
Ensure that Audit Log Forwarding Uses TLS
<p> 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 audit logs off the cluster for r...Rule Medium Severity -
Verify User Who Owns The OpenShift SDN Container Network Interface Plugin IP Address Allocations
To properly set the owner of/var/lib/cni/networks/openshift-sdn/.*
, run the command:$ sudo chown root /var/lib/cni/networks/openshift-sdn/.*
Rule Medium Severity -
Verify User Who Owns The OpenShift Admin Kubeconfig Files
To properly set the owner of <code>/etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/node-kubeconfigs/*.kubeconfig</code>, run the command: <pre>$ sudo chown root /etc/kubernetes/s...Rule Medium Severity -
Verify User Who Owns The OpenShift PKI Private Key Files
To properly set the owner of/etc/kubernetes/static-pod-resources/*/*/*/*.key
, run the command:$ sudo chown root /etc/kubernetes/static-pod-resources/*/*/*/*.key
Rule Medium Severity -
Verify User Who Owns The OpenShift SDN CNI Server Config
To properly set the owner of/var/run/openshift-sdn/cniserver/config.json
, run the command:$ sudo chown root /var/run/openshift-sdn/cniserver/config.json
Rule Medium Severity -
Verify User Who Owns The Kubernetes Scheduler Kubeconfig File
To properly set the owner of <code>/etc/kubernetes/static-pod-resources/kube-scheduler-pod-*/configmaps/scheduler-kubeconfig/kubeconfig</code>, run the command: <pre>$ sudo chown root /etc/kuberne...Rule Medium Severity -
Verify Permissions on the Etcd Member Pod Specification File
To properly set the permissions of/etc/kubernetes/manifests/etcd-pod.yaml
, run the command:$ sudo chmod 0600 /etc/kubernetes/manifests/etcd-pod.yaml
Rule Medium Severity -
Verify Permissions on the Kube Scheduler Pod Specification File
To properly set the permissions of <code>/etc/kubernetes/static-pod-resources/kube-scheduler-pod.yaml</code>, run the command: <pre>$ sudo chmod 0600 /etc/kubernetes/static-pod-resources/kube-sche...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.