Notificação dos usuários sobre mudanças de alarmes - Amazon CloudWatch

Notificação dos usuários sobre mudanças de alarmes

Esta seção explica como é possível usar as Notificações de Usuários da AWS ou o Amazon Simple Notification Service para que os usuários sejam notificados sobre alterações no alarme.

Configurando notificações de usuário da AWS

É possível usar notificações de usuário da AWS para configurar canais de entrega para receber notificações sobre eventos de alteração de estado de alarme da e alteração de configuração do CloudWatch. Você recebe uma notificação quando um evento corresponde a uma regra especificada. É possível receber notificações de eventos por meio de vários canais, incluindo email, notificações de chat do Chatbot da AWS ou Notificações por push da aplicação móvel do Console da AWS. Também é possível ver as notificações na Central de notificações do console. é compatível com agregação, o que pode reduzir o número de notificações recebidas durante eventos específicos.

As configurações de notificação que você cria com as Notificações de Usuários da AWS não contam para o limite do número de ações que podem ser configuradas por estado de alarme alvo. Como as Notificações de Usuários da AWS correspondem aos eventos emitidos para o Amazon EventBridge, elas enviam notificações para todos os alarmes em sua conta e regiões selecionadas, a menos que você especifique um filtro avançado para permitir ou negar alarmes ou padrões específicos.

O exemplo a seguir de um filtro avançado corresponde a uma alteração do estado do alarme de OK para ALARM no alarme chamado ServerCpuTooHigh.

{ "detail": { "alarmName": ["ServerCpuTooHigh"], "previousState": { "value": ["OK"] }, "state": { "value": ["ALARM"] } } }

É possível usar qualquer uma das propriedades publicadas por um alarme nos eventos do EventBridge para criar um filtro. Para ter mais informações, consulte Eventos de alarme e o EventBridge.

Configurar notificações do Amazon SNS

É possível usar o Amazon Simple Notification Service para enviar mensagens de aplicação para aplicação (A2A) e mensagens de aplicação para pessoa (A2P), mensagens de texto para celulares (SMS) e mensagens de email. Para obter mais informações, consulte destinos de eventos do Amazon SNS.

Para cada estado que um alarme pode assumir, é possível configurar o alarme para enviar uma mensagem para um tópico do SNS. Cada tópico do Amazon SNS que você configurar para um estado em um determinado alarme contará para o limite do número de ações que poderão ser configuradas para esse alarme e estado. É possível enviar mensagens para o mesmo tópico do Amazon SNS a partir de qualquer alarme em sua conta e usar o mesmo tópico do Amazon SNS para consumidores de aplicações (A2A) e pessoais (A2P). Como essa configuração é feita no nível do alarme, somente os alarmes que você configurou enviam mensagens para o tópico selecionado do Amazon SNS.

Primeiro, crie um tópico e inscreva-se nele. Você também pode publicar uma mensagem de teste para o tópico. Para ver um exemplo, consulte Configurar um tópico do Amazon SNS usando o AWS Management Console. Ou, para obter mais informações, consulte Conceitos básicos do Amazon SNS.

Se preferir, caso você planeje usar o AWS Management Console para criar seu alarme do CloudWatch, poderá ignorar esse procedimento, pois o tópico poderá ser criado junto com o alarme.

Ao criar um alarme do CloudWatch, será possível adicionar ações para qualquer estado de destino em que o alarme entre. Adicione uma notificação do Amazon SNS para o estado sobre o qual você deseja ser notificado e selecione o tópico do Amazon SNS que você criou na etapa anterior para enviar uma notificação por email quando o alarme entrar no estado selecionado.

nota

Ao criar um tópico do Amazon SNS, você pode escolher torná-lo um tópico padrão ou um tópico FIFO. O CloudWatch garante a publicação de todas as notificações de alarme para ambos os tipos de tópicos. No entanto, mesmo que você use um tópico FIFO, em alguns casos raros, o CloudWatch envia as notificações fora de ordem para o tópico. Se você usar um tópico FIFO, o alarme configura o ID do grupo de mensagens das notificações de alarme como um hash do ARN do alarme.

