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á.
Verifique a versão de registro de acesso, HTTPS e TLS em uma CloudFront distribuição da Amazon
Criado por SaiJeevan Devireddy (AWS) e Bijesh Bal (AWS)
Resumo
Esse padrão verifica uma CloudFront distribuição da Amazon para garantir que ela use HTTPS, use o Transport Layer Security (TLS) versão 1.2 ou posterior e tenha o registro de acesso ativado. CloudFront é um serviço fornecido pela Amazon Web Services (AWS) que acelera a distribuição de seu conteúdo web estático e dinâmico, como .html, .css, .js e arquivos de imagem, para seus usuários. CloudFront entrega seu conteúdo por meio de uma rede mundial de data centers chamados de pontos de presença. Quando um usuário solicita o conteúdo com o qual você está servindo CloudFront, a solicitação é encaminhada para o ponto de presença que fornece a menor latência (atraso de tempo), para que o conteúdo seja entregue com o melhor desempenho possível.
Esse padrão fornece uma função do AWS Lambda que é iniciada quando o Amazon CloudWatch Events detecta a chamada de CloudFront API CreateDistribution, CreateDistributionWithTagsou. UpdateDistribution A lógica personalizada na função Lambda avalia todas as CloudFront distribuições que foram criadas ou atualizadas na conta da AWS. Ele envia uma notificação de violação usando o Amazon Simple Notification Service (Amazon SNS) se detectar as seguintes violações:
Verificações globais:
O certificado personalizado não usa TLS versão 1.2
O registro em log está desativado para distribuição
Verificações de origem:
A origem não está configurada com TLS versão 1.2
A comunicação com a origem é permitida em um protocolo diferente de HTTPS
Verificações de comportamento:
A comunicação de comportamento padrão é permitida em um protocolo diferente de HTTPS
A comunicação de comportamento personalizada é permitida em um protocolo diferente de HTTPS
Pré-requisitos e limitações
Pré-requisitos
Uma conta AWS ativa
Um endereço de e-mail no qual você deseja receber as notificações de violação
Limitações
Esse controle de segurança não verifica as distribuições existentes do Cloudfront, a menos que uma atualização tenha sido feita na distribuição.
CloudFront é considerado um serviço global e não está vinculado a uma região específica da AWS. No entanto, CloudWatch os registros de APIs do Amazon Logs e do AWS Cloudtrail para serviços globais ocorrem na região Leste dos EUA (Norte da Virgínia) (
us-east-1
). Portanto, esse formulário de controle de segurança CloudFront deve ser implantado e mantido emus-east-1
. Essa implantação única monitora todas as distribuições de CloudFront. Não implante o controle de segurança em nenhuma outra região da AWS. (A implantação em outras regiões resultará em uma falha no início dos CloudWatch Eventos e da função Lambda e na ausência de notificações do SNS.)Essa solução passou por testes extensivos com distribuições de conteúdo CloudFront da web. Ela não abrange distribuições de fluxo do protocolo de mensagens em tempo real (RTMP).
Arquitetura
Pilha de tecnologias de destino
Função do Lambda
Tópico do SNS
EventBridge Regra da Amazon
Arquitetura de destino

Automação e escala
Se você estiver usando o AWS Organizations, poderá usar o AWS Cloudformation StackSets para implantar o modelo anexado em várias contas que você deseja monitorar.
Ferramentas
Serviços da AWS
AWS CloudFormation — CloudFormation é um serviço que ajuda você a modelar e configurar recursos da AWS usando a infraestrutura como código.
Amazon EventBridge — EventBridge 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 SNS 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.
Código
O código em anexo inclui:
Um arquivo .zip que contém o código do Lambda (index.py)
Um CloudFormation modelo (arquivo.yml) que você executa para implantar o código Lambda
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar o bucket do S3 para o código do Lambda. | No console do Amazon S3, 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 deve estar na região em que você planeja implantar o código do Lambda. | Arquiteto de nuvem |
Carregar o código do Lambda para o bucket do S3. | Faça upload do código do Lambda (arquivo cloudfront_ssl_log_lambda.zip) fornecido na seção Anexos para o bucket do S3 que você criou na etapa anterior. | Arquiteto de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Implante o CloudFormation modelo. | No CloudFormation console da AWS, na mesma região da AWS do bucket do S3, implante o CloudFormation modelo (cloudfront-ssl-logging.yml) fornecido na seção Anexos. | Arquiteto de nuvem |
Especifique o nome do bucket do S3. | Para o parâmetro do bucket do S3, especifique o nome do bucket do S3 que você criou no primeiro épico. | Arquiteto de nuvem |
Especifique o nome da chave do Amazon S3 para o arquivo do Lambda. | Para o parâmetro Chave do S3, especifique a localização do arquivo .zip do código do Lambda no Amazon S3 em seu bucket do S3. Não inclua barras iniciais (por exemplo, você pode inserir lambda.zip ou controls/lambda.zip). | Arquiteto de nuvem |
Fornecer um endereço de e-mail de notificação. | Para o parâmetro do e-mail de notificação, forneça um endereço de e-mail no qual você gostaria de receber as notificações de violação. | Arquiteto de nuvem |
Definir o nível de registro em log. | Para o parâmetro Nível do registro em log do Lambda, defina o nível de registro em log para sua função do Lambda. Escolha um dos seguintes valores:
| Arquiteto de nuvem |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Confirmar a assinatura. | Quando o CloudFormation modelo é implantado com sucesso, um novo tópico do SNS é criado e uma mensagem de assinatura é enviada para o endereço de e-mail que você forneceu. Você deve confirmar essa assinatura de e-mail para receber notificações de violação. | Arquiteto de nuvem |
Recursos relacionados
Criação de uma pilha no CloudFormation console da AWS (CloudFormation documentação)
CloudFront registro (CloudFront documentação)
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip