Partilhar via


Resumo da política da Camada 7 (L7) (Pré-visualização)

As políticas de rede são essenciais para proteger clusters Kubernetes definindo e controlando a comunicação do pod. Eles mitigam o acesso não autorizado e possíveis violações de segurança, regulando o fluxo de tráfego. Os Serviços Avançados de Rede de Contêiner fortalecem a segurança com políticas de rede baseadas em FQDN. Expandindo essa base, o Advanced Container Networking Services agora oferece suporte a políticas L7, permitindo inspeção e gerenciamento detalhados do tráfego no nível do aplicativo. Este avanço melhora a segurança e a eficiência das comunicações de rede dentro dos clusters AKS. A oferta inclui suporte abrangente para protocolos amplamente adotados, incluindo HTTP, gRPC e Kafka.

Componentes da política L7

Proxy Envoy: o Envoy, parte do agente de segurança do ACNS, serve como ponto de aplicação das políticas de L7. Um TPROXY inspeciona o tráfego do aplicativo, comparando-o com as políticas L7 definidas. Para melhorar a escalabilidade e o gerenciamento de recursos, o Envoy é implantado como um DaemonSet separado, dissociado do Cilium Agent.

Como funciona a política L7

Quando a imposição de política L7 está habilitada para um aplicativo ou pod, o tráfego de rede de saída é primeiro avaliado para determinar a conformidade com as regras configuradas no nível do aplicativo. A sonda eBPF anexada à interface de rede do pod de origem marca os pacotes, que são então redirecionados para um Envoy Proxy local do nó. Esse redirecionamento ocorre apenas para pods que aplicam políticas L7, garantindo que a aplicação de políticas seja aplicada seletivamente.

O proxy Envoy, aumentado com filtros de rede Cilium, decide se encaminha o tráfego para o pod de destino com base em critérios de política de rede. Se permitido, o tráfego prossegue; caso contrário, o Envoy retorna um código de erro apropriado para o pod de origem. Após a autorização bem-sucedida, o proxy Envoy facilita o fluxo de tráfego, fornecendo visibilidade e controle no nível do aplicativo. Isso permite que o agente Cilium imponha políticas de rede detalhadas dentro do mecanismo de política. O diagrama a seguir ilustra o fluxo de alto nível da aplicação da política L7.

Captura de tela mostrando como as políticas L7 funcionam.

Monitoramento do tráfego L7 com Hubble e Grafana

Para obter informações sobre os fluxos de tráfego L7, especificamente HTTP, gRPC e Kafka, o Azure CNI Powered by Cilium aproveita o agente Hubble, que é habilitado por padrão com os Serviços Avançados de Rede de Contêiner. O Hubble fornece métricas detalhadas de nível de fluxo.

Para simplificar a análise dessas métricas L7, fornecemos painéis pré-configurados do Azure Managed Grafana. Você pode encontrá-los na pasta Dashboards > Azure Managed Prometheus, com nomes de arquivos como "Kubernetes/Networking/L7 (Namespace)" e "Kubernetes/Networking/L7 (Workload)".

Esses painéis oferecem visibilidade granular dos dados de fluxo L7 nos níveis de cluster, namespace e carga de trabalho.

Observação

Esses painéis só exibirão dados se você tiver esse recurso habilitado no cluster e tiver políticas relevantes aplicadas. Além disso, as métricas de monitoramento não precisam fluir através do Envoy, um componente do agente de segurança do ACNS. Em vez disso, essas métricas são coletadas pelo agente do Hubble, que é instalado em seu cluster como parte do recurso de observabilidade do Advanced Container Networking Service.

Principais benefícios

Controle de Application-Level granular: as políticas L7 permitem um controle refinado sobre o tráfego de rede com base em atributos específicos do aplicativo, como métodos HTTP, caminhos gRPC e tópicos Kafka. Isso vai além do endereço IP básico e do controle baseado em porta das políticas de rede tradicionais.

Segurança aprimorada: ao inspecionar o tráfego no nível do aplicativo, as políticas L7 podem evitar ataques que exploram vulnerabilidades na camada do aplicativo. Isso inclui bloquear o acesso não autorizado a APIs ou serviços específicos. Além disso, as políticas L7 são um componente importante de uma estratégia de segurança Zero Trust, permitindo a aplicação do princípio do menor privilégio na camada de aplicação.

Tratamento normal de erros: Ao contrário das políticas L3/L4 que normalmente descartam o tráfego não autorizado silenciosamente, as políticas L7 podem retornar códigos de erro no nível do aplicativo (por exemplo, HTTP 403, falhas de autorização Kafka), permitindo que os aplicativos lidem com erros com mais facilidade.

Observabilidade: Com a observabilidade habilitada para Advanced Container Networking Services e políticas L7 aplicadas ao seu cluster AKS, você pode monitorar o tráfego e a eficácia da política usando os painéis do Grafana.

Limitações e considerações

  • O suporte a recursos atuais depende da aplicação de políticas de Camada 7 da Cilium com base em HTTP, HTTPS, gRPC e Kafka.
  • Na visualização, o tamanho máximo de cluster suportado é de até 1.000 nós ou 40.000 pods, o que for maior.
  • O tráfego que atravessa os proxies do Envoy acarreta latência. Os usuários podem experimentar degradação de latência percetível além de 3.000 solicitações por segundo.
  • Como parte da nossa solução de observabilidade, fornecemos as métricas envoy_http_rq_total. Essas métricas fornecem a contagem total de solicitações, que pode ser usada para derivar solicitações por segundo (rps).
  • Durante uma atualização ou implementação do Cilium, as sessões existentes podem ser fechadas normalmente. Espera-se que os aplicativos lidem com essas interrupções normalmente, geralmente implementando mecanismos de repetição no nível de conexão ou solicitação. As novas conexões iniciadas durante a implantação não são afetadas.
  • A política L7 por meio do Advanced Container Networking Services (ACNS) não é compatível com as políticas L7 implementadas por meio de métodos alternativos, como o Istio. A tabela a seguir resume os cenários suportados.
Característica/Componente Políticas L7 usando AKS, Istio - addon gerenciado
Políticas de rede K8s do Azure CNI desenvolvido por Cilium Suportado
Políticas L4 (FQDN) do Azure CNI com tecnologia Cilium e ACNS Suportado
Políticas L7 (HTTP(s)/GRPC/Kafka) do Azure CNI alimentadas por Cilium e ACNS Não suportado

Preços

Importante

Advanced Container Networking Services é uma oferta paga. Para obter mais informações sobre preços, consulte Advanced Container Networking Services - Pricing.

Próximos passos