Skip to main content

More Info:

EKS clusters should have a minimum of 3 nodes spread across 3 Availability Zones. Availability Zones are more highly available, fault tolerant, and scalable than traditional single or multiple data center infrastructures.

Risk Level

Low

Address

Reliability, Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • Cloudanix Best Practice
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIS2 Directive
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

To remediate the misconfiguration of EKS Clusters not having high availability in AWS, you can follow the below steps using the AWS console:
  1. Go to the Amazon EKS console.
  2. Select the EKS cluster that you want to remediate.
  3. Click on the “Configuration” tab.
  4. Under the “Networking” section, click on “Edit”.
  5. Ensure that the “Private networking only” option is unchecked.
  6. Under the “High availability” section, click on “Edit”.
  7. Select the “Multiple Availability Zones” option.
  8. Choose the number of availability zones you want to use.
  9. Click on “Save”.
  10. Wait for the changes to propagate.
By following these steps, you can remediate the misconfiguration of EKS Clusters not having high availability in AWS.

To remediate the misconfiguration of EKS clusters not having high availability in AWS using AWS CLI, follow these steps:
  1. Open the AWS CLI and ensure that you have the necessary permissions to make changes to the EKS cluster.
  2. Check if the EKS cluster is currently configured for high availability by running the following command:
    This command will return a boolean value, where true indicates that the EKS cluster is configured for high availability, and false indicates that it is not.
  3. If the EKS cluster is not configured for high availability, you can enable it by modifying the cluster’s endpoint access configuration using the following command:
    This command will modify the EKS cluster’s endpoint access configuration to enable high availability.
  4. Verify that the EKS cluster is now configured for high availability by running the describe-cluster command again and checking the endpointPublicAccess value.
    This command should now return true, indicating that the EKS cluster is configured for high availability.
  5. Repeat these steps for any other EKS clusters that are not configured for high availability.
By following these steps, you can remediate the misconfiguration of EKS clusters not having high availability in AWS using AWS CLI.
To remediate the misconfiguration of EKS Clusters not having high availability in AWS using Python, follow the steps below:
  1. Import the necessary AWS SDK modules in Python:
  1. Create a boto3 EKS client object:
  1. Get the EKS cluster name for which you want to enable high availability:
  1. Check if the EKS cluster is already highly available:
  1. If the EKS cluster is not highly available, update the cluster configuration to enable high availability:
Note: Replace ‘subnet-xxxxxxxx’, ‘subnet-yyyyyyyy’, ‘subnet-zzzzzzzz’ with the IDs of the subnets in which you want to launch your EKS worker nodes. These subnets should be in different availability zones to enable high availability.
  1. Verify that the EKS cluster is now highly available:
With these steps, you can remediate the misconfiguration of EKS clusters not having high availability in AWS using Python.
To scale an existing multi‑AZ node group managed by Terraform instead of creating a new one, update only its scaling_config block so it matches the verified CLI remediation:
Notes:
  • Changing scaling_config does not force replacement of the node group; nodes are scaled in place (but new nodes will be created, incurring cost).
  • Changing subnet_ids on an aws_eks_node_group does force node group replacement, causing node recreation and potential workload disruption if not drained/migrated properly first.
For verification, terraform plan should show:
  • aws_eks_node_group.HA_NODE_GROUP being created with scaling_config min_size = 3, desired_size = 3, max_size = 5 and three subnet_ids in different AZs; or
  • For an existing node group, an in‑place update of scaling_config to min_size = 3, desired_size = 3 with no changes to subnet_ids.

Additional Reading: