Proteja dados confidenciais em CloudWatch registros usando o Amazon Macie - 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á.

Proteja dados confidenciais em CloudWatch registros usando o Amazon Macie

Anisha Salunkhe, Omar Franco e David Guardiola, da Amazon Web Services

Resumo

Esse padrão mostra como usar o Amazon Macie para detectar automaticamente dados confidenciais em um grupo de CloudWatch logs do Amazon Logs implementando um fluxo de trabalho abrangente de monitoramento de segurança. A solução usa o Amazon Data Firehose para transmitir entradas de CloudWatch registros para o Amazon Simple Storage Service (Amazon S3). Macie verifica periodicamente esse bucket em busca de informações de identificação pessoal (PII), dados financeiros e outros conteúdos confidenciais. A infraestrutura é implantada por meio de um AWS CloudFormation modelo que provisiona todas as configurações Serviços da AWS e necessidades.

CloudWatch Os registros geralmente contêm dados de aplicativos que podem incluir inadvertidamente informações confidenciais do usuário. Isso pode criar riscos de conformidade e segurança. As abordagens tradicionais de monitoramento de registros carecem de recursos automatizados de detecção de dados confidenciais. Isso pode dificultar a identificação e a resposta a possíveis exposições de dados em tempo real.

Esse padrão ajuda as equipes de segurança e os agentes de conformidade a manter a confidencialidade dos dados, fornecendo detecção e alertas automatizados para dados confidenciais em sistemas de registro. Essa solução permite uma resposta proativa a incidentes por meio de notificações do Amazon Simple Notification Service (Amazon SNS) e isola automaticamente os dados confidenciais em um bucket seguro do Amazon S3. Você pode personalizar os padrões de detecção e integrar o fluxo de trabalho aos seus processos operacionais de segurança existentes.

Pré-requisitos e limitações

Pré-requisitos

  • Um ativo Conta da AWS

  • Permissões para criar uma CloudFormation pilha

  • Um grupo de CloudWatch registros de registros que você deseja monitorar

  • Um endereço de e-mail ativo para receber notificações do Amazon SNS

  • Acessar o AWS CloudShell

  • (Opcional) Acesso ao AWS Command Line Interface (AWS CLI), instalado e configurado

Limitações

Arquitetura

Arquitetura de destino

O diagrama a seguir mostra o fluxo de trabalho para usar o Macie para examinar as entradas de registro do CloudWatch Logs em busca de dados confidenciais.

 

O fluxo de trabalho mostra as seguintes etapas:

  1. O grupo de CloudWatch registros de registros gera os registros, que estão sujeitos ao filtro de assinatura.

  2. O filtro de assinatura encaminha os registros para o Amazon Data Firehose.

  3. Os registros são criptografados com uma chave AWS Key Management Service (AWS KMS) quando passam pelo stream de entrega do Amazon Data Firehose.

  4. O stream de entrega entrega os registros para o bucket de registros exportado no Amazon S3.

  5. Às 4 da manhã de cada dia, a Amazon EventBridge inicia uma AWS Lambda função que inicia uma varredura do Macie em busca de dados confidenciais no bucket de registros exportado.

  6. Se o Macie identificar dados confidenciais no bucket, uma função Lambda removerá o log do bucket de logs exportado e o criptografará com um. AWS KMS key

  7. A função Lambda isola os registros que contêm dados confidenciais no bucket de isolamento de dados.

  8. A identificação de dados confidenciais inicia um tópico do Amazon SNS.

  9. O Amazon SNS envia uma notificação por e-mail para um endereço de e-mail que você configura com informações sobre os registros que contêm dados confidenciais.

Recursos implantados

O CloudFormation modelo implanta os seguintes recursos em seu destino Conta da AWS e Região da AWS:

Ferramentas

Serviços da AWS

  • AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS

  • O Amazon CloudWatch Logs ajuda você a centralizar os registros de todos os seus sistemas e aplicativos, Serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.

  • O Amazon Data Firehose ajuda você a entregar dados de streaming em tempo real para outros Serviços da AWS endpoints HTTP personalizados e endpoints HTTP de propriedade de provedores de serviços terceirizados compatíveis.

  • EventBridgeA Amazon é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. Por exemplo, fontes como AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS

  • AWS Key Management Service (AWS KMS) ajuda você a criar e controlar chaves criptográficas para ajudar a proteger seus dados.

  • O AWS Lambda é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.

  • O Amazon Macie ajuda você a descobrir dados confidenciais, fornece visibilidade dos riscos de segurança de dados e permite proteção automatizada contra esses riscos.

  • O Amazon Simple Notification Service (Amazon SNS) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

Repositório de código

O código desse padrão está disponível no repositório GitHub sample-macie-for-securing-cloudwatch-logs.

Práticas recomendadas

Siga as CloudFormation melhores práticas na CloudFormation documentação.

Épicos

TarefaDescriptionHabilidades necessárias

Clone o repositório de códigos.

Insira o seguinte comando para clonar o repositório na sua estação de trabalho local:

git clone https://github.com/aws-samples/sample-macie-for-securing-cloudwatch-logs
Desenvolvedor de aplicativos

(Opcional) Edite o CloudFormation modelo.

  1. Abra o arquivo main.yaml.

  2. Personalize o modelo fazendo o seguinte:

    • Você pode renomear recursos.

    • Na parameter seção, você pode modificar os valores padrão.

    • Você pode alterar o padrão do filtro de assinatura. Para obter mais informações, consulte Filtros de assinatura em nível de grupo de CloudWatch registros na documentação de registros.

  3. Salve e feche o arquivo main.yaml.

Desenvolvedor de aplicativos

Opção 1 — Implantar usando script com parâmetros de linha de comando.

Insira o comando a seguir para implantar a solução usando parâmetros de linha de comando, em que o valor de enable-macie é true somente se o Amazon Macie ainda não estiver habilitado:

./scripts/test-macie-solution.sh --deploy-stack \ --stack-name <stack name> \ --email <email address> \ --enable-macie <true or false> \ --region <region> \ --resource-name <prefix for all resources> \ --bucket-name <bucket name>
AWS geral

Opção 2 — Implantar usando script com variáveis de ambiente.

  1. Insira os seguintes comandos para definir as variáveis de ambiente, em que o valor de ENABLE_MACIE é true somente se o Amazon Macie ainda não estiver habilitado:

    export STACK_NAME=<stack name> export SNS_EMAIL=<email address> export ENABLE_MACIE=<true or false> export REGION=<region> export RESOURCE_NAME=<prefix for all resources> export BUCKET_NAME=<bucket name>
  2. Insira o comando a seguir para validar os parâmetros antes da implantação:

    ./scripts/test-macie-solution.sh \ --validate-params \ --email <email address> \ --region <region>
  3. Insira o comando a seguir para implantar a solução:

    ./scripts/test-macie-solution.sh --deploy-stack
AWS geral

Opção 3 — Implantar usando AWS CLI o.

Insira o comando a seguir para implantar a solução usando o AWS CLI, onde o valor de EnableMacie é true somente se o Amazon Macie ainda não estiver habilitado:

aws cloudformation create-stack \ --region us-east-1 \ --stack-name macie-for-securing-cloudwatch-logs \ --template-body file://app/main.yml \ --capabilities CAPABILITY_IAM \ --parameters \ ParameterKey=ResourceName,ParameterValue=<prefix for all resources> \ ParameterKey=BucketName,ParameterValue=<bucket name> \ ParameterKey=LogGroupName,ParameterValue=<path for log group> \ ParameterKey=SNSTopicEndpointEmail,ParameterValue=<email address> \ ParameterKey=EnableMacie,ParameterValue=<true or false>

Opção 4 — Implantar por meio do Console de gerenciamento da AWS.

  1. Abra o console do AWS CloudFormation.

  2. Na barra de navegação na parte superior da tela, escolha a Região da AWS para criar a pilha.

  3. Na página Pilhas, escolha Criar pilha no canto superior direito e selecione Com novos recursos (padrão).

  4. Na página Criar pilha, em Pré-requisito - Preparar modelo, escolha Escolher um modelo existente.

  5. Em Especificar modelo, escolha Carregar um arquivo de modelo e, em seguida, carregue o modelo main.yaml do seu repositório clonado.

  6. Escolha Próximo.

  7. Na página Especificar detalhes da pilha, na caixa Nome da pilha, insira o nome da pilha.

  8. Na seção Parâmetros, especifique valores para os seguintes parâmetros do modelo.

    • ResourceName: Prefixo para todos os recursos

    • BucketName: Nome exclusivo para o bucket Amazon S3

    • LogGroupName: nome do grupo de CloudWatch registros para registros

    • SNSTopicEndpointEmail: Endereço de e-mail para notificações

    • EnableMacie: Defina como true se o Macie ainda não estiver habilitado

    • (Opcional)Region: Região da AWS onde você deseja implantar a pilha.

    • (Opcional)TemplatePath: Caminho para o CloudFormation modelo

  9. Escolha Próximo.

  10. Em Capacidades, escolha Eu reconheço que esse modelo pode criar recursos do IAM para especificar que você deseja usar recursos do IAM no modelo.

  11. Escolha Próximo.

  12. Na página Revisar e criar, revise os detalhes de sua pilha.

  13. Escolha Enviar para lançar sua pilha.

AWS geral

Monitore o status da implantação e confirme a implantação.

  1. Digite o comando a seguir para monitorar o status da implantação:

    ./scripts/test-macie-solution.sh \ --deployment-status \ --stack-name <stack name>
    nota

    Você também pode monitorar o progresso e o status da criação da pilha na guia Eventos da sua nova pilha. Para obter mais informações, consulte Monitorar o progresso da pilha.

  2. Quando o status mudar para CREATE_COMPLETE, revise as saídas da pilha para obter as informações do recurso.

AWS geral

Confirmar a assinatura do Amazon SNS.

Siga as instruções em Confirme sua assinatura do Amazon SNS na documentação do Amazon SNS para confirmar sua assinatura do Amazon SNS.

Desenvolvedor de aplicativos
TarefaDescriptionHabilidades necessárias

Opção 1 — Teste com relatórios automatizados.

Se você usou o nome da pilha padrão, digite o seguinte comando para testar a solução:

./scripts/test-macie-solution.sh \ --full-test

Se você usou um nome de pilha personalizado, digite o seguinte comando para testar a solução:

./scripts/test-macie-solution.sh \ --full-test \ --stack-name <stack name>

Se você usou um nome de pilha personalizado e parâmetros personalizados, digite o seguinte comando para testar a solução:

./scripts/test-macie-solution.sh --full-test \ --stack-name <stack name> \ --region <region> \ --log-group <log group path>
AWS geral

Opção 2 — Teste com validação direcionada.

  1. Insira o comando a seguir para gerar dados de teste com informações confidenciais:

    ./scripts/test-macie-solution.sh \ --generate-test-data \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Cria entradas de registro de CloudWatch registros que contêm padrões realistas de dados confidenciais, incluindo funcionários IDs, patentes IDs, números de cartão de crédito, números de previdência social e endereços de e-mail

    • Gera entradas de registro confidenciais e não confidenciais para testes abrangentes

    • Fornece registro detalhado do processo de geração de dados de teste

  2. Insira o comando a seguir para verificar o fluxo do pipeline de dados:

    ./scripts/test-macie-solution.sh \ --verify-pipeline \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Confirma que as entradas de CloudWatch registros são transmitidas para o Amazon Data Firehose

    • Valida se os dados de log foram entregues ao bucket do Amazon S3 com a criptografia adequada

    • Verifica se o armazenamento de objetos do Amazon S3 tem a estrutura de prefixo correta

    • Verifica o status da criptografia dos objetos armazenados

    • Monitora o tempo do fluxo de dados e fornece períodos de espera para processamento

  3. Digite o comando a seguir para iniciar o trabalho de classificação do Macie:

    ./scripts/test-macie-solution.sh \ --trigger-macie-job \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Aciona manualmente o trabalho de classificação do Macie por meio de uma função Lambda

    • Monitora o status de execução do trabalho e fornece feedback

    • Valida a disponibilidade do serviço Macie antes da execução

    • Lida com casos em que o Macie não está habilitado na conta

    • Fornece resultados detalhados da execução do trabalho

  4. Insira o comando a seguir para validar o alerta e o isolamento de dados:

    ./scripts/test-macie-solution.sh \ --verify-alerts \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Confirma se EventBridge as regras estão configuradas e ativas corretamente

    • Valida a configuração do tópico e o status da assinatura do Amazon SNS

    • Verifica a configuração e as permissões do bucket de isolamento de dados

    • Monitora a movimentação de dados confidenciais para o bucket de isolamento

    • Verifica a funcionalidade completa do fluxo de trabalho de alerta

AWS geral
TarefaDescriptionHabilidades necessárias

