AWS: отключить TLS 1.0 и TLS 1.1 на Application LoadBalancer

Автор: | 09/27/2021
 

Если проверить любой AWS Application LoadBalancer с сертификатом из AWS Certificate Manager с настройками HTTPS Listener по-умолчанию — то получим уровень В, что, конечно, не слишком красиво:

Основная «претензия» SSL Labs — поддержка версий TLS 1.0 и 1.1, которые уже считаются устаревшими.

AWS LoadBalancer SecurityPolicy и версии TLS

За поддерживаемые версии SSL/TLS в AWS отвечают SecurityPolicy:

Полный список политик можно найти в документации тут>>>, где мы собственно и видим политику по-умолчанию — ELBSecurityPolicy-2016-08, которая и включает в себя поддержку TLS 1.0/1.1:

Значит для того, что бы отключить поддержку устаревших версий TLS нам надо просто изменить политику, которая подключается к Application LoadBalancer.

Сделаем вручную, и проверим.

Выбираем Listener порта 443, жмём Edit:

Выбираем ELBSecurityPolicy-TLS-1-2-2017-01:

Проверяем SSL Report ещё раз:

Kubernetes и AWS ALB Controller

Если балансировщики нагрузки создаются с помощью AWS Load Balancer Controller, как у нас — то политику можно задать через аннотацию alb.ingress.kubernetes.io/ssl-policy:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  namespace: test-namespace
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}]'
    alb.ingress.kubernetes.io/inbound-cidrs: 0.0.0.0/0
    alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:us-east-2:534***385:certificate/7b594eee-3dc0-424f-a6c0-2c1b14113602"
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
    alb.ingress.kubernetes.io/ssl-policy: "ELBSecurityPolicy-TLS-1-2-2017-01"
...

AWS LoadBalancer и TLS 1.3

А вот TLS 1.3 в AWS на момент написания поста (сентябрь 2021) не завезли. Из ответа тех. поддержки:

Kindly note please that currently, ALB/CLB does not support TLS 1.3, but according to AWS ELB team this is already a very popular feature request for which we have received multiple customer cases.We also have an internal ticket tracking this feature request, and I have added your case as well to the request to add more customer sentiment. Hopefully this will be implemented soon. However, I am not able to provide an ETA at the moment as AWS Support are not privy to development roadmap.

Готово.