Benachrichtigen von Benutzern über Alarmänderungen - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Benachrichtigen von Benutzern über Alarmänderungen

In diesem Abschnitt wird erklärt, wie Sie AWS Benutzerbenachrichtigungen oder Amazon Simple Notification Service verwenden können, um Benutzer über Alarmänderungen zu benachrichtigen.

AWS Benutzerbenachrichtigungen einrichten

Sie können AWS Benutzerbenachrichtigungen verwenden, um Zustellungskanäle einzurichten, über die Sie über Änderungen des CloudWatch Alarmstatus und über Änderungen der Konfiguration informiert werden. Sie erhalten eine Benachrichtigung, wenn ein Ereignis einer von Ihnen angegebenen Regel entspricht. Sie können Benachrichtigungen für Ereignisse über mehrere Kanäle erhalten, einschließlich E-Mail, AWS -Chatbot-Chat-Benachrichtigungen oder Push-Benachrichtigungen der mobilen AWS -Konsolenanwendung. Benachrichtigungen werden auch im Console Notifications Center angezeigt. Die Funktion für Benutzerbenachrichtigungen unterstützt eine Aggregation, wodurch die Anzahl der Benachrichtigungen, die Sie bei bestimmten Ereignissen erhalten, reduziert werden kann.

Die Benachrichtigungskonfigurationen, die Sie mit AWS Benutzerbenachrichtigungen erstellen, werden nicht auf die maximale Anzahl von Aktionen angerechnet, die Sie pro Zielalarmstatus konfigurieren können. Da AWS Benutzerbenachrichtigungen mit den an Amazon gesendeten Ereignissen übereinstimmen EventBridge, sendet Amazon Benachrichtigungen für alle Alarme in Ihrem Konto und ausgewählten Regionen, sofern Sie keinen erweiterten Filter angeben, um bestimmte Alarme oder Muster zuzulassen oder abzulehnen.

Das folgende Beispiel für einen erweiterten Filter entspricht einer Änderung des Alarmstatus von OK auf den angegebenen Alarm. ALARM ServerCpuTooHigh

{ "detail": { "alarmName": ["ServerCpuTooHigh"], "previousState": { "value": ["OK"] }, "state": { "value": ["ALARM"] } } }

Sie können jede der von einem Alarm in EventBridge Ereignissen veröffentlichten Eigenschaften verwenden, um einen Filter zu erstellen. Weitere Informationen finden Sie unter Alarmereignisse und EventBridge.

SNSAmazon-Benachrichtigungen einrichten

Sie können Amazon Simple Notification Service verwenden, um sowohl application-to-application (A2A) als auch application-to-person (A2P) -Nachrichten zu senden, einschließlich mobiler Textnachrichten (SMS) und E-Mail-Nachrichten. Weitere Informationen finden Sie unter Amazon SNS Event Destinations.

Für jeden Status, den ein Alarm annehmen kann, können Sie den Alarm so konfigurieren, dass er eine Nachricht an ein SNS Thema sendet. Jedes SNS Amazon-Thema, das Sie für einen Status bei einem bestimmten Alarm konfigurieren, wird auf die maximale Anzahl von Aktionen angerechnet, die Sie für diesen Alarm und diesen Status konfigurieren können. Sie können von allen Alarmen in Ihrem Konto aus Nachrichten an dasselbe SNS Amazon-Thema senden und dasselbe SNS Amazon-Thema sowohl für Anwendungs- (A2A) als auch für Privatkunden (A2P) verwenden. Da diese Konfiguration auf Alarmebene erfolgt, senden nur die von Ihnen konfigurierten Alarme Nachrichten an das ausgewählte SNS Amazon-Thema.

Zunächst erstellen und abonnieren Sie ein Thema. Sie können optional eine Testnachricht für das Thema veröffentlichen. Ein Beispiel finden Sie unter Einrichten eines SNS Amazon-Themas mit dem AWS Management Console. Weitere Informationen finden Sie unter Erste Schritte mit Amazon SNS.