Opção 1 — Execute a limpeza automatizada.

Se você usou o nome padrão da pilha, digite o seguinte comando para excluir a pilha:

./scripts/cleanup-macie-solution.sh \ --full-cleanup

Se você usou um nome de pilha personalizado, digite o seguinte comando para excluir a pilha:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name>

Se você usou um nome de pilha e parâmetros personalizados, digite o seguinte comando para excluir a pilha:

./scripts/cleanup-macie-solution.sh \ --full-cleanup \ --stack-name <stack name> \ --region <region> \ --disable-macie <true or false>
AWS geral

Opção 2 — Executar step-by-step a limpeza.

  1. Digite o comando a seguir para interromper os processos ativos:

    ./scripts/cleanup-macie-solution.sh \ --stop-processes \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Desativa EventBridge as regras para evitar novas execuções de trabalhos

    • Interrompe qualquer tarefa de classificação do Macie em execução no momento

    • Cancela execuções de cargos pendentes em Macie

    • Limpa todas as mensagens pendentes do Amazon SNS na fila

    • Fornece atualizações de status para cada processo interrompido

  2. Digite o seguinte comando para esvaziar os buckets do Amazon S3:

    ./scripts/cleanup-macie-solution.sh \ --empty-buckets \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Remove todos os objetos do bucket para CloudWatch Logs

    • Remove todos os objetos do bucket Amazon S3 de isolamento de dados

    • Exclui todos os carregamentos incompletos de várias partes

    • Lida com objetos versionados se o controle de versão do Amazon S3 estiver ativado

    • Fornece atualizações sobre a contagem de objetos e o progresso da exclusão

  3. Digite o seguinte comando para excluir a CloudFormation pilha:

    ./scripts/cleanup-macie-solution.sh \ --delete-stack \ --stack-name <stack name>

    Esse comando faz o seguinte:

    • Inicia o processo de exclusão da CloudFormation pilha

    • Monitora o progresso da exclusão com atualizações de status em tempo real

    • Lida com falhas de exclusão com relatórios de erros detalhados

    • Aguarda a remoção completa da pilha antes de continuar

    • Fornece histórico de eventos da pilha para solução de problemas

  4. Digite o seguinte comando para limpar os recursos do Macie:

    ./scripts/cleanup-macie-solution.sh \ --cleanup-macie \ --stack-name <stack name>

    Essa pilha faz o seguinte:

    • Remove identificadores de dados personalizados criados pela solução

    • Limpa todos os artefatos e descobertas restantes do trabalho de Macie

    • Desativa a sessão do Macie se ela foi ativada pela pilha

    • Lida com casos em que os recursos do Macie são compartilhados com outros aplicativos

    • Fornece o status de limpeza detalhado para cada componente do Macie

AWS geral

Verifique a limpeza.

  1. Digite o comando a seguir para verificar se a pilha foi excluída:

    aws cloudformation describe-stacks \ --stack-name <stack name> \ --region <region>
  2. Insira o seguinte comando para verificar se os buckets do Amazon S3 foram excluídos:

    aws s3 ls | grep macie
  3. Insira o comando a seguir para verificar se os identificadores de dados personalizados do Macie foram removidos:

    aws macie2 list-custom-data-identifiers \ --region <region>
  4. Digite o comando a seguir para verificar se há recursos restantes:

    ./scripts/cleanup-macie-solution.sh \ --verify-cleanup \ --stack-name <stack name>
AWS geral

Solução de problemas

ProblemaSolução

CloudFormation o status da pilha mostra CREATE_FAILED.

O CloudFormation modelo está configurado para publicar registros no CloudWatch Logs. Você pode visualizar os registros no Console de gerenciamento da AWS para não precisar se conectar à sua EC2 instância da Amazon. Para obter mais informações, consulte Exibir CloudFormation registros no console (postagem AWS do blog).

CloudFormation delete-stacko comando falha.

Alguns recursos devem estar vazios para que possam ser excluídos. Por exemplo, você deve excluir todos os objetos em um bucket do Amazon S3 ou remover todas as instâncias em um grupo de EC2 segurança da Amazon antes de excluir o bucket ou o grupo de segurança. Para obter mais informações, consulte Delete stack fail na documentação do Amazon S3.

Erro ao analisar um parâmetro.

Ao usar o AWS CLI ou o CloudFormation console para passar um valor, adicione as aspas.

Recursos relacionados