Skip to main content

More Info:

Configure HTTPS load balancers with TLS certificates so that traffic to the cluster is encrypted in transit.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS EKS

Triage and Remediation

Remediation

Manual Steps

  1. Inventory all external-facing load balancers
    • On any machine with cloud CLI access, list load balancers that front your EKS cluster (adjust region):
    • AWS:
    • From each returned LB, identify those used by the cluster (via tags or target groups):
  2. Determine listener protocols and TLS configuration
    • For each Application/Network Load Balancer ARN:
      Review each listener: confirm that internet-facing listeners use Protocol: HTTPS (or TLS for NLB) with a certificate (SslPolicy and Certificates set).
    • For each Classic Load Balancer name:
      Confirm at least one Listener has Protocol: HTTPS and SSLCertificateId set.
  3. Verify certificates and TLS policies
    • For each HTTPS/TLS listener, list the referenced certificate from ACM:
      Ensure:
      • Certificate is ISSUED, not expired, and covers the LB DNS name or custom domain.
      • SslPolicy on listeners is a modern one (e.g., ELBSecurityPolicy-TLS13-1-2-Ext1-2021-06 or similar per your security standard).
  4. Remediate non-encrypted or misconfigured listeners
    • For any internet-facing listener using HTTP/TCP without TLS:
      • Create or import a valid certificate in ACM (if not already present).
      • Modify or add an HTTPS/TLS listener and (optionally) redirect HTTP to HTTPS:
    • For Classic ELB:
  5. Update IaC definitions (if used)
    • In Terraform/CloudFormation/CDK, ensure:
      • aws_lb_listener / AWS::ElasticLoadBalancingV2::Listener uses HTTPS/TLS with ACM certificate ARNs and secure SSL policies.
      • Any HTTP listener has a redirect action to HTTPS.
    • Re-apply your IaC so the configuration is managed declaratively and not drift-prone.
  6. Verification (post-change)
    • Re-run listener inspection to confirm only HTTPS/TLS is exposed externally and certificates are attached:
    • From a client, test that the endpoint negotiates TLS and matches the expected certificate:
kubectl cannot be used to configure TLS on HTTPS load balancers, because this setting is managed at the cloud provider / managed control-plane level (console, cloud CLI, or IaC). To remediate this finding, follow the provider-specific guidance in the Manual Steps section for configuring TLS certificates on your load balancers.