Erstellen einer signierten AWS-API-Anforderung
Wichtig
Wenn Sie ein AWS-SDK (Informationen unter Beispiel-Code und Bibliotheken
In Regionen, die mehrere Signaturversionen unterstützen, müssen Sie beim manuellen Signieren von Anfragen angeben, welche Signaturversion verwendet wird. Wenn Sie Anfragen an Multi-Region-Zugriffspunkte stellen, wechseln SDKs und die CLI ohne zusätzliche Konfiguration automatisch zur Verwendung der Signaturversion 4A.
Sie können das AWS-SigV4-Signaturprotokoll verwenden, um eine signierte Anfrage für AWS-API-Anfragen zu erstellen.
-
Erstellen einer kanonischen Anfrage basierend auf den Anfragedetails.
-
Berechnung einer Signatur anhand Ihrer AWS-Anmeldeinformationen.
-
Hinzufügen dieser Signatur zur Anfrage als Autorisierungs-Header.
AWS repliziert dann diesen Prozess und überprüft die Signatur, wobei der Zugriff entsprechend gewährt oder verweigert wird.
Informationen dazu, wie Sie AWS SigV4 zum Signieren von API-Anfragen verwenden können, finden Sie unter Anfordern von Signaturbeispielen.
In der folgenden Tabelle werden die beim Erstellen einer signierten Anfrage verwendeten Funktionen beschrieben. Für diese Funktionen muss Code implementiert werden. Weitere Informationen finden Sie in den Code-Beispielen in den AWS-SDKs.
| Funktion | Beschreibung |
|---|---|
|
|
Wandeln Sie die Zeichenfolge in Kleinbuchstaben um. |
|
|
Kodierung in Kleinbuchstaben im Basis-16-Format. |
|
|
Kryptografische Hash-Funktion des Secure Hash Algorithm (SHA). |
|
|
Berechnet HMAC unter Verwendung des SHA256-Algorithmus mit dem bereitgestellten Signaturschlüssel. Dies ist die endgültige Signatur, wenn Sie mit SigV4 signieren. |
|
|
Die Signatur basiert auf dem Elliptic Curve Digital Signature Algorithm (ECDSA) und wird mithilfe asymmetrischer Signaturen auf Basis der Kryptografie mit öffentlichen und privaten Schlüsseln berechnet. |
|
|
Eine NIST SP800-108 KDF im Zählermodus verwendet die PRF-Funktion HMAC-SHA256 gemäß NIST SP 800-108r1 |
|
|
Eine Oktett-zu-Ganzzahl-Funktion gemäß ANSI X9.62. |
|
|
Entfernen Sie alle führenden oder nachgestellten Leerzeichen. |
|
|
URI kodiert jedes Byte. UriEncode() muss die folgenden Regeln erzwingen:
WichtigDie von Ihrer Entwicklungsplattform bereitgestellten Standard-UriEncode-Funktionen funktionieren möglicherweise aufgrund von Unterschieden in der Implementierung und damit verbundenen Unklarheiten in den zugrunde liegenden RFCs nicht. Es empfiehlt sich, Ihre eigene benutzerdefinierte UriEncode-Funktion zu schreiben, um sicherzustellen, dass Ihre Codierung funktioniert. Ein Beispiel für eine UriEncode-Funktion in Java finden Sie unter Java Utilities |
Anmerkung
Zum Signieren Ihrer Anfragen können Sie entweder AWS SigV4 oder AWS SigV4a verwenden. Der Hauptunterschied zwischen den beiden wird dadurch bestimmt, wie die Signatur berechnet wird. Bei SigV4a ist der Regionssatz zwar in der zu signierenden Zeichenfolge enthalten, jedoch nicht Teil des Schritts zur Ableitung der Anmeldeinformationen.
Signieren von Anfragen mit temporären Sicherheits-Anmeldeinformationen
Anstatt langfristige Anmeldeinformationen zum Signieren einer Anfrage zu verwenden, können Sie temporäre Sicherheitsanmeldeinformationen verwenden, die von AWS Security Token Service (AWS STS) bereitgestellt werden.
Wenn Sie temporäre Sicherheitsanmeldeinformationen verwenden, müssen Sie dem Autorisierungs-Header X-Amz-Security-Token hinzufügen oder es in die Abfragezeichenfolge aufnehmen, um das Sitzungs-Token zu speichern. Bei einigen Services müssen Sie die kanonische Anforderung durch das X-Amz-Security-Token ergänzen. Bei anderen Services müssen Sie nur am Ende, nach der Berechnung der Signatur, X-Amz-Security-Token hinzufügen. Informationen zu den spezifischen Anforderungen finden Sie in der Dokumentation zu jedem AWS-Service.
Zusammenfassung der Signierschritte
Erstellen einer kanonischen Anfrage
Ordnen Sie den Inhalt Ihrer Anfrage (Host, Aktion, Header usw.) in einem standardmäßigen kanonischen Format an. Die kanonische Anfrage ist eine der Eingaben, die zum Erstellen der zu signierenden Zeichenfolge verwendet werden. Einzelheiten zum Erstellen der kanonischen Anfrage finden Sie unter Elemente einer AWS-API-Anforderungssignatur.
Hash der kanonischen Anfrage erstellen
Hashen Sie die kanonische Anfrage mit demselben Algorithmus, den Sie zum Erstellen des Hashs der Nutzlast verwendet haben. Der Hash der kanonischen Anfrage ist eine Zeichenfolge aus hexadezimalen Zeichen in Kleinbuchstaben.
Erstellen einer zu signierenden Zeichenfolge
Erstellen Sie eine Zeichenfolge zum Signieren mit der kanonischen Anfrage und zusätzlichen Informationen wie dem Algorithmus, dem Anfragedatum, dem Umfang der Anmeldeinformationen und dem Hash der kanonischen Anfrage.
Signaturschlüssel ableiten
Verwenden Sie den geheimen Zugriffsschlüssel, um den Schlüssel zum Signieren der Anfrage abzuleiten.
Berechnen der Signatur
Führen Sie eine Keyed-Hash-Operation für die zu signierende Zeichenfolge durch und verwenden Sie dabei den abgeleiteten Signaturschlüssel als Hash-Schlüssel.
Hinzufügen der Signatur zur Anfrage
Fügen Sie die berechnete Signatur einem HTTP-Header oder der Abfragezeichenfolge der Anfrage hinzu.
Erstellen einer kanonischen Anfrage
Um eine kanonische Anfrage zu erstellen, verketten Sie die folgenden Zeichenfolgen, getrennt durch Zeilenumbruchzeichen. Dadurch wird sichergestellt, dass die von Ihnen berechnete Signatur mit der von AWS berechneten Signatur übereinstimmt.
<HTTPMethod>\n<CanonicalURI>\n<CanonicalQueryString>\n<CanonicalHeaders>\n<SignedHeaders>\n<HashedPayload>
-
HTTPMethod– Die HTTP-Methode, z. B.GET,PUT,HEADundDELETE. -
CanonicalUri– Die URI-codierte Version des absoluten Pfadkomponenten-URI, beginnend mit dem/, das auf den Domain-Namen folgt, bis zum Ende der Zeichenfolge oder bis zum Fragezeichenzeichen (?), wenn Sie über Abfragezeichenfolgen-Parameter verfügen. Wenn der absolute Pfad leer ist, verwenden Sie einen umgekehrten Schrägstrich (/). Beim URI im folgenden Beispiel,/amzn-s3-demo-bucket/myphoto.jpg, handelt es sich um den absoluten Pfad und Sie codieren das/nicht im absoluten Pfad:http://s3.amazonaws.com/amzn-s3-demo-bucket/myphoto.jpg -
CanonicalQueryString– Die URI-codierten Abfragezeichenfolgenparameter. Sie kodieren jeden Namen und jeden Wert einzeln per URI. Sie müssen die Parameter in der kanonischen Abfragezeichenfolge außerdem alphabetisch nach Schlüsselnamen sortieren. Die Sortierung erfolgt nach der Codierung. Die Abfragezeichenfolge im folgenden URI-Beispiel lautet:http://s3.amazonaws.com/amzn-s3-demo-bucket?prefix=somePrefix&marker=someMarker&max-keys=2Die kanonische Abfragezeichenfolge lautet wie folgt (zur besseren Lesbarkeit wurden diesem Beispiel Zeilenumbrüche hinzugefügt):
UriEncode("marker")+"="+UriEncode("someMarker")+"&"+ UriEncode("max-keys")+"="+UriEncode("20") + "&" + UriEncode("prefix")+"="+UriEncode("somePrefix")Wenn eine Anfrage auf eine Unterressource abzielt, ist der entsprechende Abfrageparameterwert eine leere Zeichenfolge (
""). Der folgende URI identifiziert beispielsweise dieACL-Unterressource imamzn-s3-demo-bucket-Bucket:http://s3.amazonaws.com/amzn-s3-demo-bucket?aclIn diesem Fall würde CanonicalQueryString wie folgt aussehen:
UriEncode("acl") + "=" + ""Wenn der URI kein
?enthält, gibt es in der Anfrage keine Abfragezeichenfolge und Sie legen die kanonische Abfragezeichenfolge auf eine leere Zeichenfolge ("") fest. Sie müssen weiterhin das Zeilenumbruchzeichen ("\n") einfügen. -
CanonicalHeaders– Eine Liste von Anfrage-Headern mit ihren Werten. Einzelne Header-Namens- und Wertpaare werden durch das Zeilenumbruchzeichen ("\n") getrennt. Im Folgenden finden Sie ein Beispiel für einen CanonicalHeader:Lowercase(<HeaderName1>)+":"+Trim(<value>)+"\n" Lowercase(<HeaderName2>)+":"+Trim(<value>)+"\n" ... Lowercase(<HeaderNameN>)+":"+Trim(<value>)+"\n"Die CanonicalHeaders-Liste muss Folgendes enthalten:
-
HTTP-
host-Header. -
Wenn der
Content-Type-Header in der Anfrage vorhanden ist, müssen Sie ihn zurCanonicalHeaders-Liste hinzufügen. -
Alle
x-amz-*-Header, die Sie in Ihre Anfrage aufnehmen möchten, müssen ebenfalls hinzugefügt werden. Wenn Sie beispielsweise temporäre Sicherheitsanmeldeinformationen verwenden, müssen Siex-amz-security-tokenin Ihre Anfrage einschließen. Sie müssen diesen Header in die Liste derCanonicalHeaderseinfügen. -
Für SigV4a müssen Sie einen Regionssatz-Header angeben, der die Regionen festlegt, in denen die Anfrage gültig ist. Der Header „
X-Amz-Region-Set“ wird als Liste von durch Kommas getrennten Werten angegeben. Das folgende Beispiel zeigt einen Region-Header, der Anfragen in den Regionen „us-east-1“ und „us-west-1“ ermöglicht.X-Amz-Region-Set=us-east-1,us-west-1Sie können Platzhalter (*) in den Regionen verwenden, um mehrere Regionen anzugeben. Im folgenden Beispiel ermöglicht der Header Anfragen in den Regionen „us-west-1“ und „us-west-2“.
X-Amz-Region-Set=us-west-*
Anmerkung
Der
x-amz-content-sha256-Header ist für Anfragen für Amazon S3 AWS erforderlich. Es stellt einen Hash der Anforderungsnutzlast bereit. Wenn keine Nutzdaten vorhanden sind, müssen Sie den Hash einer leeren Zeichenfolge bereitstellen.Jeder Header-Name muss:
-
Kleinbuchstaben verwenden.
-
in alphabetischer Reihenfolge erscheinen.
-
von einem Doppelpunkt (
:) gefolgt sein.
Bei Werten müssen Sie:
-
alle führenden oder nachgestellten Leerzeichen entfernen.
-
aufeinanderfolgende Leerzeichen in ein einzelnes Leerzeichen umwandeln.
-
die Werte für einen mehrwertigen Header durch Kommas trennen.
-
Sie müssen den Host-Header (HTTP/1.1) oder den :authority-Header (HTTP/2) sowie alle
x-amz-*-Header in die Signatur einschließen. Sie können optional andere Standard-Header in die Signatur aufnehmen, z. B. content-type.
Die in diesem Beispiel verwendeten
Lowercase()- undTrim()-Funktionen werden im vorangehenden Abschnitt beschrieben.Im Folgenden finden Sie ein Beispiel für eine
CanonicalHeaders-Zeichenfolge. Die Header-Namen sind in Kleinbuchstaben geschrieben und sortiert.host:s3.amazonaws.com x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 x-amz-date:20130708T220855ZAnmerkung
Für die Berechnung einer Autorisierungssignatur sind nur der Host und etwaige
x-amz-*-Header erforderlich. Um jedoch Datenmanipulationen vorzubeugen, sollten Sie erwägen, zusätzliche Header in die Signaturberechnung einzubeziehen.Schließen Sie keine Hop-by-Hop-Header ein, die während der Übertragung durch ein komplexes System häufig geändert werden. Dies umfasst alle flüchtigen Transport-Header, die von Proxys, Load Balancern und den Knoten in einem verteilten System verändert werden, einschließlich
connection,x-amzn-trace-id,user-agent,keep-alive,transfer-encoding,TE,trailer,upgrade,proxy-authorizationundproxy-authenticate. -
-
SignedHeaders– Eine alphabetisch sortierte, durch Semikolons getrennte Liste von Anforderungs-Header-Namen in Kleinbuchstaben. Bei den Anforderungs-Headern in der Liste handelt es sich um dieselben Header, die Sie in die ZeichenfolgeCanonicalHeaderseingeschlossen haben. Im vorherigen Beispiel würde der Wert vonSignedHeaderswie folgt aussehen:host;x-amz-content-sha256;x-amz-date -
HashedPayload– Eine Zeichenfolge, die mithilfe der Nutzlast im Hauptteil der HTTP-Anforderung als Eingabe für eine Hash-Funktion erstellt wurde. Diese Zeichenfolge verwendet Hexadezimalzeichen in Kleinbuchstaben.Hex(SHA256Hash(<payload>>))Wenn die Anfrage keine Nutzlast enthält, berechnen Sie einen Hash der leeren Zeichenfolge. Wenn Sie beispielsweise ein Objekt mithilfe einer
GET-Anfrage abrufen, enthält die Nutzlast nichts.Hex(SHA256Hash(""))Anmerkung
Schließen Sie für Amazon S3 beim Erstellen einer kanonischen Anfrage die Literalzeichenfolge
UNSIGNED-PAYLOADein und legen Sie beim Senden der Anfrage denselben Wert wie für den Header-Wertx-amz-content-sha256fest.Hex(SHA256Hash("UNSIGNED-PAYLOAD"))
Hash der kanonischen Anfrage erstellen
Erstellen Sie einen Hash (Digest) der kanonischen Anforderung mithilfe desselben Algorithmus, den Sie zur Erstellung des Hashes der Nutzdaten verwendet haben. Der Hash der kanonischen Anfrage ist eine Zeichenfolge aus hexadezimalen Zeichen in Kleinbuchstaben.
Erstellen einer zu signierenden Zeichenfolge
Um eine zu signierende Zeichenfolge zu erstellen, verketten Sie die folgenden Zeichenfolgen, getrennt durch Zeilenumbruchzeichen. Beenden Sie diese Zeichenfolge nicht mit einem Zeilenumbruch.
Algorithm \n
RequestDateTime \n
CredentialScope \n
HashedCanonicalRequest
-
Algorithmus– Der Algorithmus, der verwendet wird, um den Hash der kanonischen Anforderung zu erstellen.-
SigV4 – Verwenden Sie
AWS4-HMAC-SHA256, um denHMAC-SHA256-Hash-Algorithmus anzugeben. -
SigV4a – Verwenden Sie
AWS4-ECDSA-P256-SHA256, um denECDSA-P256-SHA-256-Hash-Algorithmus anzugeben.
-
-
RequestDateTime– Das Datum und die Uhrzeit, die im Gültigkeitsbereich der Anmeldeinformationen verwendet werden. Bei diesem Wert handelt es sich um die aktuelle UTC-Zeit im ISO 8601-Format (zum Beispiel20130524T000000Z). -
CredentialScope– Der Bereich der Anmeldeinformationen, der die resultierende Signatur auf die angegebene Region und den angegebenen Service beschränkt.-
SigV4 – Die Anmeldeinformationen umfassen Ihre Zugriffsschlüssel-ID, das Datum im
YYYYMMDD-Format, den Regionscode, den Servicecode und dieaws4_request-Abschlusszeichenfolge, getrennt durch Schrägstriche (/). Für den Regionscode, den Servicecode und die Abschlusszeichenfolge müssen Kleinbuchstaben verwendet werden. Die Zeichenfolge hat folgendes Format:YYYYMMDD/region/service/aws4_request. -
SigV4a – Die Anmeldeinformationen umfassen das Datum im
YYYYMMDD-Format, den Servicenamen und dieaws4_request-Abschlusszeichenfolge, getrennt durch Schrägstriche (/). Beachten Sie, dass der Gültigkeitsbereich der Anmeldeinformationen die Region nicht umfasst, da diese in einem separaten HeaderX-Amz-Region-Setabgedeckt ist. Die Zeichenfolge hat folgendes Format:YYYYMMDD/service/aws4_request.
-
-
HashedCanonicalRequest– Der Hash der kanonischen Anfrage, berechnet im vorherigen Schritt.
Im Folgenden finden Sie ein Beispiel für eine zu signierende Zeichenfolge.
"<Algorithm>" + "\n" +
timeStampISO8601Format + "\n" +
<Scope> + "\n" +
Hex(<Algorithm>(<CanonicalRequest>))
Signaturschlüssel ableiten
Um einen Signaturschlüssel abzuleiten, wählen Sie eines der folgenden Verfahren zur Berechnung eines Signaturschlüssels für SigV4 oder SigV4a.
Ableiten eines Signaturschlüssels für SigV4:
Um einen Signaturschlüssel für SigV4 abzuleiten, führen Sie eine Reihe von Keyed-Hash-Operationen (HMAC) für das Anfragedatum, die Region und den Service aus, wobei Ihr geheimer AWS-Zugriffsschlüssel als Schlüssel für die erste Hash-Operation dient.
Rufen Sie für jeden Schritt die Hash-Funktion mit den erforderlichen Schlüsseln und Daten auf. Das Ergebnis jedes Aufrufs der Hash-Funktion wird zur Eingabe für den nächsten Aufruf der Hash-Funktion.
Das folgende Beispiel zeigt, wie Sie das im nächsten Abschnitt dieses Verfahrens verwendete SigningKey ableiten und zeigt die Reihenfolge, in der Ihre Eingabe verkettet und gehasht wird. HMAC-SHA256 ist die Hash-Funktion, die wie gezeigt zum Hashen der Daten verwendet wird.
DateKey = HMAC-SHA256("AWS4"+"<SecretAccessKey>", "<YYYYMMDD>") DateRegionKey = HMAC-SHA256(<DateKey>, "<aws-region>") DateRegionServiceKey = HMAC-SHA256(<DateRegionKey>, "<aws-service>") SigningKey = HMAC-SHA256(<DateRegionServiceKey>, "aws4_request")
Erforderliche Eingabe
-
Key– Eine Zeichenfolge, die Ihren geheimen Zugriffsschlüssel enthält. -
Date– Eine Zeichenfolge, die das im Gültigkeitsbereich der Anmeldeinformationen verwendete Datum im Format JJJJMMDD enthält. -
Region– Eine Zeichenfolge, die den Regionscode enthält (z. B.us-east-1).Eine Liste der Region-Zeichenfolgen finden Sie unter Regionale Endpunkte im Allgemeine AWS-Referenz.
-
Service– Eine Zeichenfolge, die den Service-Code enthält (z. B.ec2). -
Die zu signierende Zeichenfolge, die Sie im vorherigen Schritt erstellt haben.
So leiten Sie einen Signaturschlüssel für SigV4 ab
-
Verketten Sie
"AWS4"und den geheimen Zugriffsschlüssel. Rufen Sie die Hash-Funktion mit der verketteten Zeichenfolge als Schlüssel und der Datumszeichenfolge als Daten auf.DateKey = hash("AWS4" + Key, Date) -
Rufen Sie die Hash-Funktion mit dem Ergebnis des vorherigen Aufrufs als Schlüssel und der Region-Zeichenfolge als Daten auf.
DateRegionKey = hash(kDate, Region) -
Rufen Sie die Hash-Funktion mit dem Ergebnis des vorherigen Aufrufs als Schlüssel und der Service-Zeichenfolge als Daten auf.
Der Service-Code wird durch den Service definiert. Sie können get-products
in der CLI für AWS-Preisgestaltung verwenden, um den Service-Code für einen Service zurückzugeben. DateRegionServiceKey = hash(kRegion, Service) -
Rufen Sie die Hash-Funktion mit dem Ergebnis des vorherigen Aufrufs als Schlüssel und „aws4_request“ als Daten auf.
SigningKey = hash(kService, "aws4_request")
Ableiten eines Signaturschlüssels für SigV4a
Um einen Signaturschlüssel für SigV4a zu erstellen, leiten Sie mithilfe des folgenden Verfahrens ein Schlüsselpaar aus dem geheimen Zugriffsschlüssel ab. Ein Beispiel für die Implementierung dieser Ableitung finden Sie in der C99-Bibliotheksimplementierung der AWS-Client-Authentifizierung
n = [NIST P-256 elliptic curve group order] G = [NIST P-256 elliptic curve base point] label = "AWS4-ECDSA-P256-SHA256" akid = [AWS access key ID as a UTF8 string] sk = [AWS secret access Key as a UTF8 Base64 string] input_key = "AWS4A" || sk count = 1 while (counter != 255) { context = akid || counter// note: counter is one bytekey = KDF(input_key, label, context, 256) c = Oct2Int(key) if (c > n - 2) { counter++ } else { k = c + 1// private keyQ = k * G// public key} } if (c < 255) { return [k, Q] } else { return FAILURE }
Berechnen der Signatur
Nachdem Sie den Signaturschlüssel abgeleitet haben, berechnen Sie die Signatur, die Sie Ihrer Anfrage hinzufügen möchten. Dieses Verfahren hängt von der verwendeten Signaturversion ab.
So berechnen Sie eine Signatur für SigV4
-
Rufen Sie die Hash-Funktion mit dem Ergebnis des vorherigen Aufrufs als Schlüssel und der zu signierenden Zeichenfolge als Daten auf. Verwenden Sie den abgeleiteten Signaturschlüssel als Hash-Schlüssel für diese Operation. Das Ergebnis ist die Signatur als Binärwert.
signature = hash(SigningKey,string-to-sign) -
Konvertieren Sie die Signatur von der binären in die hexadezimale Darstellung in Kleinbuchstaben.
So berechnen Sie eine Signatur für SigV4a
-
Signieren Sie mithilfe des Algorithmus für digitale Signaturen (ECDSA P-256) die zu signierende Zeichenfolge, die Sie im vorherigen Schritt erstellt haben. Der für diese Signatur verwendete Schlüssel ist der private asymmetrische Schlüssel, der wie oben beschrieben aus dem geheimen Zugriffsschlüssel abgeleitet wird.
signature = base16(ECDSA-Sign(k,string-to-sign)) -
Konvertieren Sie die Signatur von der binären in die hexadezimale Darstellung in Kleinbuchstaben.
Hinzufügen der Signatur zur Anfrage
Fügen Sie Ihrer Anfrage die berechnete Signatur hinzu.
Beispiel: Autorisierungsheader
SigV4
Das folgende Beispiel zeigt einen Authorization-Header für die DescribeInstances-Aktion mit AWS SigV4. Aus Gründen der Lesbarkeit ist dieses Beispiel mit Zeilenumbrüchen formatiert. In Ihrem Code muss dies eine fortlaufende Zeichenfolge sein. Es steht kein Komma zwischen Algorithmus und Credential. Die anderen Elemente müssen jedoch durch Kommas getrennt werden.
Authorization: AWS4-HMAC-SHA256
Credential=AKIAIOSFODNN7EXAMPLE/20220830/us-east-1/ec2/aws4_request,
SignedHeaders=host;x-amz-date,
Signature=calculated-signatureSigV4a
Das folgende Beispiel zeigt einen Authorization-Header für die CreateBucket-Aktion mit AWS SigV4a. Aus Gründen der Lesbarkeit ist dieses Beispiel mit Zeilenumbrüchen formatiert. In Ihrem Code muss dies eine fortlaufende Zeichenfolge sein. Zwischen Algorithmus und Anmeldeinformationen steht kein Komma. Die anderen Elemente müssen jedoch durch Kommas getrennt werden.
Authorization: AWS4-ECDSA-P256-SHA256
Credential=AKIAIOSFODNN7EXAMPLE/20220830/s3/aws4_request,
SignedHeaders=host;x-amz-date;x-amz-region-set,
Signature=calculated-signature
Beispiel: Anforderung mit Authentifizierungsparametern in der Abfragezeichenfolge
SigV4
Das folgende Beispiel zeigt eine Abfrage für die DescribeInstances-Aktion mit AWS SigV4, die die Authentifizierungsinformationen enthält. Aus Gründen der Lesbarkeit ist dieses Beispiel mit Zeilenumbrüchen formatiert und ist nicht URL-codiert. In Ihrem Code muss die Abfragezeichenfolge eine fortlaufende Zeichenfolge sein, die URL-codiert ist.
https://ec2.amazonaws.com/?
Action=DescribeInstances&
Version=2016-11-15&
X-Amz-Algorithm=AWS4-HMAC-SHA256&
X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20220830/us-east-1/ec2/aws4_request&
X-Amz-Date=20220830T123600Z&
X-Amz-SignedHeaders=host;x-amz-date&
X-Amz-Signature=calculated-signatureSigV4a
Das folgende Beispiel zeigt eine Abfrage für die CreateBucket-Aktion mit AWS SigV4a, die die Authentifizierungsinformationen enthält. Aus Gründen der Lesbarkeit ist dieses Beispiel mit Zeilenumbrüchen formatiert und ist nicht URL-codiert. In Ihrem Code muss die Abfragezeichenfolge eine fortlaufende Zeichenfolge sein, die URL-codiert ist.
https://ec2.amazonaws.com/?
Action=CreateBucket&
Version=2016-11-15&
X-Amz-Algorithm=AWS4-ECDSA-P256-SHA256&
X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20220830/s3/aws4_request&
X-Amz-Region-Set=us-west-1&
X-Amz-Date=20220830T123600Z&
X-Amz-SignedHeaders=host;x-amz-date;x-amz-region-set&
X-Amz-Signature=calculated-signature