View a markdown version of this page

Anfragen authentifizieren (AWS Signatur (Version 4) - Amazon Simple Storage Service

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.

Anfragen authentifizieren (AWS Signatur (Version 4)

Jede Interaktion mit Amazon S3 erfolgt entweder authentifiziert oder anonym. In diesem Abschnitt wird die Anforderungsauthentifizierung mit dem AWS Signature Version 4-Algorithmus erklärt.

Anmerkung

Wenn Sie die AWS SDKs (siehe Beispielcode und Bibliotheken) zum Senden Ihrer Anfragen verwenden, müssen Sie diesen Abschnitt nicht lesen, da die SDK-Clients Ihre Anfragen mithilfe der von Ihnen bereitgestellten Zugriffsschlüssel authentifizieren. Sofern Sie keinen guten Grund haben, dies nicht zu tun, sollten Sie immer die AWS SDKs verwenden. In Regionen, die beide Signaturversionen unterstützen, können Sie AWS SDKs auffordern, eine bestimmte Signaturversion zu verwenden. Weitere Informationen finden Sie unter Senden authentifizierter Anfragen mit dem AWS SDKs. Sie müssen diesen Abschnitt nur lesen, wenn Sie den AWS Signature Version 4-Algorithmus in Ihrem benutzerdefinierten Client implementieren.

Die Authentifizierung mit AWS Signature Version 4 bietet einige oder alle der folgenden Funktionen, je nachdem, wie Sie Ihre Anfrage signieren:

  • Überprüfung der Identität des Anforderers — Für authentifizierte Anfragen ist eine Signatur erforderlich, die Sie mithilfe Ihrer Zugangsschlüssel (Zugriffsschlüssel-ID, geheimer Zugriffsschlüssel) erstellen. Informationen zum Abrufen von Zugriffsschlüsseln finden Sie unter Grundlegendes und Abrufen Ihrer Sicherheitsanmeldeinformationen im. Allgemeine AWS-Referenz Wenn Sie temporäre Sicherheitsanmeldeinformationen verwenden, ist für die Signaturberechnungen auch ein Sicherheitstoken erforderlich. Weitere Informationen finden Sie unter Anfordern von temporären Sicherheitsanmeldeinformationen im -IAM-Benutzerhandbuch.

  • In-transit Datenschutz — Um zu verhindern, dass eine Anfrage während der Übertragung manipuliert wird, verwenden Sie einige der Anforderungselemente, um die Anforderungssignatur zu berechnen. Nach Erhalt der Anfrage berechnet Amazon S3 die Signatur mithilfe derselben Anforderungselemente. Wenn eine von Amazon S3 empfangene Anforderungskomponente nicht mit der Komponente übereinstimmt, die zur Berechnung der Signatur verwendet wurde, lehnt Amazon S3 die Anfrage ab.

  • Vor Wiederverwendung der signierten Teile der Anfrage schützen — Die signierten Teile (mithilfe von AWS Signaturen) von Anfragen sind innerhalb von 15 Minuten ab dem Zeitstempel in der Anfrage gültig. Eine nicht autorisierte Partei, die Zugriff auf eine signierte Anfrage hat, kann die unsignierten Teile der Anfrage ändern, ohne dass die Gültigkeit der Anfrage innerhalb des 15-Minuten-Fensters beeinträchtigt wird. Aus diesem Grund empfehlen wir Ihnen, den Schutz zu maximieren, indem Sie Header und Text der Anfrage signieren, HTTPS-Anfragen an Amazon S3 stellen und den s3:x-amz-content-sha256 Bedingungsschlüssel (sieheAmazon S3 Signature Version 4: Spezifische Richtlinienschlüssel für die Authentifizierung) in den AWS Richtlinien verwenden, um Benutzer dazu zu verpflichten, Amazon S3-Anfragetexte zu signieren.

Anmerkung

Amazon S3 unterstützt insgesamt Signature Version 4, ein Protokoll zur Authentifizierung eingehender API-Anfragen an AWS Dienste. AWS-Regionen Derzeit wird das vor dem 30. Januar 2014 AWS-Regionen erstellte Protokoll, Signature Version 2, weiterhin unterstützt. Alle neuen Regionen nach dem 30. Januar 2014 unterstützen nur Signature Version 4, weshalb alle Anfragen an diese Regionen mit Signature Version 4 gestellt werden müssen. Weitere Informationen zu AWS Signature Version 2 finden Sie unter Signieren und Authentifizieren von REST-Anfragen im Amazon Simple Storage Service-Benutzerhandbuch.

Authentifizierungsmethoden

Sie können Authentifizierungsinformationen mithilfe einer der folgenden Methoden ausdrücken:

  • HTTP-Autorisierungsheader — Die Verwendung des Authorization HTTP-Headers ist die gängigste Methode zur Authentifizierung einer Amazon S3-Anfrage. Alle Amazon S3-REST-Operationen (mit Ausnahme von browserbasierten Uploads mit POST-Anfragen) benötigen diesen Header. Weitere Informationen zum Authorization Header-Wert und zur Berechnung der Signatur und der zugehörigen Optionen finden Sie unter. Authentifizieren von Anfragen: Verwenden des Autorisierungs-Headers (AWS Signatur (Version 4)

  • Parameter für Abfragezeichenfolgen — Sie können eine Abfragezeichenfolge verwenden, um eine Anfrage vollständig in einer URL auszudrücken. In diesem Fall verwenden Sie Abfrageparameter, um Anforderungsinformationen bereitzustellen, einschließlich der Authentifizierungsinformationen. Da die Anforderungssignatur Teil der URL ist, wird diese Art von URL oft als vorsignierte URL bezeichnet. Sie können vorsignierte URLs verwenden, um anklickbare Links, die bis zu sieben Tage gültig sein können, in HTML einzubetten. Weitere Informationen finden Sie unter Anfragen authentifizieren: Verwenden von Abfrageparametern (AWS Signatur (Version 4).

Amazon S3 unterstützt auch browserbasierte Uploads, die HTTP-POST-Anfragen verwenden. Mit einer HTTP-POST-Anfrage können Sie Inhalte direkt aus dem Browser auf Amazon S3 hochladen. Informationen zur Authentifizierung von POST-Anfragen finden Sie unterBrowser-Based Uploads mit POST (AWS Signatur (Version 4).

Einführung in das Signieren von Anfragen

Die Authentifizierungsinformationen, die Sie in einer Anfrage senden, müssen eine Signatur enthalten. Um eine Signatur zu berechnen, verketten Sie zunächst ausgewählte Anforderungselemente zu einer Zeichenfolge, die als zu signierende Zeichenfolge bezeichnet wird. Anschließend verwenden Sie einen Signaturschlüssel, um den Hash-basierten Nachrichtenauthentifizierungscode (HMAC) der zu signierenden Zeichenfolge zu berechnen.

In AWS Signature Version 4 verwenden Sie Ihren geheimen Zugangsschlüssel nicht, um die Anfrage zu signieren. Verwenden Sie stattdessen zunächst Ihren geheimen Zugriffsschlüssel, um einen Signierschlüssel abzuleiten. Der abgeleitete Signaturschlüssel ist spezifisch für Datum, Service und Region. Weitere Informationen zum Ableiten eines Signaturschlüssels in verschiedenen Programmiersprachen finden Sie unter Beispiele für das Ableiten eines Signaturschlüssels für Signature Version 4.

Das folgende Diagramm veranschaulicht den allgemeinen Prozess der Berechnung einer Signatur.

Three-step Prozess, der die StringToSign Erstellung, die Ableitung des Signierschlüssels und die Signaturberechnung unter Verwendung von verwendet. HMAC-SHA256

Die zu signierende Zeichenfolge hängt von der Art der Anfrage ab. Wenn Sie beispielsweise den HTTP-Autorisierungsheader oder die Abfrageparameter für die Authentifizierung verwenden, verwenden Sie eine variierende Kombination von Anforderungselementen, um die zu signierende Zeichenfolge zu erstellen. Bei einer HTTP-POST-Anforderung ist die POST-Richtlinie in der Anfrage die Zeichenfolge, die Sie signieren. Weitere Informationen zur Berechnung der zu signierenden Zeichenfolge finden Sie unter den Links am Ende dieses Abschnitts.

Für den Signaturschlüssel zeigt das Diagramm eine Reihe von Berechnungen, wobei das Ergebnis jedes Schritts in den nächsten Schritt einfließt. Der letzte Schritt ist der Signaturschlüssel.

Nach Erhalt einer authentifizierten Anfrage erstellen die Amazon S3-Server die Signatur neu, indem sie die in der Anfrage enthaltenen Authentifizierungsinformationen verwenden. Wenn die Signaturen übereinstimmen, verarbeitet Amazon S3 Ihre Anfrage; andernfalls wird die Anfrage abgelehnt.

Weitere Informationen zur Authentifizierung von Anfragen finden Sie in den folgenden Themen: