Garanta que os balanceadores de carga da AWS usem protocolos receptores seguros (HTTPS, SSL/TLS) - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Garanta que os balanceadores de carga da AWS usem protocolos receptores seguros (HTTPS, SSL/TLS)

Criado por Chandini Penmetsa (AWS) e Purushotham G K (AWS)

Ambiente: produção

Tecnologias: segurança, identidade, conformidade

Workload: todas as outras workloads

Serviços da AWS: Amazon SNS; AWS CloudWatch; CloudFormation Amazon; AWS Lambda; Elastic Load Balancing (ELB)

Resumo

Na nuvem da Amazon Web Services (AWS), o Elastic Load Balancing distribui automaticamente o tráfego de entrada do aplicativo em vários destinos, como instâncias do Amazon Elastic Compute Cloud (Amazon EC2), contêineres, endereços IP e funções do AWS Lambda. Os balanceadores de carga usam receptores para definir as portas e os protocolos que o balanceador de carga usa para aceitar o tráfego dos usuários. Os Application Load Balancers (Balanceadores de carga de aplicativo) tomam decisões de roteamento na camada do aplicativo e usam os protocolos HTTP/HTTPS. Os Network Load Balancers (Balanceadores de carga de rede) tomam decisões de roteamento na camada de transporte e usam os protocolos Transmission Control Protocol (TCP), Transport Layer Security (TLS), User Datagram Protocol (UDP) ou TCP_UDP. Os Classic Load Balancers (Balanceadores de carga clássicos) tomam decisões de roteamento na camada de transporte, usando protocolos TCP ou Secure Sockets Layer (SSL), ou na camada de aplicação, usando HTTP/HTTPS.

Sua organização pode ter um requisito de segurança ou conformidade de que os balanceadores de carga aceitem tráfego de usuários somente em protocolos seguros, como HTTPS ou SSL/TLS.

Esse padrão fornece um controle de segurança que usa uma EventBridge regra da Amazon para monitorar as CreateListener chamadas de ModifyListener API para Application Load Balancers e Network Load Balancers, e as chamadas de CreateLoadBalancer API CreateLoadBalancerListeners e para Classic Load Balancers. Se HTTP, TCP/UDP ou TCP_UDP forem usados para o protocolo de receptor do balanceador de carga, o controle invocará uma função do Lambda. A função do Lambda publica uma mensagem em um tópico do Amazon Simple Notification Service (Amazon SNS) para enviar uma notificação que contém os detalhes do balanceador de carga.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Um endereço de e-mail no qual você deseja receber a notificação de violação

  • Um bucket do Amazon Simple Storage Service (Amazon S3) para armazenar o arquivo .zip do código Lambda

Limitações

  • Esse controle de segurança não verifica os balanceadores de carga existentes, a menos que seja feita uma atualização nos receptores do balanceador de carga.

  • Esse controle de segurança é regional e deve ser implantado nas regiões da AWS que você pretende monitorar.

Arquitetura

Pilha de tecnologias de destino

  • Função do Lambda

  • Tópico do Amazon SNS

  • EventBridge regra

Arquitetura de destino

Automação e escala

  • Se você estiver usando o AWS Organizations, poderá usar o AWS Cloudformation StackSets para implantar esse modelo em várias contas que você deseja monitorar.

Ferramentas

  • AWS CloudFormation — CloudFormation A AWS é um serviço que ajuda você a modelar e configurar recursos da AWS usando a infraestrutura como código.

  • Amazon EventBridge — EventBridge A Amazon fornece um fluxo de dados em tempo real de seus próprios aplicativos, aplicativos de software como serviço (SaaS) e serviços da AWS, roteando esses dados para destinos como funções Lambda.

  • AWS Lambda: o Lambda é compatível com a execução de código sem provisionar ou gerenciar servidores.

  • Amazon S3: o Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos altamente escalável que pode ser usado para uma ampla variedade de soluções de armazenamento, incluindo sites, aplicativos móveis, backups e data lakes.

  • Amazon SNS: o Amazon Simple Notification Service (Amazon SNS) é um serviço da Web que coordena e gerencia a entrega ou o envio de mensagens entre publicadores e clientes, incluindo servidores da Web e endereços de e-mail. Os assinantes recebem todas as mensagens publicadas nos tópicos para os quais eles se inscrevem, e todos os assinantes em um tópico recebem as mesmas mensagens.

