Ir para o conteúdo

Como invoco um tópico do Amazon SNS em contas diferentes com um alarme do CloudWatch?

3 minuto de leitura
0

Quero invocar um tópico do Amazon Simple Notification Service (Amazon SNS) com um alarme do Amazon CloudWatch em diferentes contas da AWS.

Resolução

Observação: a resolução a seguir usa duas contas.

Use a conta A para criar o alarme do CloudWatch e a conta B para criar um tópico do Amazon SNS. Em seguida, atualize a política de acesso do tópico do SNS para permitir que o alarme da conta A publique mensagens.

Crie um tópico do SNS na conta B

Conclua as etapas a seguir:

  1. Abra o console do Amazon SNS.
  2. No painel de navegação, clique em Tópicos e, em seguida, Criar tópico.
  3. Selecione Padrão para o tipo de tópico e, em seguida, forneça um nome para o tópico.
  4. Clique em Criar tópico e, em seguida, copie o nome do recurso da Amazon (ARN) do tópico.
  5. No painel de navegação, selecione Assinaturas e clique em Criar assinatura.
  6. Adicione o ARN do tópico na seção ARN do tópico e selecione E-mail como o protocolo.
  7. Clique em Criar assinatura e, em seguida, verifique seu e-mail para confirmar a assinatura.

Crie um alarme do CloudWatch na conta A

Conclua as etapas a seguir:

  1. Abra o console do CloudWatch.
  2. No painel de navegação, clique em Alarmes e depois Todos os alarmes.
  3. Selecione sua métrica e forneça detalhes sobre o limite e os parâmetros de comparação.
  4. Em Configurar ações, em Notificações, clique em Usar ARN do tópico para notificar outras contas e, em seguida, insira o ARN do tópico da Conta B.
  5. Crie um nome para o alarme e selecione Criar alarme.

Atualize a política de acesso do tópico do SNS na conta B

Quando você atualiza a política de acesso do tópico do SNS na conta B, isso permite que o alarme publique mensagens.

Conclua as etapas a seguir:

  1. Abra o console do SNS.

  2. No painel de navegação, clique em Tópicos e, em seguida, selecione o tópico.

  3. Clique em Editar e adicione a seguinte declaração à política:

    {
        "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"
                }
            }
        }]
    }

    Observação: na política anterior, substitua os valores de exemplo por seus valores.

Teste o alarme

Para testar o alarme, altere o limite do alarme com base nos pontos de dados das métricas ou execute o comando set-alarm-state. Ao alterar o limite ou o estado do alarme, você recebe uma notificação por e-mail.

Informações relacionadas

Allow any CloudWatch alarm to publish to a topic in a different account (Permitir que qualquer alarme do CloudWatch seja publicado em um tópico em uma conta diferente)

Por que não recebi uma notificação do SNS me avisando que o alarme do CloudWatch foi acionado?