Definition of CIS Red Hat OpenShift Container Platform 4 Benchmark for ocp4
based on https://www.cisecurity.org/benchmark/kubernetes
4.1.1: Ensure that the kubelet service file permissions are set to 644 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
4.1.2: Ensure that the kubelet service file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
4.1.3: If proxy kube proxy configuration file exists ensure permissions are set to 644 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
4.1.4: If proxy kubeconfig file exists ensure ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
4.1.5: Ensure that the --kubeconfig kubelet.conf file permissions are set to 644 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
4.1.6: Ensure that the --kubeconfig kubelet.conf file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
4.1.7: Ensure that the certificate authorities file permissions are set to 644 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
4.1.8: Ensure that the client certificate authorities file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
4.1.9: Ensure that the kubelet --config configuration file has permissions set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
4.1.10: Ensure that the kubelet configuration file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
4.1: Worker Node Configuration Files
Description: None
Levels:
Automated: no
Selections:
4.2.1: Activate Garbage collection in OpenShift Container Platform 4, as appropriate
Description: None
Levels:
Automated: yes
Selections:
4.2.2: Ensure that the --anonymous-auth argument is set to false
Description: None
Levels:
Automated: yes
Selections:
4.2.3: Ensure that the --authorization-mode argument is not set to AlwaysAllow
Description: None
Levels:
Automated: yes
Selections:
4.2.4: Ensure that the --client-ca-file argument is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
4.2.5: Verify that the read only port is not used or is set to 0
Description: None
Levels:
Automated: yes
Selections:
4.2.6: Ensure that the --streaming-connection-idle-timeout argument is not set to 0
Description: None
Levels:
Automated: yes
Selections:
4.2.7: Ensure that the --make-iptables-util-chains argument is set to true
Description: None
Levels:
Automated: yes
Selections:
4.2.8: Ensure that the kubeAPIQPS [--event-qps] argument is set to 0 or a level which ensures appropriate event capture
Description: None
Levels:
Automated: yes
Selections:
4.2.9: Ensure that the --tls-cert-file and --tls-private-key-file arguments are set as appropriate
Description: None
Levels:
Automated: yes
Selections:
4.2.10: Ensure that the --rotate-certificates argument is not set to false
Description: None
Levels:
Automated: yes
Selections:
4.2.11: Verify that the RotateKubeletServerCertificate argument is set to true
Description: None
Levels:
Automated: yes
Selections:
4.2.12: Ensure that the Kubelet only makes use of Strong Cryptographic Ciphers
Description: None
Levels:
Automated: yes
Selections:
4.2: Kubelet
Description: None
Levels:
Automated: no
Selections:
4: Worker Nodes
Description: None
Levels:
Automated: no
Selections:
5.1.1: Ensure that the cluster-admin role is only used where required
Description: None
Levels:
Automated: no
Selections:
5.1.2: Minimize access to secrets
Description: None
Levels:
Automated: no
Selections:
5.1.3: Minimize wildcard use in Roles and ClusterRoles
Description: None
Levels:
Automated: no
Selections:
5.1.4: Minimize access to create pods
Description: None
Levels:
Automated: no
Selections:
5.1.5: Ensure that default service accounts are not actively used.
Description: None
Levels:
Automated: no
Selections:
5.1.6: Ensure that Service Account Tokens are only mounted where necessary
Description: None
Levels:
Automated: no
Selections:
5.1: RBAC and Service Accounts
Description: None
Levels:
Automated: no
Selections:
5.2.1: Minimize the admission of privileged containers
Description: None
Levels:
Automated: no
Selections:
5.2.2: Minimize the admission of containers wishing to share the host process ID namespace
Description: None
Levels:
Automated: no
Selections:
5.2.3: Minimize the admission of containers wishing to share the host IPC namespace
Description: None
Levels:
Automated: no
Selections:
5.2.4: Minimize the admission of containers wishing to share the host network namespace
Description: None
Levels:
Automated: no
Selections:
5.2.5: Minimize the admission of containers with allowPrivilegeEscalation
Description: None
Levels:
Automated: no
Selections:
5.2.6: Minimize the admission of root containers
Description: None
Levels:
Automated: no
Selections:
5.2.7: Minimize the admission of containers with the NET_RAW capability
Description: None
Levels:
Automated: no
Selections:
5.2.8: Minimize the admission of containers with added capabilities
Description: None
Levels:
Automated: yes
Selections:
5.2.9: Minimize the admission of containers with capabilities assigned
Description: None
Levels:
Automated: no
Selections:
5.2.10: Minimize access to privileged Security Context Constraints
Description: None
Levels:
Automated: no
Selections:
5.2: Security Context Constraints
Description: None
Levels:
Automated: no
Selections:
5.3.1: Ensure that the CNI in use supports Network Policies
Description: None
Levels:
Automated: yes
Selections:
5.3.2: Ensure that all Namespaces have Network Policies defined
Description: None
Levels:
Automated: no
Selections:
5.3: Network Policies and CNI
Description: None
Levels:
Automated: no
Selections:
5.4.1: Prefer using secrets as files over secrets as environment variables
Description: None
Levels:
Automated: no
Selections:
5.4.2: Consider external secret storage
Description: None
Levels:
Automated: no
Selections:
5.4: Secrets Management
Description: None
Levels:
Automated: no
Selections:
5.5.1: Configure Image Provenance using image controller configuration parameters
Description: None
Levels:
Automated: yes
Selections:
5.5: Extensible Admission Control
Description: None
Levels:
Automated: yes
Selections:
5.7.1: Create administrative boundaries between resources using namespaces
Description: None
Levels:
Automated: no
Selections:
5.7.2: Ensure that the seccomp profile is set to docker/default in your pod definitions
Description: None
Levels:
Automated: no
Selections:
5.7.3: Apply Security Context to Your Pods and Containers
Description: None
Levels:
Automated: no
Selections:
5.7.4: The default namespace should not be used
Description: None
Levels:
Automated: no
Selections:
5.7: General Policies
Description: None
Levels:
Automated: no
Selections:
5: Policies
Description: None
Levels:
Automated: no
Selections:
2.1: Ensure that the --cert-file and --key-file arguments are set as appropriate
Description: None
Levels:
Automated: yes
Selections:
2.2: Ensure that the --client-cert-auth argument is set to true
Description: None
Levels:
Automated: yes
Selections:
2.3: Ensure that the --auto-tls argument is not set to true
Description: None
Levels:
Automated: yes
Selections:
2.4: Ensure that the --peer-cert-file and --peer-key-file arguments are set as appropriate
Description: None
Levels:
Automated: yes
Selections:
2.5: Ensure that the --peer-client-cert-auth argument is set to true
Description: None
Levels:
Automated: yes
Selections:
2.6: Ensure that the --peer-auto-tls argument is not set to true
Description: None
Levels:
Automated: yes
Selections:
2.7: Ensure that a unique Certificate Authority is used for etcd
Description: None
Levels:
Automated: yes
Selections:
2: etcd
Description: None
Levels:
Automated: no
Selections:
3.1.1: Client certificate authentication should not be used for users
Description: None
Levels:
Automated: yes
Selections:
3.1: Authentication and Authorization
Description: None
Levels:
Automated: yes
Selections:
3.2.1: Ensure that a minimal audit policy is created
Description: None
Levels:
Automated: yes
Selections:
3.2.2: Ensure that the audit policy covers key security concerns
Description: None
Levels:
Automated: yes
Selections:
3.2: Logging
Description: None
Levels:
Automated: yes
Selections:
3: Control Plane Configuration
Description: None
Levels:
Automated: no
Selections:
1.1.1: Ensure that the API server pod specification file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.2: Ensure that the API server pod specification file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.3: Ensure that the controller manager pod specification file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.4: Ensure that the controller manager pod specification file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.5: Ensure that the scheduler pod specification file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.6: Ensure that the scheduler pod specification file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.7: Ensure that the etcd pod specification file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.8: Ensure that the etcd pod specification file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.9: Ensure that the Container Network Interface file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.10: Ensure that the Container Network Interface file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.11: Ensure that the etcd data directory permissions are set to 700 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.12: Ensure that the etcd data directory ownership is set to etcd:etcd
Description: None
Levels:
Automated: yes
Selections:
1.1.13: Ensure that the kubeconfig file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.14: Ensure that the kubeconfig file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.15: Ensure that the Scheduler kubeconfig file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.16: Ensure that the Scheduler kubeconfig file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.17: Ensure that the Controller Manager kubeconfig file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.18: Ensure that the Controller Manager kubeconfig file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.19: Ensure that the OpenShift PKI directory and file ownership is set to root:root
Description: None
Levels:
Automated: yes
Selections:
1.1.20: Ensure that the OpenShift PKI certificate file permissions are set to 600 or more restrictive
Description: None
Levels:
Automated: yes
Selections:
1.1.21: Ensure that the OpenShift PKI key file permissions are set to 600
Description: None
Levels:
Automated: yes
Selections:
1.1: Master Node Configuration Files
Description: None
Levels:
Automated: yes
Selections:
1.2.1: Ensure that anonymous requests are authorized
Description: None
Levels:
Automated: yes
Selections:
1.2.2: Ensure that the --basic-auth-file argument is not set
Description: None
Levels:
Automated: yes
Selections:
1.2.3: Ensure that the --token-auth-file parameter is not set
Description: None
Levels:
Automated: yes
Selections:
1.2.4: Use https for kubelet connections
Description: None
Levels:
Automated: yes
Selections:
1.2.5: Ensure that the kubelet uses certificates to authenticate
Description: None
Levels:
Automated: yes
Selections:
1.2.6: Verify that the kubelet certificate authority is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.7: Ensure that the --authorization-mode argument is not set to AlwaysAllow
Description: None
Levels:
Automated: yes
Selections:
1.2.8: Verify that RBAC is enabled
Description: None
Levels:
Automated: yes
Selections:
1.2.9: Ensure that the APIPriorityAndFairness feature gate is enabled
Description: None
Levels:
Automated: no
No rules selected
1.2.10: Ensure that the admission control plugin AlwaysAdmit is not set
Description: None
Levels:
Automated: yes
Selections:
1.2.11: Ensure that the admission control plugin AlwaysPullImages is not set
Description: None
Levels:
Automated: yes
Selections:
1.2.12: Ensure that the admission control plugin ServiceAccount is set
Description: None
Levels:
Automated: yes
Selections:
1.2.13: Ensure that the admission control plugin NamespaceLifecycle is set
Description: None
Levels:
Automated: yes
Selections:
1.2.14: Ensure that the admission control plugin SecurityContextConstraint is set
Description: None
Levels:
Automated: yes
Selections:
1.2.15: Ensure that the admission control plugin NodeRestriction is set
Description: None
Levels:
Automated: yes
Selections:
1.2.16: Ensure that the --insecure-bind-address argument is not set
Description: None
Levels:
Automated: yes
Selections:
1.2.17: Ensure that the --insecure-port argument is set to 0
Description: None
Levels:
Automated: no
No rules selected
1.2.18: Ensure that the --secure-port argument is not set to 0
Description: None
Levels:
Automated: yes
Selections:
1.2.19: Ensure that the healthz endpoint is protected by RBAC
Description: None
Levels:
Automated: yes
Selections:
1.2.20: Ensure that the --audit-log-path argument is set
Description: None
Levels:
Automated: yes
Selections:
1.2.21: Ensure that the audit logs are forwarded off the cluster for retention
Description: None
Levels:
Automated: yes
Selections:
1.2.22: Ensure that the maximumRetainedFiles argument is set to 10 or as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.23: Ensure that the maximumFileSizeMegabytes argument is set to 100
Description: None
Levels:
Automated: yes
Selections:
1.2.24: Ensure that the --request-timeout argument is set
Description: None
Levels:
Automated: yes
Selections:
1.2.25: Ensure that the --service-account-lookup argument is set to true
Description: None
Levels:
Automated: yes
Selections:
1.2.26: Ensure that the --service-account-key-file argument is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.27: Ensure that the --etcd-certfile and --etcd-keyfile arguments are set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.28: Ensure that the --tls-cert-file and --tls-private-key-file arguments are set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.29: Ensure that the --client-ca-file argument is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.30: Ensure that the --etcd-cafile argument is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.2.31: Ensure that encryption providers are appropriately configured
Description: None
Levels:
Automated: yes
Selections:
1.2.32: Ensure that the API Server only makes use of Strong Cryptographic Ciphers
Description: None
Levels:
Automated: yes
Selections:
1.2.33: Ensure unsupported configuration overrides are not used
Description: None
Levels:
Automated: no
No rules selected
1.2: API Server
Description: None
Levels:
Automated: no
Selections:
1.3.1: Ensure that controller manager healthz endpoints are protected by RBAC
Description: None
Levels:
Automated: yes
Selections:
1.3.2: Ensure that the --use-service-account-credentials argument is set to true
Description: None
Levels:
Automated: yes
Selections:
1.3.3: Ensure that the --service-account-private-key-file argument is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.3.4: Ensure that the --root-ca-file argument is set as appropriate
Description: None
Levels:
Automated: yes
Selections:
1.3.5: Ensure that the --bind-address argument is set to 127.0.0.1
Description: None
Levels:
Automated: yes
Selections:
1.3: Controller Manager
Description: None
Levels:
Automated: no
Selections:
1.4.1: Ensure that the healthz endpoints for the scheduler are protected by RBAC
Description: None
Levels:
Automated: yes
Selections:
1.4.2: Verify that the scheduler API service is protected by RBAC
Description: None
Levels:
Automated: yes
Selections:
1.4: Scheduler
Description: None
Levels:
Automated: yes
Selections:
1: Control Plane Components
Description: None
Levels:
Automated: no
Selections: