Ir para o conteúdo

Como configuro um alarme do CloudWatch com um tópico criptografado do SNS?

3 minuto de leitura
0

Quero configurar um alarme do Amazon CloudWatch com um tópico criptografado do Amazon Simple Notification Service (Amazon SNS).

Breve descrição

Você deve usar uma chave gerenciada pelo cliente do AWS Key Management Service (AWS KMS) para entregar notificações do Amazon SNS com um tópico criptografado do Amazon SNS para um alarme do CloudWatch. Se você usar a chave gerenciada pela AWS alias/aws/sns padrão para criptografia, o alarme do CloudWatch falhará ao iniciar a ação de alarme. Em seguida, você receberá uma mensagem semelhante à seguinte na seção Histórico de alarmes:

"Failed to execute action arn:aws:sns:us-east-1:ACCOUNT_ID:TOPIC_NAME. Received error: "CloudWatch Alarms does not have authorization to access the SNS topic encryption key.""

Observação: a política padrão da chave do AWS KMS no Amazon SNS não permite que os alarmes do CloudWatch realizem chamadas de API kms:Decrypt e kms:GenerateDataKey. Não é possível editar manualmente as políticas em chaves gerenciadas pela AWS.

Resolução

Para configurar um alarme do CloudWatch com um tópico criptografado do Amazon SNS, conclua as seguintes etapas:

  1. Abra o console do Amazon SNS.

  2. Selecione Criar tópico.

  3. Em Tipo, clique em Padrão e, em seguida, crie um nome de tópico e um nome de exibição.

  4. Expanda a configuração Criptografia - opcional para ativar a Criptografia.

  5. Selecione uma chave gerenciada pelo cliente.

  6. Edite manualmente a política de chave para conceder aos alarmes do CloudWatch as permissões Decrypt e GenerateDataKey para publicar mensagens em tópicos criptografados do Amazon SNS:

    {      
    "Sid": "Allow_CloudWatch_for_CMK",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey*"  
      ],  
      "Resource": "*"  
    }
  7. (Opcional) Para tornar a política mais restritiva, inclua um elemento Condition. Por exemplo, a chave de contexto Condition na política a seguir permite a ação somente da organização o-123456789:

    "Resource": "*"
     "Condition": {
        "StringEquals": {
         "aws:SourceOrgID": "o-123456789"
      }
  8. Certifique-se de que a política de acesso do tópico do Amazon SNS inclua a permissão Publish para permitir que os alarmes do CloudWatch publiquem mensagens no tópico do Amazon SNS:

    {     
    "Sid": "Allow_Publish_Alarms",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": "sns:Publish",  
      "Resource": "arn:aws:sns:example-region:example-account-id:example-topic"}

    Observação: substitua example-region pela sua região da AWS, example-account-id pelo ID da conta e example-topic pelo nome do tópico.

  9. Selecione Criar tópico.

  10. Crie o alarme do CloudWatch com base em uma das seguintes opções:<br id=hardline_break/> Limite estático<br id=hardline_break/> Expressão matemática métrica<br id=hardline_break/> Consulta do Metrics Insights<br id=hardline_break/> Fonte de dados conectada<br id=hardline_break/> Detecção de anomalias

Informações relacionadas

Using Amazon CloudWatch alarms (Usando alarmes do Amazon CloudWatch)

Encrypting messages published to Amazon SNS with AWS KMS (Criptografar mensagens publicadas no Amazon SNS com o AWS KMS)

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