Direkt zum Inhalt

Warum hat mein Amazon-SNS-Thema die EventBridge-Benachrichtigungen nicht erhalten?

Lesedauer: 3 Minute
0

Ich habe eine Amazon-EventBridge-Regel eingerichtet, um Benachrichtigungen an mein Amazon Simple Notification Service (Amazon SNS)-Thema zu senden. Mein Amazon-SNS-Thema hat die Ereignisbenachrichtigungen jedoch nicht erhalten.

Lösung

Sicherstellen, dass sich die Ziele der EventBridge-Regel in derselben Region wie die Regel befinden

Die Ziele, die du einer Regel zuordnest, müssen sich in derselben AWS-Region wie die Regel befinden.

Hinweis: Um die Region zu ermitteln, in der sich eine AWS-Ressource befindet, überprüfe den Amazon-Ressourcennamen (ARN) der Ressource.

Die Metriken „Invocations“ und „FailedInvocations“ der EventBridge-Regel prüfen, um das Problem zu ermitteln

Verwende die Amazon-CloudWatch-Konsole, um die Metriken Invocations FailedInvocations der EventBridge-Regel zu überprüfen.

Wenn es Datenpunkte für beide Metriken gibt, hat die EventBridge-Regelbenachrichtigung versucht, das Ziel aufzurufen, aber der Aufruf ist fehlgeschlagen. Um das Problem zu lösen, musst du EventBridge die erforderlichen Berechtigungen zum Veröffentlichen von Nachrichten zum Thema gewähren. Eine Anleitung findest du im Abschnitt Bestätigen, dass du EventBridge die erforderlichen Berechtigungen zum Veröffentlichen von Nachrichten zum Thema erteilt hast in diesem Artikel.

Wenn es nur Datenpunkte für die Invocations-Metrik gibt, hat die EventBridge-Regelbenachrichtigung das Ziel nicht erreicht. Konfiguriere die Regel für das Ziel neu, um das Problem zu beheben.

Vergewissere dich, dass du EventBridge die erforderlichen Berechtigungen zum Veröffentlichen von Nachrichten zum Thema erteilt hast

Die ressourcenbasierte Richtlinie des Amazon-SNS-Themas muss es EventBridge erlauben, Nachrichten zu dem Thema zu veröffentlichen. Überprüfe die AWS Identity and Access Management (IAM)-Richtlinie des Themas, um sicherzustellen, dass sie über die erforderlichen Berechtigungen verfügt. Wenn die Richtlinie sie nicht enthält, füge die erforderlichen Berechtigungen hinzu.

Wichtig: Du musst events.amazonaws.com als Service-Wert und sns:Publish als Aktion-Wert angeben.

Beispiel für eine IAM-Berechtigungsanweisung, die es EventBridge ermöglicht, Nachrichten zu einem Amazon-SNS-Thema zu veröffentlichen:

{    "Sid": "AWSEvents_ArticleEvent_Id4950650036948",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sns:Publish",
    "Resource": "arn:aws:sns:us-east-1:123456789012:My_SNS_Topic"
}

Sicherstellen, dass die Ausführungsrolle EventBridge die Veröffentlichung auf dem Ziel ermöglicht

Die dem EventBridge-Regelziel zugewiesene IAM-Ausführungsrolle erfordert eine Vertrauensbeziehung mit dem EventBridge-Service. Vergewissere dich, dass die Rollenvertrauensrichtlinie EventBridge (events.amazonaws.com) als vertrauenswürdige Entität einbezieht. Wenn die Vertrauensrichtlinie nicht die erforderlichen Berechtigungen enthält, aktualisiere die Vertrauensrichtlinie, um EventBridge die Berechtigung zu erteilen, die Rolle zu übernehmen.

Beispiel für eine IAM-Vertrauensstellungsanweisung, die es EventBridge ermöglicht, die Ausführungsrolle des Ziels zu übernehmen:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "ACCOUNT-ID",
                    "aws:SourceArn": "EVENTBRIDGE-RULE-ARN"
                }
            }
        }
    ]
}

Wichtig: Gib events.amazonaws.com als Service-Wert und sts:AssumeRole als Aktions-Wert an. Ersetze ACCOUNT-ID durch deine AWS-Konto-ID und EVENTBRIDGE_RULE_ARN durch deinen ARN.

(Bei Themen mit aktivierter SSE) Sich vergewissern, dass das Thema über die erforderlichen AWS-KMS-Berechtigungen verfügt

Das Amazon-SNS-Thema muss einen vom Kunden verwalteten AWS Key Management Service (AWS KMS)-Schlüssel verwenden. Dieser AWS-KMS-Schlüssel muss eine benutzerdefinierte Schlüsselrichtlinie enthalten, die EventBridge die Berechtigung erteilt, den Schlüssel zu verwenden.

Führe die folgenden Schritte aus, um die erforderlichen AWS-KMS-Berechtigungen einzurichten:

  1. Erstelle einen neuen, vom Kunden verwalteten Schlüssel und stelle sicher, dass du die erforderlichen Berechtigungen für EventBridge (events.amazonaws.com) angibst.
  2. Verwende den vom Kunden verwalteten Schlüssel, um die serverseitige Verschlüsselung (SSE) für das Amazon-SNS-Thema zu konfigurieren.
  3. Konfiguriere AWS-KMS-Berechtigungen, die es EventBridge ermöglichen, Nachrichten zum verschlüsselten Thema (events.amazonaws.com) zu veröffentlichen.

Beispiel für eine IAM-Richtlinienanweisung, die es EventBridge ermöglicht, Nachrichten zu einem verschlüsselten Amazon-SNS-Thema zu veröffentlichen:

{    "Sid": "Allow CWE to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*"
}
AWS OFFICIALAktualisiert vor 4 Monaten