Monitore ElastiCache clusters da Amazon para criptografia em repouso - 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á.

Monitore ElastiCache clusters da Amazon para criptografia em repouso

Abhishek Agawane, Amazon Web Services

Resumo

ElastiCache A Amazon é um serviço da Amazon Web Services (AWS) que fornece uma solução de cache de alto desempenho, escalável e econômica para distribuir um armazenamento de dados na memória ou um ambiente de cache na nuvem. Ele recupera dados de armazenamentos de dados na memória de alto throughput e baixa latência. Essa funcionalidade o torna uma escolha popular para casos de uso em tempo real, como armazenamento em cache, armazenamentos de sessões, jogos, serviços geoespaciais, análises em tempo real e filas. ElastiCache oferece armazenamentos de dados Redis e Memcached, ambos com tempos de resposta inferiores a um milissegundo.

A criptografia de dados ajuda a impedir que usuários não autorizados leiam dados em um cluster e em sistemas de armazenamento de dados em cache associados. Isso inclui dados salvos em mídias persistentes, conhecidos como dados em repouso, e dados que podem ser interceptados enquanto viajam pela rede entre servidores cache e clientes, conhecidos como dados em trânsito.

Você pode habilitar a criptografia em repouso para ElastiCache (Redis OSS) ao criar um grupo de replicação, definindo o parâmetro como. AtRestEncryptionEnabled true Quando esse parâmetro está habilitado, ele criptografa o disco durante as operações de sincronização, backup e troca, além de criptografar os backups armazenados no Amazon Simple Storage Service (Amazon S3). Não é possível habilitar a criptografia em repouso em grupos de replicação existentes. Ao criar um grupo de replicação, você pode habilitar a criptografia em repouso de duas maneiras:

  • Ao escolher a opção Padrão, que usa criptografia em repouso gerenciada por serviços.

  • Usando uma chave gerenciada pelo cliente e fornecendo o ID da chave ou o nome de recurso da Amazon (ARN) em AWS Key Management Service (AWS KMS).

Esse padrão fornece um controle de segurança que monitora as chamadas de API e gera um evento Amazon EventBridge Events na CreateReplicationGroup operação. Esse evento chama uma AWS Lambda função, que executa um script Python. A função obtém o ID do grupo de replicação da entrada JSON do evento e executa as seguintes verificações para determinar se há um cluster não criptografado:

  • Verifica se a AtRestEncryptionEnabled chave existe.

  • Se AtRestEncryptionEnabled existir, verifica o valor para ver se estátrue.

  • Se o AtRestEncryptionEnabled valor for definido comofalse, define uma variável que rastreia violações e envia uma mensagem de violação para um endereço de e-mail fornecido por você, usando uma notificação do Amazon Simple Notification Service (Amazon SNS).

Pré-requisitos e limitações

Pré-requisitos

  • Um ativo Conta da AWS.

  • Um bucket do S3 para fazer o upload do código do Lambda fornecido.

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

  • ElastiCache registro ativado, para acesso a todos os registros da API.

Limitações

  • Esse controle de detetive é regional e deve ser implantado em cada área Região da AWS que você deseja monitorar.

  • O controle é compatível com grupos de replicação que executam em uma nuvem privada virtual (VPC).

  • O controle fornece suporte a grupos de replicação que estão executando os seguintes tipos de nós:

    • R7g, R6gd, R6g, R5, R4, R3

    • M7g, M6g, M5, M4, M3

    • T4g, T3, T2

    • C7gn

Versões do produto

  • Suporta ElastiCache (Redis OSS) versão 3.2.6 ou posterior e Valkey 7.2 ou posterior

Arquitetura

Arquitetura de fluxo de trabalho

