Warum erhalte ich die Fehlermeldung „Unable to validate the following destination configurations“, wenn ich Amazon S3-Ereignisbenachrichtigungen verwende?
Wenn ich Amazon Simple Storage Service (Amazon S3)-Ereignisbenachrichtigungen verwende, um eine Benachrichtigungskonfiguration hinzuzufügen, erhalte ich die Fehlermeldung „Unable to validate the following destination configurations when creating an Amazon S3 Event Notification“. Ich möchte dieses Problem beheben und lösen.
Kurzbeschreibung
Um Probleme bei der Validierung von Zielkonfigurationen zu vermeiden, solltest du die folgenden Maßnahmen ergreifen:
- Das angegebene Ziel muss über eine ressourcenbasierte Richtlinie verfügen, die es Amazon S3 ermöglicht, Benachrichtigungen an das Ziel zu veröffentlichen.
- Die AWS-Region für das Ziel muss dieselbe Region wie der S3 Bucket sein.
- Wenn das Ziel mit einem AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt ist, muss die Schlüsselrichtlinie den Zugriff auf S3 ermöglichen.
Wenn du eine Konfiguration für eine Ereignisbenachrichtigung aktualisierst, überprüft Amazon S3, ob alle Ereignisziele vorhanden sind. S3 überprüft außerdem, ob die Ereignisziele über die ressourcenbasierten Richtlinien verfügen, die es S3 ermöglichen, je nach Art des Ereignisziels die folgenden Aktionen durchzuführen:
- Ereignisse veröffentlichen
- Nachrichten senden
- Funktionen aufrufen
S3 führt die Prüfungen an neuen Ereigniszielen und allen vorhandenen Ereigniszielen durch, die du während des Updates nicht löschst. Wenn die Prüfungen fehlschlagen, wird möglicherweise der Fehler „Unable to validate the following destination configurations“ angezeigt.
Lösung
Das AWSSupport-TroubleshootS3EventNotifications-Automatisierungs-Runbook ausführen
Verwende AWSSupport-TroubleshootS3EventNotifications, um allgemeine Probleme zu beheben, die beim Hinzufügen einer Ereignisbenachrichtigungskonfiguration auftreten.
Hinweis:
- Das Runbook kann nur dann Konfigurationen für Ereignisbenachrichtigungen auswerten, wenn der Bucket-Besitzer derselbe ist wie der Besitzer des AWS-Kontos, in dem du die Automatisierung ausführst.
- Das Runbook kann keine Richtlinien für Zielressourcen auswerten, die in einem anderen Konto gehostet werden.
Gehe wie folgt vor, um die Automatisierung auszuführen:
- Öffne die AWS Systems Manager-Konsole und anschließend AWSSupport-TroubleshootS3EventNotifications.
- Wähle Execute automation (Automatisierung ausführen) aus.
- Gib deine Eingabeparameter ein.
- Wähle Execute (Ausführen).
- Überprüfe die Ergebnisse im Abschnitt Ausgaben.
Der endgültige Bericht enthält die Ressourcen, die mit dem S3-Bucket als Ziel der Ereignisbenachrichtigung konfiguriert sind. Wenn du weiterhin ein Problem mit der Amazon S3-Ereignisbenachrichtigung hast, verwende die folgende Lösung, um die Probleme manuell zu beheben.
Ereignisse für Ziele löschen, die nicht mehr existieren
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
Wenn deine bestehende Ereignisbenachrichtigung Ereignisse an ein Ziel sendet, das nicht mehr existiert, lösche die Ereignisse, bevor du die Konfiguration der Ereignisbenachrichtigung aktualisierst. Die Benachrichtigung ist möglicherweise im Bucket vorhanden, aber das Ziel ist nicht vorhanden, da du es gelöscht hast, nachdem du die Konfiguration der Ereignisbenachrichtigung aktualisiert hast.
Du kannst die Amazon S3-Konsole, AWS CLI oder die PutBucketNotificationConfiguration-API verwenden, um alle Ereignisse für Ziele zu löschen, die nicht mehr existieren. Es hat sich bewährt, für alle Ereignisse dieselbe PutBucketNotificationConfiguration-API zu verwenden.
Sicherstellen, dass die Ereignisziele über gültige ressourcenbasierte Richtlinien verfügen
Um Nachrichten bei den folgenden AWS-Diensten zu veröffentlichen, stelle sicher, dass dir Amazon S3 die erforderlichen Berechtigungen gewährt, um das entsprechende API aufzurufen:
- Amazon Simple Notification Service (Amazon SNS)-Thema
- Amazon Simple Queue Service (Amazon SQS)-Warteschlange
- AWS-Lambda-Funktion
Beispiel für eine Zielrichtlinie für Amazon-SNS-Themen:
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "Example SNS topic policy", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "SNS-topic-ARN", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }
Beispiel für eine Zielrichtlinie für Amazon-SQS-Warteschlangen:
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "arn:aws:sqs:Region:account-id:queue-name", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:awsexamplebucket1" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id" } } } ] }
Beispiel für eine Zielrichtlinie für eine Lambda-Funktion:
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "s3invoke", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:Region:account-id:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "bucket-owner-account-id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:s3:::awsexamplebucket1" } } } ] }
Wenn du dem Bucket ein neues Ereignis hinzufügst, stelle sicher, dass für das neue Ereignis die gültige ressourcenbasierte Richtlinie gilt.
Weitere Informationen zu Berechtigungen in Bezug auf ein Amazon SNS-Thema oder eine Amazon SQS-Warteschlange findest du unter Erteilen von Berechtigungen zum Veröffentlichen von Nachrichten in einem SNS-Thema oder einer SQS-Warteschlange.
Informationen zum Aktualisieren der Lambda-Funktion mit gültigen Richtlinien findest du im Tutorial: Verwenden eines Amazon-S3-Triggers zum Aufrufen einer Lambda-Funktion.
Wenn du die S3-Konsole verwendest, um Ereignisbenachrichtigungen zu aktivieren, versucht S3, die Richtlinie zu aktualisieren, bevor du die Richtlinie dem Ereignis hinzufügst. Wenn die ressourcenbasierte Richtlinie für das Ereignisziel gültig ist und du dieselbe Fehlermeldung erhältst, überprüfe alle vorhandenen Ereignisziele auf gültige ressourcenbasierte Richtlinien. Wenn du eine ressourcenbasierte Richtlinie für die Ereignisziele änderst, nachdem du die Konfiguration der Ereignisbenachrichtigung auf dem Bucket aktualisiert hast, schlägt die Validierung fehl. Um das Problem zu vermeiden, stelle sicher, dass alle Berechtigungen gültig sind, und lösche Ereignisse mit Zielen, die nicht gültig sind.
Sicherstellen, dass die AWS-KMS-Schlüsselrichtlinie für AWS-KMS-verschlüsselte Themen und Warteschlangen richtig ist
Wenn du die AWS-KMS-Verschlüsselung für ein SQS- oder SNS-Ziel aktiviert hast, aktualisiere die vom Kunden verwaltete Schlüsselrichtlinie, sodass S3 den Schlüssel verwenden kann.
Von AWS verwaltete Schlüssel wie aws/sns und aws/sqs werden nicht unterstützt. Wenn du einen von AWS verwalteten Schlüssel für dein Ereignisziel verwendest, musst du das Ziel aktualisieren, um einen vom Kunden verwalteten Schlüssel zu verwenden. Aktualisiere dann die Schlüsselrichtlinie.
Beispiel für eine AWS-KMS-Schlüsselrichtlinie:
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }
Ähnliche Informationen
AWS Identity and Access Management (IAM)-Richtlinie für ein SNS-Zielthema

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 10 Monaten