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.
Wie behebe ich Fehler des Typs „SignatureDoesNotMatch“ oder „403 Forbidden“ bei Anfragen mit vorsignierten Amazon-S3-URLs?
Ich habe eine vorsignierte URL von Amazon Simple Storage Service (Amazon S3) verwendet, um Anfragen an meinen Amazon-S3-Bucket zu stellen. Dabei habe ich die Fehlermeldung „SignatureDoesNotMatch“ oder „403 Forbidden“ erhalten.
Kurzbeschreibung
Wenn du eine vorsignierte URL generierst, berechnet der Client eine eindeutige Signatur zur Authentifizierung der Anfrage. Daraufhin berechnet Amazon S3 eine Signatur auf der Grundlage der Parameter, die der Client in der HTTP-Anfrage sendet, und vergleicht die Signaturen miteinander. Stimmen die Signaturen nicht überein, erhältst du den Fehler „SignatureDoesNotMatch“.
Lösung
Überprüfe zur Fehlerbehebung die folgenden Konfigurationseinstellungen für deine Anfrage mit einer vorsignierten Amazon-S3-URL.
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. Verwende außerdem unbedingt die neueste Version der AWS CLI.
Validieren der HTTP-Methode
Wenn du eine vorsignierte URL generierst, weist du der URL eine HTTP-Aktion zu. Stelle sicher, dass die Aktion, die der Client in der HTTP-Anfrage sendet, mit der HTTP-Aktion in der URL übereinstimmt. Weist du der URL beispielsweise eine GET-Aktion zu, muss die HTTP-Aktion in der Anfrage ebenfalls GET sein.
Überprüfen des geheimen Zugriffsschlüssels
Prüfe, ob der geheime Zugriffsschlüssel, den du zum Generieren der vorsignierten URL verwendet hast, den Status Falsch, Nicht gültig oder Abgeschaltet aufweist. Der geheime Zugriffsschlüssel nimmt einen dieser Status an, wenn du ihm nicht übereinstimmende Zeichen oder falsche Leerzeichen hinzufügst. Vergewissere dich, dass du den richtigen Zugriffsschlüssel verwendest, um die vorsignierte URL neu zu generieren.
Überprüfen des Bucket- und Schlüsselnamens in der URL
Stelle sicher, dass Bucket-Name und Objektname korrekt sind und mit den Namen übereinstimmen, die in der generierten Signatur der URL enthalten sind. Die Groß- und Kleinschreibung des Namens muss ebenfalls übereinstimmen.
Überprüfen der Header, die in der HTTP-Anfrage verwendet werden
Stelle sicher, dass die HTTP-Header, die du zum Generieren der Signatur verwendest, mit den Headern übereinstimmen, die der Client in der HTTP-Anfrage an S3 sendet.
Achte außerdem darauf, dass der Wert des Headers mit dem Wert übereinstimmt, der bei der Signaturberechnung generiert wurde.
Bestätigen, dass die AWS-Region korrekt ist
Bevor du die vorsignierte URL an S3 sendest, musst du sicherstellen, dass die AWS-Region, in der du die URL generiert hast, mit der Region übereinstimmt, in der sich der Bucket derzeit befindet.
Führe die API-Anforderung GetBucketLocation aus, um herauszufinden, in welcher Region sich dein S3-Bucket befindet. Alternativ kannst du für diese Anfrage den AWS-CLI-Befehl get-bucket-location nutzen:
$ aws s3api get-bucket-location --bucket example-bucket
Beispielausgabe:
{ "LocationConstraint": "us-west-2" }
Überprüfen der Gültigkeitsdauer der Systemzeit
Legst du die Systemzeit auf ein Datum nach Ende der Gültigkeitsdauer der digitalen Signatur fest, wird die Signatur als abgelaufen angezeigt und schlägt fehl. Legst du die Systemzeit auf ein Datum vor Beginn der Gültigkeitsdauer der Signatur fest, ist die Signatur ungültig und schlägt fehl.
Ähnliche Informationen
Objekte mit vorsignierten URLs herunter- und hochladen
Wie behebe ich den Fehler „Request has expired“, wenn ich versuche, auf ein S3-Objekt zuzugreifen?
- Themen
- Storage
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Jahren