Guide to the Secure Configuration of Amazon Elastic Kubernetes Service
Rules, Groups, and Values defined within the XCCDF Benchmark
-
kubelet - Enable Certificate Rotation
To enable the kubelet to rotate client certificates, edit the kubelet configuration file <code>/etc/kubernetes/kubelet/kubelet-config.json</code> o...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/kubelet-config.json</code> o...Rule Medium Severity -
kubelet - Enable Protect Kernel Defaults
Protect tuned kernel parameters from being overwritten by the kubelet.
Rule Medium Severity -
kubelet - Do Not Disable Streaming Timeouts
Timouts for streaming connections should not be disabled as they help to prevent denial-of-service attacks. To configure streaming connection timeo...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 time...Rule Medium Severity -
kubelet - Ensure that the --read-only-port is secured
Disable the read-only port.Rule Medium Severity -
OpenShift - Logging Settings
Contains evaluations for the cluster's logging configuration settings.Group -
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 -
Ensure Audit Logging is Enabled
The audit logs are part of the EKS managed Kubernetes control plane logs that are managed by Amazon EKS. Amazon EKS is integrated with AWS CloudTra...Rule Unknown 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 -
Ensure that application Namespaces have Network Policies defined.
Use network policies to isolate traffic in your cluster network.Rule High Severity -
Ensure Network Policy is Enabled
Use Network Policy to restrict pod to pod traffic within a cluster and segregate workloads.Rule Unknown Severity -
Encrypt Traffic to Load Balancers and Workloads
Encrypt traffic to HTTPS load balancers using TLS certificates.Rule Unknown Severity -
Restrict Access to the Control Plane Endpoint
Enable Endpoint Private Access to restrict access to the cluster's control plane to only an allowlist of authorized IPs.Rule Unknown Severity -
Ensure Private Endpoint Access
Disable access to the Kubernetes API from outside the node network if it is not required.Rule Unknown Severity -
Ensure Cluster Private Nodes
Disable public IP addresses for cluster nodes, so that they only have private IP addresses. Private Nodes are nodes with no public IP addresses.Rule Unknown Severity -
Kubernetes - Registry Security Practices
Contains evaluations for Kubernetes registry security practices, and cluster-wide registry configuration.Group -
Only use approved container registries
Use approved container registries.Rule Unknown Severity -
Ensure Image Vulnerability Scanning
Scan images being deployed to Amazon EKS for vulnerabilities.Rule Unknown Severity -
Ensure Cluster Service Account with read-only access to Amazon ECR
Configure the Cluster Service Account with Storage Object Viewer Role to only allow read- only access to Amazon ECR.Rule Unknown Severity -
Minimize user access to Amazon ECR
Restrict user access to Amazon ECR, limiting interaction with build images to only authorized personnel and service accounts.Rule Unknown Severity -
Kubernetes Secrets Management
Secrets let you store and manage sensitive information, such as passwords, OAuth tokens, and ssh keys. Such information might otherwise be put in a...Group -
Ensure Kubernetes Secrets are Encrypted
Encrypt Kubernetes secrets, stored in etcd, using secrets encryption feature during Amazon EKS cluster creation.Rule Unknown Severity -
Kubernetes - Worker Node Settings
Contains evaluations for the worker node configuration settings.Group -
Verify Group Who Owns The Kubelet Configuration File
To properly set the group owner of <code>/etc/kubernetes/kubelet/kubelet-config.json</code>, run the command: <pre>$ sudo chgrp root /etc/kubernet...Rule Medium Severity -
Verify Group Who Owns The Worker Kubeconfig File
To properly set the group owner of <code>/var/lib/kubelet/kubeconfig</code>, run the command: <pre>$ sudo chgrp root /var/lib/kubelet/kubeconfig</...Rule Medium Severity -
Verify User Who Owns The Kubelet Configuration File
To properly set the owner of <code>/etc/kubernetes/kubelet/kubelet-config.json</code>, run the command: <pre>$ sudo chown root /etc/kubernetes/kub...Rule Medium Severity -
Verify User Who Owns The Worker Kubeconfig File
To properly set the owner of/var/lib/kubelet/kubeconfig
, run the command:$ sudo chown root /var/lib/kubelet/kubeconfig
Rule Medium Severity -
Verify Permissions on The Kubelet Configuration File
To properly set the permissions of <code>/etc/kubernetes/kubelet/kubelet-config.json</code>, run the command: <pre>$ sudo chmod 0644 /etc/kubernet...Rule Medium Severity -
Verify Permissions on the Worker Kubeconfig File
To properly set the permissions of <code>/var/lib/kubelet/kubeconfig</code>, run the command: <pre>$ sudo chmod 0644 /var/lib/kubelet/kubeconfig</...Rule Medium Severity -
System and Software Integrity
System and software integrity can be gained by installing antivirus, increasing system encryption strength with FIPS, verifying installed software,...Group -
System Cryptographic Policies
OpenShift has the capability to centrally configure cryptographic polices.Group -
OpenShift Kube API Server
This section contains recommendations for kube-apiserver configuration.Group -
API Server Request Timeout
Enter API Server Request TimeoutValue -
API Server audit log max size
API Server audit log max sizeValue -
Bind Address of secure API endpoint
Bind Address of secure API endpointValue -
OpenShift Kube APIServer client CA
OpenShift Kube APIServer client CAValue -
OpenShift APIServer etcd encryption filter
OpenShift APIServer etcd encryption config check jq filterValue -
OpenShift APIServer etcd encryption path
OpenShift APIServer etcd encryption config check api pathValue -
OpenShift APIServer etcd encryption type
OpenShift APIServer etcd encryption provider type to use for remediation. This variable is only applicable to remediations, and does not affect che...Value -
OpenShift Kube APIServer etcd CA
OpenShift Kube APIServer etcd CAValue -
OpenShift Kube APIServer kubelet certificate authority
OpenShift Kube APIServer kubelet certificate authorityValue -
OpenShift Kube APIServer kubelet client cert
OpenShift Kube APIServer kubelet client certValue -
OpenShift Kube APIServer kubelet client key
OpenShift Kube APIServer kubelet client keyValue -
OpenShift Kube APIServer TLS cert
OpenShift Kube APIServer TLS certValue -
OpenShift Kube APIServer TLS private key
OpenShift Kube APIServer TLS private keyValue -
OpenShift API Server config name
OpenShift API Server config nameValue -
OpenShift APIServer etcd encryption filter
OpenShift APIServer etcd encryption config check jq filterValue -
OpenShift APIServer namespace
OpenShift APIServer namespaceValue -
OpenShift Kube API Server config name
OpenShift Kube API Server config nameValue
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.