Monitorar quando os segredos do AWS Secrets Manager programados para exclusão são acessados
É 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 aplicação usando credenciais desatualizadas.
Antes de iniciar esses procedimentos, é necessário ativar o CloudTrail na Região da AWS e conta 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
-
Abra o console do CloudTrail em https://console.aws.amazon.com/cloudfront/
. -
Na barra de navegação superior, escolha a Região da AWS para monitoração de segredos.
-
No painel de navegação esquerdo, escolha Trails (Trilhas) e escolha o nome da trilha a ser configurada para o CloudWatch.
-
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 ( ).
-
Em New or existing log group, digite um nome para o grupo de log, como
CloudTrail/MyCloudWatchLogGroup
. -
Em IAM role (Perfil do IAM), use o perfil padrão denominado 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.
-
Escolha Continue para salvar suas configurações.
-
Na página, o AWS CloudTrail entregará eventos do CloudTrail associados à atividade da API em sua conta para seu grupo de logs do CloudWatch Logs, escolha 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
-
Faça login no console do CloudWatch em https://console.aws.amazon.com/cloudwatch/
. -
Na barra de navegação superior, escolha a região da AWS cujos segredos você deseja monitorar.
-
No painel de navegação esquerdo, selecione Logs.
-
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).
-
Para Filter Pattern, digite ou cole o seguinte:
{ $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }
Escolha Assign Metric (Atribuir métrica).
-
Na página Create Metric Filter and Assign a Metric (Criar filtro de métrica e atribuir uma métrica), faça o seguinte:
-
Em Metric Namespace (Namespace da métrica), digite
CloudTrailLogMetrics
. -
Para Metric Name (Nome da métrica), digite
AttemptsToAccessDeletedSecrets
. -
Escolha Show advanced metric settings, em seguida, se necessário, para Metric Value, digite
1
. -
Selecione Create Filter (Criar filtro).
-
-
Na caixa de filtro, selecione Create Alarm (Criar alarme).
-
Na janela Create Alarm (Criar alarme), faça o seguinte:
-
Para Name (Nome), digite
AttemptsToAccessDeletedSecretsAlarm
. -
Em Whenever: (Sempre:), em is: (é:), escolha >= e digite
1
. -
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).
-
-
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.