Einrichten von Amazon-SNS-Benachrichtigungen - Amazon CloudWatch

Einrichten von Amazon-SNS-Benachrichtigungen

Amazon CloudWatch verwendet Amazon SNS, um E-Mails zu versenden. Erstellen und abonnieren Sie zuerst ein SNS-Thema. Bei der Erstellung eines CloudWatch-Alarms können Sie dieses SNS-Thema hinzufügen, sodass eine E-Mail-Benachrichtigung versendet wird, wenn sich der Zustand des Alarms ändert. Weitere Informationen dazu erhalten Sie unter Amazon-Simple-Notification-Service-Handbuch für Erste Schritte.

Wenn Sie Ihren CloudWatch-Alarm mit der AWS Management Console erstellen möchten, können Sie diesen Vorgang auch überspringen, da Sie das Thema beim Erstellen des Alarms erstellen können.

Anmerkung

Wenn Sie ein Amazon-SNS-Thema erstellen, wählen Sie, ob es ein Standardthema oder ein FIFO-Thema wird. CloudWatch garantiert die Veröffentlichung aller Alarmbenachrichtigungen bei beiden Arten von Themen. Selbst wenn Sie ein FIFO-Thema verwenden, sendet CloudWatch in seltenen Fällen die Benachrichtigungen an das inaktive Thema. Wenn Sie ein FIFO-Thema verwenden, legt der Alarm die Nachrichtengruppen-ID der Alarmbenachrichtigungen als Hash des ARN des Alarms fest.

Verhindern von verwirrten Stellvertreterproblemen

Um betriebsübergreifende verwirrte Sicherheitsprobleme der Stellvertreter zu vermeiden, empfehlen wir Ihnen die Verwendung der globalen Bedingungsschlüssel aws:SourceArn und aws:SourceAccount in der Amazon-SNS-Ressourcenrichtlinie, die CloudWatch die Berechtigung zum Zugriff auf Ihre Amazon-SNS-Ressourcen erteilt.

Die folgende Beispiel-Ressourcenrichtlinie verwendet den aws:SourceArn-Bedingungsschlüssel, um die SNS:Publish-Berechtigung so einzuschränken, dass sie nur von CloudWatch-Alarmen im angegebenen Konto verwendet werden darf.

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

Wenn ein Alarm-ARN irgendwelche Nicht-ASCII-Zeichen enthält, verwenden Sie nur den globalen Bedingungsschlüssel aws:SourceAccount zur Begrenzung der Berechtigungen.

Einrichten eines Amazon-SNS-Themas mit AWS Management Console

Zunächst erstellen und abonnieren Sie ein Thema. Sie können optional eine Testnachricht für das Thema veröffentlichen.

So erstellen Sie ein SNS-Thema

  1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie auf dem Amazon-SNS-Dashboard unter Common actions die Option Create Topic.

  3. Geben Sie im Dialogfeld Create new topic (Neues Thema erstellen) unter Topic name (Themaname) einen Namen für das Thema ein (z. B. my-topic).

  4. Wählen Sie Create topic (Thema erstellen) aus.

  5. Kopieren Sie den Topic ARN (Themen-ARN) für die nächste Aufgabe (z. B. arn:aws:sns:us-east-1:111122223333:my-topic).

So abonnieren Sie ein SNS-Thema

  1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie im Navigationsbereich Subscriptions und Create subscription aus.

  3. Fügen Sie im Dialogfeld für Create subscription für Topic ARN den ARN des Themas ein, den Sie im vorherigen Schritt erstellt haben.

  4. Wählen Sie unter Protocol (Protokoll) die Option Email (E-Mail) aus.

  5. Geben Sie für Endpoint (Endpunkt) eine E-Mail-Adresse ein, mit der Sie die Benachrichtigung erhalten können, und wählen Sie dann Create subscription (Abonnement erstellen).

  6. Öffnen Sie in Ihrer E-Mail-Anwendung die Nachricht von AWS Notifications und bestätigen Sie Ihr Abonnement.

    Ihr Webbrowser zeigt eine Bestätigungsantwort vom Amazon SNS an.

So veröffentlichen Sie eine Testnachricht in einem SNS-Thema

  1. Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie im Navigationsbereich Topics (Themen) aus.

  3. Wählen Sie auf der Seite Topics ein Thema und dann Publish to topic aus.

  4. Geben Sie auf der Seite Publish a message (Veröffentlichen einer Nachricht) unter Subject (Betreff) eine Betreffzeile für Ihre Nachricht und unter Message (Nachricht) eine kurze Nachricht ein.

  5. Wählen Sie Publish Message aus.

  6. Überprüfen Sie Ihren E-Mail-Eingang, um zu bestätigen, dass Sie die Nachricht erhalten haben.

Einrichten eines SNS-Themas mit AWS CLI

Zuerst erstellen Sie ein SNS-Thema und veröffentlichen dann eine Nachricht direkt an das Thema, um zu testen, ob Sie es richtig konfiguriert haben.

So richten Sie ein SNS-Thema ein

  1. Erstellen Sie das Thema mit dem Befehl create-topic wie folgt.

    aws sns create-topic --name my-topic

    Amazon SNS gibt einen ARN für das Thema im folgenden Format zurück:

    { "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" }
  2. Abonnieren Sie die E-Mail-Adresse für das Thema mit dem Befehl subscribe. Wenn die Abonnementanfrage erfolgreich ist, erhalten Sie eine Bestätigungs-E-Mail.

    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic --protocol email --notification-endpoint my-email-address

    Amazon SNS gibt Folgendes zurück:

    { "SubscriptionArn": "pending confirmation" }
  3. Öffnen Sie in Ihrer E-Mail-Anwendung die Nachricht von AWS Notifications und bestätigen Sie Ihr Abonnement.

    Ihr Webbrowser zeigt eine Bestätigungsantwort vom Amazon Simple Notification Service an.

  4. Aktivieren Sie das Abonnement mit dem Befehl list-subscriptions-by-topic.

    aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic

    Amazon SNS gibt Folgendes zurück:

    { "Subscriptions": [ { "Owner": "111122223333", "Endpoint": "me@mycompany.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic", "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3" } ] }
  5. (Optional) Veröffentlichen Sie mit dem Befehl publish eine Testnachricht für das Thema.

    aws sns publish --message "Verification" --topic arn:aws:sns:us-east-1:111122223333:my-topic

    Amazon SNS gibt Folgendes zurück.

    { "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" }
  6. Überprüfen Sie Ihren E-Mail-Eingang, um zu bestätigen, dass Sie die Nachricht erhalten haben.