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.
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
Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home
. -
Wählen Sie auf dem Amazon-SNS-Dashboard unter Common actions die Option Create Topic.
-
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
). -
Wählen Sie Create topic (Thema erstellen) aus.
-
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
Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home
. -
Wählen Sie im Navigationsbereich Subscriptions und Create subscription aus.
-
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.
-
Wählen Sie unter Protocol (Protokoll) die Option Email (E-Mail) aus.
-
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).
-
Ö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
-
Öffnen Sie die Amazon SNS-Konsole unter https://console.aws.amazon.com/sns/v3/home
. -
Wählen Sie im Navigationsbereich Topics (Themen) aus.
-
Wählen Sie auf der Seite Topics ein Thema und dann Publish to topic aus.
-
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.
-
Wählen Sie Publish Message aus.
-
Ü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
-
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" }
-
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-endpointmy-email-address
Amazon SNS gibt Folgendes zurück:
{ "SubscriptionArn": "pending confirmation" }
-
Ö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.
-
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" } ] }
-
(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" }
-
Überprüfen Sie Ihren E-Mail-Eingang, um zu bestätigen, dass Sie die Nachricht erhalten haben.