Saltar al contenido

¿Cómo configuro una alarma de CloudWatch con un tema de SNS cifrado?

3 minutos de lectura
0

Quiero configurar una alarma de Amazon CloudWatch con un tema cifrado de Amazon Simple Notification Service (Amazon SNS).

Descripción corta

Debes utilizar una clave administrada por el cliente de AWS Key Management Service (AWS KMS) para enviar notificaciones de Amazon SNS con un tema cifrado de Amazon SNS para una alarma de CloudWatch. Si utilizas la clave administrada de AWS alias/aws/sns predeterminada para el cifrado, la alarma de CloudWatch no puede iniciar la acción de alarma. A continuación, recibirás un mensaje similar al siguiente en la sección Historial de alarmas:

"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.""

Nota: La política de claves de AWS KMS predeterminada para Amazon SNS no permite que las alarmas de CloudWatch realicen llamadas a las API kms:Decrypt y kms:GenerateDataKey. No puedes editar manualmente las políticas de las claves administradas de AWS.

Resolución

Para configurar una alarma de CloudWatch con un tema cifrado de Amazon SNS, sigue estos pasos:

  1. Abre la consola de Amazon SNS.

  2. Elige Crear tema.

  3. En Tipo, elige Estándar y, a continuación, crea un nombre de tema y un nombre para mostrar.

  4. Amplía la configuración Cifrado: opcional para activar el cifrado.

  5. Selecciona una clave administrada por el cliente.

  6. Edita manualmente la política de claves para conceder a las alarmas de CloudWatch los permisos Decrypt y GenerateDataKey para publicar mensajes en temas cifrados de Amazon SNS:

    {      
    "Sid": "Allow_CloudWatch_for_CMK",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey*"  
      ],  
      "Resource": "*"  
    }
  7. (Opcional) Para hacer que la política sea más restrictiva, incluye un elemento de condición. Por ejemplo, la clave de contexto de condición de la siguiente política solo permite la acción desde la organización o-123456789:

    "Resource": "*"
     "Condition": {
        "StringEquals": {
         "aws:SourceOrgID": "o-123456789"
      }
  8. Asegúrate de que la política de acceso del tema de Amazon SNS incluya el permiso de publicación para permitir que las alarmas de CloudWatch publiquen mensajes en el tema de 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"}

    Nota: Sustituye example-region por tu región de AWS, example-account-id por el ID de la cuenta y example-topic por el nombre del tema.

  9. Elige Crear tema.

  10. Crea la alarma de CloudWatch en función de una de las siguientes opciones:<br id=hardline_break/> Umbral estático<br id=hardline_break/> Expresión matemática de la métrica<br id=hardline_break/> Consulta Información de métricas<br id=hardline_break/> Origen de datos conectado<br id=hardline_break/> Detección de anomalías

Información relacionada

Using Amazon CloudWatch alarms (Uso de alarmas de Amazon CloudWatch)

Encrypting messages published to Amazon SNS with AWS KMS (Cifrado de los mensajes publicados en Amazon SNS con AWS KMS)

¿Por qué no he recibido una notificación de SNS cuando se ha activado mi alarma de CloudWatch?