Fluxo de trabalho para monitorar ElastiCache clusters.
  1. O usuário inicia um grupo ElastiCache de replicação por meio do Console de gerenciamento da AWS, do AWS Command Line Interface (AWS CLI) ou de uma chamada de API.

  2. ElastiCache gera EventBridge eventos quando a CreateReplicationGroup API é chamada.

  3. Uma EventBridge regra aciona e chama a função Lambda para verificação de conformidade.

  4. A função Lambda processa o evento e verifica se a criptografia em repouso está habilitada no cluster. ElastiCache

  5. Se uma violação de criptografia for detectada, a função Lambda publica uma mensagem de notificação em um tópico do SNS.

  6. O Amazon SNS envia uma notificação por e-mail aos administradores sobre a violação da conformidade de criptografia.

Automação e escala

  • Se você estiver usando AWS Organizations, você pode usar AWS CloudFormation StackSetspara implantar esse modelo em várias contas que você deseja monitorar.

Ferramentas

Serviços da AWS

  • A Amazon ElastiCache facilita a configuração, o gerenciamento e a escalabilidade de ambientes distribuídos de cache na memória no Nuvem AWS. Ele fornece um cache na memória de alto desempenho, redimensionável e econômico, ao mesmo tempo em que remove a complexidade associada à implantação e ao gerenciamento de um ambiente de cache distribuído. ElastiCache funciona com os mecanismos Redis e Memcached.

  • AWS CloudFormationajuda você a modelar e configurar seus AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida. Você pode usar um modelo para descrever seus recursos e as dependências deles, além de inicializá-los e configurá-los juntos como uma pilha, em vez de gerenciar recursos individualmente. Você pode gerenciar e provisionar pilhas em vários Contas da AWS e. Regiões da AWS

  • A Amazon EventBridge fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos AWS recursos. EventBridge toma conhecimento das mudanças operacionais à medida que elas ocorrem e toma medidas corretivas conforme necessário, enviando mensagens para responder ao ambiente, ativando funções, fazendo alterações e capturando informações de estado.

  • O AWS Lambda é um serviço de computação que permite a execução de código sem a necessidade de provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e escala automaticamente, desde algumas solicitações por dia a milhares por segundo. Você paga apenas pelo tempo de computação consumido. Não haverá cobranças quando o código não estiver em execução. 

  • O Amazon SNS coordena e gerencia o envio de mensagens entre editores e clientes, incluindo servidores 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 desse padrão está disponível nos ElastiCache clusters GitHub Monitor Amazon para repositório de criptografia em repouso. Consulte a seção Epics para obter informações sobre como usar os arquivos no repositório.

Práticas recomendadas

Implantação

  • Certifique-se de que AWS CloudTrail está registrando as chamadas de ElastiCache API antes de implantar esse controle.

  • Esse é um controle regional; implante o controle em cada Região da AWS local que você usa ElastiCache.

  • Valide a solução em dev/test ambientes antes de implantá-la na produção.

Segurança

  • Para um controle aprimorado sobre as chaves de criptografia, use as chaves KMS gerenciadas pelo cliente.

  • Revise as permissões AWS Identity and Access Management (IAM) para garantir o menor acesso privilegiado para a função de execução do Lambda.

  • Configure alertas para mensagens na fila de letras mortas.

Operações

  • Defina a retenção de registros adequada para equilibrar as necessidades de conformidade com o custo.

  • Ajuste a simultaneidade reservada do Lambda para ajustar com base na ElastiCache sua frequência de criação.

  • Assine vários endereços de e-mail no Amazon SNS para receber notificações da equipe.

Monitoramento

  • Analise CloudWatch os alarmes da Amazon para garantir que os limites de alarme correspondam às suas necessidades operacionais.

  • Monitore regularmente a duração da execução das métricas Lambda e as taxas de erro.

  • Audite as violações regularmente para revisar as notificações de conformidade de criptografia.

Épicos

TarefaDescriptionHabilidades necessárias

Baixe o código em GitHub.

Clone ou baixe o repositório de código em. GitHub O repositório contém os arquivos index.py e. elasticache_encryption_at_rest.yml

Arquiteto de nuvem

Crie pacotes de implantação do Lambda.

