Um administrador deve impor HTTPS dentro da rede Kubernetes ou apenas para tráfego externo (via entrada)?

Um administrador deve impor HTTPS dentro da rede Kubernetes ou apenas para tráfego externo (via entrada)?

Em um cenário de microsserviços, cada contêiner web-api deve se servir por meio de HTTPS ou é aceitável trabalhar internamente por meio de HTTP e ter todas as entradas configuradas com certificados e redirecionadas para a porta 80 dos contêineres?

Acho que a abordagem mais fácil é proteger apenas o tráfego externo, pois para configurar um Asp.Net Core WebAPI para servir a si mesmo (kestrel) através de HTTPS (por exemplo) é necessário montar o certificado em um volume e fornecer a senha do certificado. É um pouco complicado.

Qual é a melhor prática?

Responder1

Depende dos requisitos e recursos, se você possui On-Prem ou baremetal, etc.

Não há requisitos para proteger o tráfego

Se não houver requisitos relativos à proteção do tráfego do cliente dentro do cluster, você poderá encerrar SSLa conexão do cliente ingress-controllere usá-la HTTPentre os pods.

Requisitos seguros

Se houver necessidade de proteger o tráfego do cliente para o pod de destino, isso poderá ser obtido de duas maneiras.

  • L3 LoadBalancercomNodePort, configurado comPassagem SSLsobre Ingress.
  • Se o tráfego precisar ser usado SSL, mas não for necessário entregar SSLdiretamente ao designado Pod, seria mais fácil implementá-lo configurandoIstioMalha com mTLS. Esta opção permitirá rotear o tráfego usando cabeçalhos HTTP e você não precisará gerenciar certificados manualmente. por favor, verifiqueessePara maiores informações.

Como as Melhores Práticas sempre tendem a ser tão seguras quanto possível, é sempre recomendável usar uma conexão segura. Apesar disso, alguns cenários simplesmente não precisam disso.

Responder2

Se o seu cluster estiver em execução na nuvem e usando umbalanceador de nuvem externo, sua entrada e seus pods poderão estar em máquinas ou datacenters diferentes. Nesse caso, você deve realmente impor o TLS da entrada aos pods.

De qualquer forma, o balanceador de carga e seu cluster devem estar no mesmo VPC (esperançosamente restrito).

Responder3

Também depende dos vetores de ataque contra os quais você está se protegendo.

Se você está preocupado com a possibilidade de alguém detectar o tráfego entre seus nós do Kubernetes, considere usar um plug-in de rede (CNI) que suporte criptografia como WeaveNet ou coloque todos os seus nós em uma rede VPN usando Wireguard ou OpenVPN.

Se você deseja proteger os serviços no cluster uns dos outros, considere algo como o Istio, que criptografa o tráfego entre os pods.

informação relacionada