Práticas recomendadas

Certifique-se de que o tópico do SNS usado não esteja acessível ao público. Para obter mais informações, consulte a documentação da AWS.

Épicos

TarefaDescriçãoHabilidades necessárias

Definir o bucket do S3.

No console do Amazon S3, selecione ou crie um bucket do S3 com um nome exclusivo que não contenha barras iniciais. Um nome de bucket do S3 é globalmente exclusivo, e o namespace é compartilhado por todas as contas da AWS. Seu bucket do S3 precisa estar na mesma região que o balanceador de carga que está sendo avaliado.

Arquiteto de nuvem

Carregue o código do Lambda para o bucket do S3.

Faça upload do arquivo .zip do código Lambda fornecido na seção “Anexos” para o bucket S3 definido.

Arquiteto de nuvem

Implante o CloudFormation modelo da AWS.

No CloudFormation console da AWS, na mesma região da AWS do bucket S3, implante o modelo fornecido na seção “Anexos”. No próximo épico, forneça os valores para os parâmetros.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Nomeie o bucket do S3.

Insira o nome do bucket do S3 que você criou no primeiro épico.

Arquiteto de nuvem

Forneça o prefixo do Amazon S3.

Forneça o local do arquivo .zip do código do Lambda em seu bucket S3, sem barras iniciais (por exemplo, <directory>/<file-name>.zip‭).

Arquiteto de nuvem

Forneça o ARN do tópico do SNS.

Forneça o tópico do SNS nome do recurso da Amazon (ARN) se você quiser usar um tópico do SNS existente para notificações de violação. Para criar um novo tópico do SNS, mantenha o valor como None (o valor padrão).

Arquiteto de nuvem

Forneça um endereço de e-mail.

Forneça um endereço de e-mail ativo para receber notificações do Amazon SNS.

Arquiteto de nuvem

Defina o nível de registro.

Defina o nível de registro e a frequência da sua função do Lambda. Info designa mensagens informativas detalhadas sobre o progresso do aplicativo. Error designa eventos de erro que ainda podem permitir que o aplicativo continue em execução. Warning designa situações potencialmente prejudiciais.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Faça download do modelo.

Faça o download do CloudFormation modelo fornecido na seção Anexos.

Arquiteto de nuvem

Crie a stack.

Na mesma região do bucket do S3, navegue até o console CloudFormation de serviço e implante o modelo baixado. Consulte o épico anterior para obter detalhes dos parâmetros.

Arquiteto de nuvem

Verifique os recursos.

Depois que a pilha for completamente criada, navegue até a guia Recursos e verifique os recursos. O modelo criará os seguintes recursos:

  • EventBridge regra

  • Função do Lambda

  • Função de execução do Lambda

  • Permissão de invocação do Lambda

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Confirmar a assinatura.

Quando o modelo é implantado com êxito, se um novo tópico do SNS tiver sido criado, uma mensagem de e-mail de assinatura será enviada para o endereço de e-mail fornecido nos parâmetros. Você deve confirmar esta assinatura de e-mail para receber notificações de violação.

Arquiteto de nuvem

Solução de problemas

ProblemaSolução

Falha na criação da pilha. Ocorreu um erro enquanto GetObject. Código de erro S3: PermanentRedirect. Mensagem de erro do S3: O bucket está nesta região: xx-xxxx-1. Use essa região para repetir a solicitação.

Certifique-se de que a região do bucket do S3 e a região em que a pilha está sendo implantada sejam as mesmas.

Falha na criação da pilha. O parâmetro de runtime do python3.6 não é mais compatível com a criação ou atualização de funções do AWS Lambda.

Atualize o modelo baixado na linha 186 do Python versão 3.6 para 3.9.

Recursos relacionados

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip