More Info:
Terminate load balancer traffic over HTTPS using TLS certificates so data in transit to and from the cluster is encrypted.Risk Level
MediumAddress
SecurityCompliance Standards
- CIS AKS
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
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.
- On any machine with Azure CLI access:
-
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.
- For each public IP used by a load balancer/ingress:
-
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.
- If using an Azure Application Gateway / AGIC:
-
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.
- For certificates stored in Azure Key Vault:
-
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.
- Use a predefined strong policy (e.g.,
- Update via console or IaC to enforce the chosen policy across all HTTPS listeners.
- For Application Gateway:
-
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.
- Apply required changes in your chosen IaC (ARM/Bicep/Terraform) or Azure portal:
Using kubectl
Using kubectl
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.
Automation
Automation