Crie dois arquivos.zip a partir do código Python:

  • CrieElastiCache-EncryptionAtRest.zip, que contémindex.py.

  • Use o seguinte comando:

    zip ElastiCache-EncryptionAtRest.zip index.py
Arquiteto de nuvem

Faça upload do código para um bucket do S3.

  1. Crie um novo bucket do S3 ou use um bucket do S3 existente para fazer o upload do código Lambda.

  2. Compacte o código Lambda (index.py) e dê um nome a ele. ElastiCache-EncryptionAtRest.zip

  3. Faça upload do arquivo.zip no bucket do S3. Esse bucket deve estar nos Região da AWS mesmos recursos que você deseja avaliar.

Arquiteto de nuvem

Implante o CloudFormation modelo.

Abra o CloudFormation console da Região da AWS mesma forma que o bucket do S3 e implante o elasticache_encryption_at_rest.yml arquivo fornecido no repositório de código. No próximo épico, forneça valores para os parâmetros do modelo.

Arquiteto de nuvem
TarefaDescriptionHabilidades necessárias

Dar o nome do bucket do S3.

Insira o nome do bucket do S3 que você criou ou selecionou no primeiro épico. Esse bucket do S3 contém o arquivo.zip do código Lambda e deve estar no mesmo Região da AWS formato do CloudFormation modelo e do recurso que será avaliado. 

Arquiteto de nuvem

Fornecer a chave do S3.

Forneça a localização do arquivo .zip do código Lambda em seu bucket do S3, sem barras iniciais (por exemplo, ElasticCache-EncryptionAtRest.zip ou controls/ElasticCache-EncryptionAtRest.zip).

Arquiteto de nuvem

Fornecer um endereço de e-mail.

Forneça um endereço de e-mail ativo no qual você deseja receber notificações de violação. 

Arquiteto de nuvem

Especifique um nível de log.

Especifique o nível de registro e a verbosidade.

  • Infodesigna mensagens informativas detalhadas sobre o progresso do aplicativo e deve ser usado somente para depuração.

  • Errordesigna eventos de erro que ainda podem permitir que o aplicativo continue em execução.

  • Warningdesigna situações potencialmente prejudiciais.

Arquiteto de nuvem
TarefaDescriptionHabilidades necessárias

Confirme a assinatura por e-mail.

Quando o CloudFormation modelo é implantado com sucesso, ele envia uma mensagem de assinatura para o endereço de e-mail que você forneceu. Você precisa confirmar sua assinatura para começar a receber as notificações.

Arquiteto de nuvem

Solução de problemas

ProblemaSolução

Função Lambda não acionada

Sintoma: nenhum login CloudWatch depois de criar ou modificar ElastiCache clusters.

Soluções:

  • Verifique o status da EventBridge regra: 

    aws events describe-rule --name <rule-name>
  • Confirme se a política baseada em recursos do Lambda permite a invocação. EventBridge

  • Confirme se o padrão do EventBridge evento corresponde às chamadas de ElastiCache API.

Sem notificações por e-mail

Sintoma: a função Lambda é executada com êxito, mas você não recebe nenhuma notificação por e-mail.

Soluções:

  • Confirme sua assinatura do Amazon SNS por meio do link de confirmação por e-mail.

  • Verifique as pastas de spam ou lixo eletrônico em busca de e-mails do Amazon SNS.

  • Verifique o nome de recurso da Amazon (ARN) para o tópico do Amazon SNS na variável de ambiente Lambda: OUTBOUND_TOPIC_ARN

  • Teste o Amazon SNS manualmente: 

    aws sns publish --topic-arn <arn> --message "Test"

Problemas com permissões

Sintoma: erros de acesso negado nos registros da função CloudWatch Lambda.

Soluções:

  • Verifique se a função de execução do Lambda tem as permissões de ElastiCache leitura necessárias.

  • Confirme se a política AWS KMS principal inclui a função de execução do Lambda.

  • Certifique-se de que a política de tópicos do Amazon SNS permita que o Lambda publique.

Recursos relacionados