Skip to main content

More Info:

Terminate load balancer traffic over HTTPS using TLS certificates so data in transit to and from the cluster is encrypted.

Risk Level

Medium

Address

Security

Compliance Standards

  • CIS AKS

Triage and Remediation

Remediation

Manual Steps

  1. Inventory all AKS-facing load balancers and ingresses
    • On any machine with Azure CLI access:
      For each cluster:
      If using an ingress controller, review its Service and Ingress definitions via IaC or repo to identify all external entrypoints.
  2. Confirm only HTTPS (TCP/443) is exposed externally
    • For each public IP used by a load balancer/ingress:
    • Verify that:
      • Frontend rules expose port 443 (or custom TLS ports) to clients.
      • Port 80 (HTTP) is either disabled externally or only used for internal HTTP→HTTPS redirects at the application/ingress level.
  3. Verify TLS termination and certificate configuration
    • If using an Azure Application Gateway / AGIC:
      Ensure HTTPS listeners are configured and mapped to the relevant frontend IPs, and HTTP listeners are either disabled or only used for redirects.
    • If using a cloud load balancer with TLS passthrough to ingress: check the ingress controller configuration (Helm values, Terraform, etc.) to confirm TLS termination is enabled and bound to the HTTPS listener.
  4. Review TLS certificate sources, validity, and key management
    • For certificates stored in Azure Key Vault:
    • Confirm:
      • Certificates are valid (not expired, correct CN/SAN for hostnames).
      • Private keys are protected (Key Vault or secure secret store).
      • Automated renewal and reload are configured where possible.
  5. Harden TLS policy and disable weak protocols/ciphers
    • For Application Gateway:
    • Decide whether to:
      • Use a predefined strong policy (e.g., AppGwSslPolicy20170401S) or
      • A custom policy that disables TLS 1.0/1.1 and weak ciphers.
    • Update via console or IaC to enforce the chosen policy across all HTTPS listeners.
  6. Document and, if necessary, implement corrections via console/CLI/IaC; then re-verify
    • Apply required changes in your chosen IaC (ARM/Bicep/Terraform) or Azure portal:
      • Ensure all external listeners use HTTPS with valid certificates.
      • Remove or redirect plain HTTP endpoints.
      • Align all entrypoints with the selected TLS policy.
    • Re-run the evidence-gathering commands from steps 2–5 to confirm that:
      • Only HTTPS endpoints are exposed externally.
      • Certificates and TLS policies match your security requirements.
kubectl cannot configure HTTPS load balancer TLS termination, because this setting is managed in your cloud provider’s load balancer and/or IaC configuration, not via Kubernetes API objects. Make the necessary changes in your cloud console/CLI or IaC definitions, and refer to the Manual Steps section for detailed guidance.