Direkt zum Inhalt

Wie konfiguriere ich einen CloudWatch-Alarm mit einem verschlüsselten SNS-Thema?

Lesedauer: 2 Minute
0

Ich möchte einen Amazon CloudWatch-Alarm mit einem verschlüsselten Amazon Simple Notification Service (Amazon-SNS)-Thema konfigurieren.

Kurzbeschreibung

Du musst einen vom Kunden verwalteten Schlüssel im AWS Key Management Service (AWS KMS) verwenden, um Amazon SNS-Benachrichtigungen mit einem verschlüsselten Amazon SNS-Thema für einen CloudWatch-Alarm zu senden. Wenn du den standardmäßigen von AWS verwalteten Schlüssel alias/aws/sns für die Verschlüsselung verwendest, schlägt der CloudWatch-Alarm beim Starten der Alarmaktion fehl. Dann erhältst du im Abschnitt Alarmverlauf eine Meldung, die der folgenden ähnelt:

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

Hinweis: Die standardmäßige AWS-KMS-Schlüsselrichtlinie für Amazon SNS erlaubt CloudWatch-Alarmen nicht, die API-Aufrufe kms:Decrypt und kms:GenerateDataKey auszuführen. Du kannst Richtlinien für von AWS verwaltete Schlüssel nicht manuell bearbeiten.

Lösung

Um einen CloudWatch-Alarm mit einem verschlüsselten Amazon SNS-Thema zu konfigurieren, führe die folgenden Schritte aus:

  1. Öffne die Amazon-SNS-Konsole.

  2. Wähle Thema erstellen aus.

  3. Wähle für Typ die Option Standard aus und erstelle dann einen Themennamen und Anzeigenamen.

  4. Erweitere die Einstellung Verschlüsselung – Optional, um Verschlüsselung zu aktivieren.

  5. Wähle einen vom Kunden verwalteten Schlüssel aus.

  6. Bearbeite die Schlüsselrichtlinie manuell, um CloudWatch-Alarmen die Berechtigungen Decrypt und GenerateDataKey zu erteilen, damit sie Nachrichten an verschlüsselte Amazon-SNS-Themen veröffentlichen können:

    {      
    "Sid": "Allow_CloudWatch_for_CMK",  
      "Effect": "Allow",  
      "Principal": {  
        "Service": [  
          "cloudwatch.amazonaws.com"  
        ]  
      },  
      "Action": [  
        "kms:Decrypt",  
        "kms:GenerateDataKey*"  
      ],  
      "Resource": "*"  
    }
  7. (Optional) Um die Richtlinie restriktiver zu machen, schließe ein Bedingung-Element ein. Zum Beispiel erlaubt der Bedingung-Kontextschlüssel in der folgenden Richtlinie die Aktion nur von der Organisation o-123456789:

    "Resource": "*"
     "Condition": {
        "StringEquals": {
         "aws:SourceOrgID": "o-123456789"
      }
  8. Stelle sicher, dass die Zugriffsrichtlinie des Amazon SNS-Themas die Berechtigung Veröffentlichen enthält, damit CloudWatch-Alarme Nachrichten an das Amazon-SNS-Thema veröffentlichen können:

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

    Hinweis: Ersetze example-region durch deine AWS-Region, example-account-id durch die Konto-ID und example-topic durch den Themennamen.

  9. Wähle Thema erstellen aus.

  10. Erstelle den CloudWatch-Alarm basierend auf einem der folgenden Punkte:<br id=hardline_break/> Statischer Schwellenwert<br id=hardline_break/> Metrisch mathematischer Ausdruck<br id=hardline_break/> Metrik-Insights-Abfrage<br id=hardline_break/> Verbundene Datenquelle<br id=hardline_break/> Anomalieerkennung

Ähnliche Informationen

Amazon CloudWatch-Alarme verwenden

Verschlüsseln von auf Amazon SNS veröffentlichten Nachrichten mit AWS KMS

Warum habe ich keine SNS-Benachrichtigung für meinen CloudWatch-Alarmauslöser erhalten?