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:
- Abra o console do Amazon SNS.
- No painel de navegação, clique em Tópicos e, em seguida, Criar tópico.
- Selecione Padrão para o tipo de tópico e, em seguida, forneça um nome para o tópico.
- Clique em Criar tópico e, em seguida, copie o nome do recurso da Amazon (ARN) do tópico.
- No painel de navegação, selecione Assinaturas e clique em Criar assinatura.
- Adicione o ARN do tópico na seção ARN do tópico e selecione E-mail como o protocolo.
- 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:
- Abra o console do CloudWatch.
- No painel de navegação, clique em Alarmes e depois Todos os alarmes.
- Selecione sua métrica e forneça detalhes sobre o limite e os parâmetros de comparação.
- 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.
- 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:
-
Abra o console do SNS.
-
No painel de navegação, clique em Tópicos e, em seguida, selecione o tópico.
-
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?