Sobes.tech
Senior

Ako zorganizovať vyváženie záťaže medzi viacerými hostiteľmi pomocou mTLS? Ako funguje mTLS pri prítomnosti load balancera vo vašej infraštruktúre?

sobes.tech AI

Odpoveď od AI

mTLS (Mutual TLS) обеспечивает взаимную аутентификацию клиента и сервера с помощью сертификатов. При балансировке нагрузки с использованием mTLS есть несколько вариантов организации:

  1. Балансировщик как TLS терминатор:

    • Балансировщик принимает TLS-соединения от клиентов, проверяет клиентские сертификаты (mTLS), а затем устанавливает отдельное TLS-соединение с backend-серверами.
    • В этом случае балансировщик выступает как точка проверки mTLS, а backend-сервера могут работать без mTLS или с обычным TLS.
  2. Прозрачный балансировщик (TCP-level):

    • Балансировщик просто проксирует TCP-соединения, не вмешиваясь в TLS.
    • В этом случае mTLS устанавливается напрямую между клиентом и backend-сервером, балансировщик не видит сертификаты.
  3. Балансировщик с пробросом сертификатов:

    • Некоторые балансировщики могут передавать информацию о клиентском сертификате backend-серверам через заголовки или специальные механизмы.

При организации mTLS с балансировщиком важно:

  • Определить, на каком уровне происходит проверка сертификатов.
  • Настроить доверенные CA на балансировщике и backend-серверах.
  • Убедиться, что балансировщик корректно обрабатывает или проксирует TLS-сессии.

Например, в Kubernetes с ingress-контроллером можно настроить mTLS на уровне ingress, а backend-сервера принимать уже проверённые запросы.

Таким образом, mTLS при наличии балансировщика может работать либо на уровне балансировщика (терминация TLS), либо напрямую между клиентом и сервером, в зависимости от архитектуры.