Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Warum erhalte ich die Fehlermeldung „Unable to validate the following destination configurations“, wenn ich Amazon S3-Ereignisbenachrichtigungen mit Allzweck-Buckets 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.
Lösung
Wenn du eine Konfiguration für eine Ereignisbenachrichtigung hinzufügst oder aktualisierst, überprüft Amazon S3, ob alle Ereignisziele vorhanden sind. Amazon S3 überprüft auch, ob die Ereignisziele über die ressourcenbasierten Richtlinien verfügen, die es Amazon S3 ermöglichen, die folgenden Aktionen durchzuführen:
- Ereignisse veröffentlichen
- Nachrichten senden
- Funktionen aufrufen
Während eines Updates überprüft Amazon S3 die neuen Ereignisziele und alle vorhandenen Ereignisziele, 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.
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Hinweis: Ereignisbenachrichtigungen werden nur für Allzweck-Buckets unterstützt. Verzeichnis-Buckets und Tabellen-Buckets unterstützen keine Ereignisbenachrichtigungen. Wenn du eine Funktion zur Benachrichtigung über Ereignisse benötigst, verwende einen Allzweck-Bucket.
Das AWSSupport-TroubleshootS3EventNotifications-Automatisierungs-Runbook ausführen
Verwende AWSSupport-TroubleshootS3EventNotifications, um Probleme zu beheben, die beim Hinzufügen einer Ereignisbenachrichtigungskonfiguration auftreten.
Hinweis:
- Das Runbook kann Konfigurationen für Ereignisbenachrichtigungen nur auswerten, wenn der Bucket-Besitzer auch das AWS-Konto besitzt, auf 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 Ausführen aus.
- Ü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 weiterhin ein Problem mit der S3-Ereignisbenachrichtigung auftritt, verwende die folgende Lösung, um die Probleme manuell zu beheben.
Ereignisse für Ziele löschen, die nicht mehr existieren
Wenn Ziele für deine S3-Ereignisbenachrichtigungen nicht mehr existieren, musst du die Konfigurationen für diese Benachrichtigungen löschen. Wenn du beispielsweise ein Ziel wie eine Lambda-Funktion löschst, lösche die zugehörigen Einstellungen für die Ereignisbenachrichtigung, die in deinem Allzweck-Bucket verbleiben. Du kannst veraltete Ereignisbenachrichtigungen mit der Amazon S3-Konsole, der AWS CLI oder der PutBucketNotificationConfiguration-API löschen. Wir empfehlen, dass du die PutBucketNotificationConfiguration-API verwendest, um alle deine Ereignisbenachrichtigungen zu verwalten.
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 Amazon SNS- oder Amazon SQS-Berechtigungen 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 Amazon S3-Konsole verwendest, um Ereignisbenachrichtigungen zu aktivieren, versucht Amazon 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 deine 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 Key Management Service (AWS KMS)-Verschlüsselung für ein SQS- oder SNS-Ziel aktiviert hast, aktualisiere die vom Kunden verwaltete Schlüsselrichtlinie, damit Amazon 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
- Themen
- Storage
- Sprache
- Deutsch
