Comment puis-je configurer une alarme CloudWatch avec une rubrique SNS chiffrée ?

Lecture de 3 minute(s)
0

Je souhaite configurer une alarme Amazon CloudWatch avec une rubrique Amazon Simple Notification Service (Amazon SNS) chiffrée.

Brève description

Vous devez utiliser une clé gérée par le client AWS Key Management Service (AWS KMS) pour envoyer des notifications Amazon SNS avec une rubrique Amazon SNS chiffrée pour une alarme CloudWatch. Si vous utilisez la clé gérée par AWS alias/aws/sns par défaut pour le chiffrement, l'alarme CloudWatch ne déclenche pas l'action d'alarme. Vous recevez ensuite un message similaire au message suivant dans la section Historique des alarmes :

« Failed to execute action arn:aws:sns:us-east-1:ACCOUNT_ID:TOPIC_NAME. Erreur reçue : « CloudWatch Alarms does not have authorization to access the SNS topic encryption key." »

Remarque : La stratégie de clé AWS KMS par défaut pour Amazon SNS n'autorise pas les alarmes CloudWatch à effectuer des appels d'API kms:Decrypt et kms:GenerateDataKey. Vous ne pouvez pas modifier manuellement les stratégies relatives aux clés gérées par AWS.

Résolution

Pour configurer une alarme CloudWatch avec une rubrique Amazon SNS chiffrée, procédez comme suit :

  1. Ouvrez la console Amazon SNS.

  2. Sélectionnez Créer une rubrique.

  3. Pour Type, sélectionnez Standard, puis créez un nom de rubrique et un nom d'affichage.

  4. Développez le paramètre Chiffrement - facultatif pour activer Chiffrement.

  5. Sélectionnez une clé gérée par le client.

  6. Modifiez manuellement la stratégie de clé pour accorder aux alarmes CloudWatch les autorisations Déchiffrer et GenerateDataKey pour publier des messages dans des rubriques Amazon SNS chiffrées :

    {      
    "Sid": "Allow_CloudWatch_for_CMK",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey*"  
      ],  
      "Resource": "*"  
    }
  7. (Facultatif) Pour rendre la stratégie plus restrictive, incluez un élément Condition. Par exemple, la clé de contexte Condition de la stratégie suivante autorise l'action uniquement à partir de l'organisation o-123456789 :

    "Resource": "*"
     "Condition": {
        "StringEquals": {
         "aws:SourceOrgID": "o-123456789"
      }
  8. Assurez-vous que la stratégie d’accès de la rubrique Amazon SNS inclut l’autorisation Publier pour autoriser les alarmes CloudWatch à publier des messages dans la rubrique 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"}

    Remarque : Remplacez example-region par votre région AWS, example-account-id par l’ID de compte et example-topic par le nom de la rubrique.

  9. Sélectionnez Créer une rubrique.

  10. Créez l'alarme CloudWatch en fonction de l'une des options suivantes :
    Seuil statique
    Expression mathématique de métrique
    Requête d'information sur les métriques
    Source de données connectée
    Détection des anomalies

Informations connexes

Utilisation des alarmes Amazon CloudWatch

Chiffrement des messages publiés sur Amazon SNS avec AWS KMS

Pourquoi n'ai-je pas reçu de notification SNS pour mon déclencheur d'alerte Amazon CloudWatch ?