Evitar problemas de representante confuso

Para evitar problemas de segurança de representante confuso entre serviços, recomendamos o uso das chaves de condição globais aws:SourceArn e aws:SourceAccount na política de recursos do Amazon SNS, que concede permissão ao CloudWatch para acessar os seus recursos do Amazon SNS.

O exemplo de política de recursos a seguir usa a chave de condição aws:SourceArn para restringir a permissão SNS:Publish de forma que ela seja utilizada apenas por alarmes do CloudWatch na conta definida.

{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }] }

Se um ARN de alarme contiver caracteres não ASCII, utilize somente a chave de condição global aws:SourceAccount para limitar as permissões.

Configurar um tópico do Amazon SNS usando o AWS Management Console

Primeiro, crie um tópico e inscreva-se nele. Você também pode publicar uma mensagem de teste para o tópico.

Para criar um tópico do SNS
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. No painel do Amazon SNS, em Common actions (Ações comuns), escolha Create Topic (Criar tópico).

  3. Na caixa de diálogo Create new topic (Criar novo tópico), em Topic name (Nome do tópico), insira um nome para o tópico (por exemplo, my-topic).

  4. Escolha Criar tópico.

  5. Copie o Topic ARN (ARN do tópico) para a próxima tarefa (por exemplo, arn:aws:sns:us-east-1:111122223333:my-topic).

Para se inscrever em um tópico do SNS
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. No painel de navegação, escolha Assinaturas, Criar assinatura.

  3. Na caixa de diálogo Criar assinatura, em ARN do tópico, cole o ARN do tópico que você criou na tarefa anterior.

  4. Em Protocolo, escolha Email.

  5. Em Endpoint, insira um endereço de e-mail para receber a notificação e escolha Create subscription (Criar inscrição).

  6. No aplicativo de e-mail, abra a mensagem de notificações da AWS e confirme a inscrição.

    O navegador da Web exibe uma resposta de confirmação do Amazon SNS.

Para publicar uma mensagem de teste em um tópico do SNS
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. No painel de navegação, escolha Tópicos.

  3. Na página Topics (Tópicos), selecione um tópico e escolha Publish to topic (Publicar em um tópico).

  4. Na página Publish a message (Publicar uma mensagem), em Subject (Assunto), digite uma linha de assunto para a mensagem e em Message (Mensagem), digite uma breve mensagem.

  5. Escolha Publish Message (Publicar mensagem).

  6. Verifique seu e-mail para confirmar que recebeu a mensagem.

Configurar um tópico do SNS usando a AWS CLI

Primeiro você cria um tópico do SNS e, depois, publica uma mensagem diretamente no tópico para verificar se ele foi configurado corretamente.

Para configurar um tópico do SNS
  1. Crie o tópico usando o comando create-topic da forma a seguir.

    aws sns create-topic --name my-topic

    O Amazon SNS retorna um ARN do tópico com o seguinte formato:

    { "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" }
  2. Assine o seu endereço de e-mail para o tópico usando o comando subscribe. Se a solicitação de assinatura for bem-sucedida, você receberá uma mensagem de e-mail de confirmação.

    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic --protocol email --notification-endpoint my-email-address

    O Amazon SNS retorna o seguinte:

    { "SubscriptionArn": "pending confirmation" }
  3. No aplicativo de e-mail, abra a mensagem de notificações da AWS e confirme a inscrição.

    O navegador da Web exibe uma resposta de confirmação do Amazon Simple Notification Service.

  4. Verifique a assinatura usando o comando list-subscriptions-by-topic.

    aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic

    O Amazon SNS retorna o seguinte:

    { "Subscriptions": [ { "Owner": "111122223333", "Endpoint": "me@mycompany.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic", "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3" } ] }
  5. (Opcional) Publique uma mensagem de teste no tópico usando o comando publish.

    aws sns publish --message "Verification" --topic arn:aws:sns:us-east-1:111122223333:my-topic

    O Amazon SNS retorna os resultados a seguir.

    { "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" }
  6. Verifique seu e-mail para confirmar que recebeu a mensagem.