Wenn Sie den AWS Management Console zur Erstellung Ihres CloudWatch Alarms verwenden möchten, können Sie dieses Verfahren alternativ überspringen, da Sie das Thema bei der Erstellung des Alarms erstellen können.

Wenn Sie einen CloudWatch Alarm erstellen, können Sie Aktionen für jeden Zielstatus hinzufügen, in den der Alarm eintritt. Fügen Sie eine SNS Amazon-Benachrichtigung für den Bundesstaat hinzu, über den Sie benachrichtigt werden möchten, und wählen Sie das SNS Amazon-Thema aus, das Sie im vorherigen Schritt erstellt haben, um eine E-Mail-Benachrichtigung zu senden, wenn der Alarm den ausgewählten Status erreicht.

Anmerkung

Wenn Sie ein SNS Amazon-Thema erstellen, entscheiden Sie, ob Sie es zu einem Standardthema oder einem FIFOThema machen möchten. CloudWatch garantiert die Veröffentlichung aller Alarmmeldungen zu beiden Thementypen. Selbst wenn Sie ein FIFO Thema verwenden, werden die Benachrichtigungen in seltenen Fällen nicht in der richtigen Reihenfolge an das Thema CloudWatch gesendet. Wenn Sie ein FIFO Thema verwenden, setzt der Alarm die Nachrichtengruppen-ID der Alarmbenachrichtigungen auf einen Hash ARN des Alarms.

Vermeiden Sie verwirrende Sicherheitsprobleme bei Stellvertretern

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. In der AWS Tat kann ein dienstübergreifendes Identitätswechsels zu einem Problem mit verwirrten Stellvertretern führen. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der Anruf-Dienst) einen anderen Dienst anruft (den aufgerufenen Dienst). Der aufrufende Service kann manipuliert werden, um seine Berechtigungen zu verwenden, um Aktionen auf die Ressourcen eines anderen Kunden auszuführen, für die er sonst keine Zugriffsberechtigung haben sollte. Um dies zu verhindern, bietet AWS Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben.

Wir empfehlen aws:SourceArn, die Kontextschlüssel aws:SourceAccount, aws:SourceOrgID, und aws:SourceOrgPathsglobal condition in Ressourcenrichtlinien zu verwenden, um die Berechtigungen einzuschränken, die Amazon einem anderen Service für die Ressource SNS erteilt. Verwenden Sie diese aws:SourceArn Option, um nur einer Ressource einen dienstübergreifenden Zugriff zuzuordnen. Wird verwendetaws:SourceAccount, damit jede Ressource in diesem Konto der dienstübergreifenden Nutzung zugeordnet werden kann. Wird verwendetaws:SourceOrgID, um zu ermöglichen, dass jede Ressource aus einem beliebigen Konto innerhalb einer Organisation mit der dienstübergreifenden Nutzung verknüpft wird. Wird verwendetaws:SourceOrgPaths, um jede Ressource aus Konten innerhalb eines AWS Organizations Pfads der dienstübergreifenden Nutzung zuzuordnen. Weitere Informationen zur Verwendung und zum Verständnis von Pfaden finden Sie unter Grundlegendes zum AWS Organizations Entitätspfad.

Der wirksamste Schutz vor dem Problem mit dem verwirrten Deputy ist die Verwendung des Kontextschlüssels für aws:SourceArn globale Bedingungen mit ARN der gesamten Ressource. Wenn Sie die gesamte ARN Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den aws:SourceArn globalen Kontextbedingungsschlüssel mit Platzhalterzeichen (*) für die unbekannten Teile von. ARN Beispiel, arn:aws:servicename:*:123456789012:*.

Wenn der aws:SourceArn Wert die Konto-ID nicht enthält, z. B. ein Amazon S3 S3-BucketARN, müssen Sie beide verwenden aws:SourceAccount und, aws:SourceArn um die Berechtigungen einzuschränken.

Um sich vor dem Confused-Deputy-Problem im großen Maßstab zu schützen, verwenden Sie den globalen Bedingungskontextschlüssel aws:SourceOrgID oder aws:SourceOrgPaths mit der Organisations-ID oder dem Organisationspfad der Ressource in Ihren ressourcenbasierten Richtlinien. Richtlinien, die den Schlüssel aws:SourceOrgID oder aws:SourceOrgPaths enthalten, schließen automatisch die richtigen Konten ein und Sie müssen die Richtlinien nicht manuell aktualisieren, wenn Sie Konten in Ihrer Organisation hinzufügen, entfernen oder verschieben.

Der Wert von aws:SourceArn muss dem Wert ARN des Alarms entsprechen, der Benachrichtigungen sendet.

Das folgende Beispiel zeigt, wie Sie die Kontextschlüssel aws:SourceArn und die aws:SourceAccount globale Bedingung verwenden können, CloudWatch um das Problem des verwirrten Stellvertreters zu vermeiden.

{ "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 irgendwelche ASCII Nichtzeichen ARN enthält, verwenden Sie nur den aws:SourceAccount globalen Bedingungsschlüssel, um die Berechtigungen einzuschränken.

Einrichten eines SNS Amazon-Themas mit dem 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 SNS Amazon-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie im SNS Amazon-Dashboard unter Allgemeine Aktionen die Option Thema erstellen aus.

  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 Thema erstellen aus.

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

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

  2. Wählen Sie im Navigationsbereich Abonnements und Abonnement erstellen aus.

  3. Fügen Sie im Dialogfeld Abonnement erstellen unter Thema das Thema einARN, ARN das Sie in der vorherigen Aufgabe 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 unter AWS Benachrichtigungen und bestätigen Sie Ihr Abonnement.

    Ihr Webbrowser zeigt eine Bestätigungsantwort von Amazon anSNS.

Um eine Testnachricht zu einem SNS Thema zu veröffentlichen
  1. Öffnen Sie die SNS Amazon-Konsole unter https://console.aws.amazon.com/sns/v3/home.

  2. Wählen Sie im Navigationsbereich 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 dem AWS CLI

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

Um ein SNS Thema einzurichten
  1. Erstellen Sie das Thema mit dem Befehl create-topic wie folgt.

    aws sns create-topic --name my-topic

    Amazon SNS gibt ein Thema ARN mit dem 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 unter AWS Benachrichtigungen und bestätigen Sie Ihr Abonnement.

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

  4. Überprüfen Sie das Abonnement mit dem list-subscriptions-by-topicBefehl.

    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.

Schema der SNS Amazon-Benachrichtigungen, wenn sich der Status von Alarmen ändert

In diesem Abschnitt sind die Schemas der Benachrichtigungen aufgeführt, die an SNS Amazon-Themen gesendet werden, wenn Alarme ihren Status ändern.

Schema, wenn sich der Status eines metrischen Alarms ändert

{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "AlarmConfigurationUpdatedTimestamp": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OldStateValue": "string", "OKActions": ["string"], "AlarmActions": ["string"], "InsufficientDataActions": ["string"], "Trigger": { "MetricName": "string", "Namespace": "string", "StatisticType": "string", "Statistic": "string", "Unit": "string or null", "Dimensions": [ { "value": "string", "name": "string" } ], "Period": "integer", "EvaluationPeriods": "integer", "DatapointsToAlarm": "integer", "ComparisonOperator": "string", "Threshold": "number", "TreatMissingData": "string", "EvaluateLowSampleCountPercentile": "string or null" } }

Schema, wenn ein zusammengesetzter Alarm den Status ändert

{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OKActions": [String], "AlarmActions": [String], "InsufficientDataActions": [String], "OldStateValue": "string", "AlarmRule": "string", "TriggeringChildren": [String] }