Monitorar segredos programados para exclusão - AWS Secrets Manager

Monitorar segredos programados para exclusão

É possível usar uma combinação entre AWS CloudTrail, Amazon CloudWatch Logs e Amazon Simple Notification Service (Amazon SNS) para criar um alarme que notifique você sobre qualquer tentativa de acesso a um segredo com exclusão pendente. Se você receber uma notificação de um alarme, talvez queira cancelar a exclusão do segredo para ter mais tempo para decidir se deseja realmente excluí-lo. Sua investigação talvez resulte na restauração do segredo porque ainda precisa dele. Como alternativa, talvez seja necessário atualizar o usuário com detalhes do novo segredo a ser usado.

Os procedimentos a seguir explicam como receber uma notificação no caso de uma solicitação para a operação GetSecretValue que resulta em uma mensagem de erro específica gravada nos arquivos de log do CloudTrail. É possível executar outras operações de API no segredo sem acionar o alarme. Esse alarme do CloudWatch detecta o uso que pode indicar uma pessoa ou aplicativo usando credenciais desatualizadas.

Antes de iniciar esses procedimentos, é necessário ativar o CloudTrail na conta e na Região da AWS em que você pretende monitorar solicitações de API do AWS Secrets Manager. Para obter instruções, consulte Criar uma trilha pela primeira vez no AWS CloudTrailManual do usuário.

Etapa 1: configurar a entrega do arquivo de log do CloudTrail para o CloudWatch Logs

Você deve configurar a entrega dos arquivos de log do CloudTrail para o CloudWatch Logs. Você faz isso para que o CloudWatch Logs possa monitorá-los em solicitações de API do Secrets Manager para recuperar um segredo com exclusão pendente.

Para configurar a entrega de um arquivo de log do CloudTrail para o CloudWatch Logs

  1. Abra o console do CloudTrail em https://console.aws.amazon.com/cloudfront/.

  2. Na barra de navegação superior, escolha a região da AWS para monitoração de segredos.

  3. No painel de navegação esquerdo, escolha Trails (Trilhas) e escolha o nome da trilha a ser configurada para o CloudWatch.

  4. Na página Trails Configuration (Configuração de trilhas), role para baixo até a seção CloudWatch Logs. Em seguida, escolha o ícone de edição ( ).

  5. Em New or existing log group, digite um nome para o grupo de log, como CloudTrail/MyCloudWatchLogGroup.

  6. Em IAM role (Função do IAM), use a função padrão denominada CloudTrail_CloudWatchLogs_Role. Essa função tem uma política de função padrão com as permissões necessárias para entregar eventos do CloudTrail para o grupo de logs.

  7. Escolha Continue para salvar suas configurações.

  8. Na página AWS CloudTrail will deliver CloudTrail events associated with API activity in your account to your CloudWatch Logs log group, (O AWS CloudTrail entregará eventos do CloudTrail associados a atividades de API na sua conta ao seu grupo de logs do CloudWatch Logs), selecione Allow (Permitir).

Etapa 2: criar o alarme do CloudWatch

Para receber uma notificação quando uma operação de API GetSecretValue do Secrets Manager solicitar acesso a um segredo com exclusão pendente, é necessário criar um alarme do CloudWatch e configurar a notificação.

Criar um alarme do CloudWatch

  1. Faça login no console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. Na barra de navegação superior, escolha a região da AWS cujos segredos você deseja monitorar.

  3. No painel de navegação esquerdo, selecione Logs.

  4. Na lista de Log Groups (Grupos de log), marque a caixa de seleção ao lado do grupo de logs criado no procedimento anterior, por exemplo CloudTrail/MyCloudWatchLogGroup. Escolha Create Metric Filter (Criar filtro de métrica).

  5. Para Filter Pattern, digite ou cole o seguinte:

    { $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }

    Escolha Assign Metric (Atribuir métrica).

  6. Na página Create Metric Filter and Assign a Metric (Criar filtro de métrica e atribuir uma métrica), faça o seguinte:

    1. Em Metric Namespace (Namespace da métrica), digite CloudTrailLogMetrics.

    2. Para Metric Name (Nome da métrica), digite AttemptsToAccessDeletedSecrets.

    3. Escolha Show advanced metric settings, em seguida, se necessário, para Metric Value, digite 1.

    4. Selecione Create Filter (Criar filtro).

  7. Na caixa de filtro, selecione Create Alarm (Criar alarme).

  8. Na janela Create Alarm (Criar alarme), faça o seguinte:

    1. Para Name (Nome), digite AttemptsToAccessDeletedSecretsAlarm.

    2. Em Whenever: (Sempre:), em is: (é:), escolha >= e digite 1.

    3. Ao lado de Send notification to:, siga um destes procedimentos:

      • Para criar e usar um novo tópico do Amazon SNS, escolha New list (Nova lista) e digite o nome do novo tópico. Para Lista de e-mails:, digite pelo menos um endereço de e-mail. É possível digitar mais de um endereço de e-mail, basta separá-los com vírgulas.

      • Para usar um tópico existente do Amazon SNS, escolha o nome do tópico a ser usado. Se a lista não existir, escolha Select list (Selecionar lista).

    4. Escolha Create Alarm.

Etapa 3: testar o alarme do CloudWatch

Para testar seu alarme, crie um segredo e, em seguida, programe sua exclusão. Em seguida, tente recuperar o valor do segredo. Em breve, você receberá um e-mail no endereço configurado no alarme. Ele alerta sobre o uso de um segredo com a exclusão programada.