¿Debería un administrador aplicar HTTPS dentro de la red de Kubernetes o solo para el tráfico externo (a través de la entrada)?

¿Debería un administrador aplicar HTTPS dentro de la red de Kubernetes o solo para el tráfico externo (a través de la entrada)?

En un escenario de microservicios, cada contenedor de API web debe servirse a sí mismo a través de HTTPS o ¿está bien trabajar internamente a través de HTTP y tener todas las entradas configuradas con certificados y redireccionando al puerto 80 de los contenedores?

Creo que el enfoque más sencillo es proteger solo el tráfico externo, porque para configurar una WebAPI Asp.Net Core para que se sirva a sí misma (kestrel) a través de HTTPS (por ejemplo), debe montar el certificado en un volumen y proporcionar la contraseña del certificado. Es un poco complicado.

cual es la mejor practica?

Respuesta1

Depende de requisitos y recursos, si tienes On-Prem o baremetal, etc.

No hay requisitos para asegurar el tráfico

Si no existen requisitos relacionados con la protección del tráfico del cliente dentro del clúster, puede finalizar SSLla conexión del cliente ingress-controllery su uso HTTPentre los Pods.

Requisitos seguros

Si es necesario proteger el tráfico del cliente al pod destinado, se puede obtener de dos maneras.

  • L3 LoadBalancerconPuerto de nodo, configurado conTransferencia SSLen Ingress.
  • Si el tráfico requerirá su uso SSLpero no es necesario entregarlo SSLdirectamente al designado Pod, sería más fácil implementarlo configurandoistioMalla con mTLS. Esta opción le permitirá enrutar el tráfico mediante encabezados HTTP y no necesitará administrar los certificados manualmente. por favor, compruebeestepara más información.

Como las mejores prácticas siempre tienden a ser lo más seguras posible, siempre se recomienda utilizar una conexión segura. A pesar de eso, algunos escenarios simplemente no lo necesitan.

Respuesta2

Si su clúster se ejecuta en la nube y utiliza unequilibrador de nube externo, su entrada y sus pods podrían estar ubicados en diferentes máquinas o centros de datos. En este caso, debería aplicar TLS desde el ingreso a los pods.

En cualquier caso, el equilibrador de carga y su clúster deben estar en la misma VPC (con suerte, restringida).

Respuesta3

También depende de los vectores de ataque contra los que se esté protegiendo.

Si le preocupa que alguien pueda detectar el tráfico entre sus nodos de Kubernetes, entonces podría considerar usar un complemento de red (CNI) que admita cifrado como WeaveNet o podría colocar todos sus nodos en una red VPN usando Wireguard u OpenVPN.

Si desea proteger los servicios del clúster entre sí, debería considerar algo como Istio, que cifra el tráfico entre pods.

información relacionada