Skip to main content

More Info:

Encrypt traffic to HTTPS load balancers using TLS certificates.

Risk Level

Low

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • AWS Startup Security Baseline
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CIS EKS
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • Securities and Exchange Board of India (SEBI) - Cloud Security Adoption Framework
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Manual Steps

  1. Inventory all external load balancers
    • On any machine with access to your cloud CLI, list load balancers fronting Kubernetes services / APIs:
      • AWS (ELB/NLB/ALB):
      • GCP (GCLB):
      • Azure (ALB):
    • Correlate these with Kubernetes Services of type LoadBalancer (run from any machine with kubectl configured):
  2. Identify which listeners are using HTTPS/TLS vs plaintext
    • For each external load balancer identified, inspect its listeners:
      • AWS:
        Check Protocol (must be HTTPS or TLS, not HTTP or TCP for HTTP apps).
      • GCP:
        Ensure public-facing rules use target-https-proxies, not target-http-proxies.
      • Azure:
        For Application Gateway/WAF:
        Verify listeners are Https.
  3. Verify TLS certificate presence and validity
    • For each HTTPS/TLS listener, confirm a certificate is configured and valid:
      • AWS:
      • GCP:
      • Azure:
    • Check certificate CN/SAN matches the public hostname, is not expired, and is issued by a trusted CA.
  4. Reconfigure non-encrypted or misconfigured listeners to use HTTPS with TLS
    • For any public-facing endpoint using HTTP/plaintext, change it to HTTPS and attach a valid certificate using your provider’s documented steps (console, CLI, or IaC). Examples (adapt to your environment):
      • AWS – switch an ALB listener to HTTPS:
      • GCP – create HTTPS proxy and bind certificate:
      • Azure – configure HTTPS listener on Application Gateway:
  5. Enforce HTTPS-only access and redirect HTTP if needed
    • For endpoints that must remain reachable on HTTP for legacy reasons, configure an HTTP listener only to redirect to HTTPS (provider-specific redirect rules).
    • Ensure security groups / firewall rules only expose HTTPS ports (e.g., 443) externally where feasible:
      • AWS example:
        Review rules allowing 0.0.0.0/0 on ports 80/443 and restrict HTTP where possible.
  6. Verify remediation and document the decision
    • Re-run the earlier listing commands to confirm all public-facing load balancer listeners are HTTPS/TLS and have certificates attached.
    • Optionally, test from a client:
      Confirm SSL connection using is shown and no certificate errors occur.
    • Record which endpoints are intentionally HTTP (if any), with risk justification and planned migration path to TLS.
kubectl cannot configure TLS or HTTPS on cloud load balancers; this must be done in your cloud provider’s load balancer or ingress configuration (console, CLI, or IaC). Refer to the Manual Steps section for provider‑specific guidance on enabling TLS and attaching certificates to your HTTPS load balancers.

Additional Reading: