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.
Legen Sie signierte Cookies mithilfe einer vordefinierten Richtlinie fest
Um ein signiertes Cookie mit einer vordefinierten Richtlinie einzurichten, führen Sie die folgenden Schritte aus. Zum Erstellen einer Signatur vgl. Erstellen Sie eine Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet.
So richten Sie ein signiertes Cookies mit einer vordefinierten Richtlinie ein
-
Wenn Sie verwenden. NEToder Java, um signierte Cookies zu erstellen, und wenn Sie den privaten Schlüssel für Ihr key pair nicht vom Standard-.pem-Format in ein mit kompatibles Format umformatiert haben. NEToder mit Java, mach das jetzt. Weitere Informationen finden Sie unter Formatieren Sie den privaten Schlüssel neu (. NETund nur Java).
-
Programmieren Sie Ihre Anwendung so, dass drei
Set-Cookie
-Header an genehmigte Viewer gesendet werden. Sie benötigen dreiSet-Cookie
Header, da jederSet-Cookie
Header nur ein Name-Wert-Paar enthalten kann und ein CloudFront signiertes Cookie drei Name-Wert-Paare benötigt. Die Name-Wert-Paare sind:CloudFront-Expires
,CloudFront-Signature
undCloudFront-Key-Pair-Id
. Die Werte müssen auf dem Viewer vorhanden sein, bevor ein Benutzer die erste Anfrage für eine Datei stellt, bei der der Zugriff kontrolliert werden soll.Anmerkung
Im Allgemeinen empfehlen wir, die Attribute
Expires
undMax-Age
auszuschließen. Der Ausschluss der Attribute bewirkt, dass der Browser das Cookie löscht, wenn der Benutzer den Browser schließt. Dies verringert das Risiko, dass ein Benutzer unbefugten Zugriff auf Ihre Inhalte erhält. Weitere Informationen finden Sie unter Verhindern Sie den Missbrauch signierter Cookies.Bei den Namen der Cookie-Attribute muss die Groß- und Kleinschreibung beachtet werden.
Zeilenumbrüche werden nur hinzugefügt, damit die Attribute besser lesbar sind.
Set-Cookie: CloudFront-Expires=
date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)
; Domain=optional domain name
; Path=/optional directory path
; Secure; HttpOnly Set-Cookie: CloudFront-Signature=hashed and signed version of the policy statement
; Domain=optional domain name
; Path=/optional directory path
; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature
; Domain=optional domain name
; Path=/optional directory path
; Secure; HttpOnly- (Optional)
Domain
-
Der Domänenname für die angeforderte Datei. Wenn Sie kein
Domain
Attribut angeben, ist der Standardwert der Domainname in derURL, und er gilt nur für den angegebenen Domainnamen, nicht für Subdomänen. Wenn Sie einDomain
-Attribut angeben, gilt dieses auch für Unterdomänen. Ein vorangestellter Punkt im Domänennamen (z. B.Domain=.example.com
) ist optional. Wenn Sie einDomain
Attribut angeben, müssen außerdem der Domainname in URL und der Wert desDomain
Attributs übereinstimmen.Sie können den Domainnamen angeben, der Ihrer Distribution CloudFront zugewiesen wurde, z. B. d111111abcdef8.cloudfront.net, aber Sie können nicht *.cloudfront.net für den Domainnamen angeben.
Wenn Sie einen alternativen Domainnamen wie example.com in verwenden möchten, müssen Sie den alternativen Domainnamen zu Ihrer Distribution hinzufügenURLs, unabhängig davon, ob Sie das Attribut angeben.
Domain
Weitere Informationen finden Sie unter Alternative Domainnamen (CNAMEs) im Thema Referenz zu Verteilungseinstellungen. - (Optional)
Path
-
Der Pfad für die angeforderte Datei. Wenn Sie kein
Path
Attribut angeben, ist der Standardwert der Pfad in. URL Secure
-
Macht es erforderlich, dass der Viewer Cookies vor dem Senden einer Anfrage verschlüsselt. Wir empfehlen, den
Set-Cookie
Header über eine HTTPS Verbindung zu senden, um sicherzustellen, dass die Cookie-Attribute vor man-in-the-middle Angriffen geschützt sind. HttpOnly
-
Definiert, wie der Browser (sofern unterstützt) mit dem Cookie-Wert interagiert. Mit
HttpOnly
, auf die Cookie-Werte kann nicht zugegriffen werden. JavaScript Diese Vorsichtsmaßnahme kann dazu beitragen, Cross-Site-Scripting () -Angriffe abzuwehren. XSS Weitere Informationen finden Sie unter Verwendung von Cookies. HTTP CloudFront-Expires
-
Geben Sie das Ablaufdatum und die Uhrzeit im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC) an. Beispielsweise wird der 1. Januar 2013, 10:00 Uhr, in 1357034400 im Unix-Zeitformat UTC umgewandelt. Um die Epochenzeit zu verwenden, verwenden Sie eine 32-Bit-Ganzzahl für ein Datum, das nicht nach 2147483647 (19. Januar 2038 um 03:14:07 Uhr) liegt. UTC Weitere Informationen finden Sie unter RFC3339UTC, Datum und Uhrzeit im Internet: Zeitstempel,. https://tools.ietf.org/html/rfc3339
CloudFront-Signature
-
Eine gehashte, signierte und Base64-kodierte Version einer Richtlinienerklärung. JSON Weitere Informationen finden Sie unter Erstellen Sie eine Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet.
CloudFront-Key-Pair-Id
-
Die ID für einen CloudFront öffentlichen Schlüssel, zum Beispiel.
K2JCJMDEHXQW5F
Die ID des öffentlichen Schlüssels gibt an CloudFront , welcher öffentliche Schlüssel zur Validierung des signierten Schlüssels verwendet werden sollURL. CloudFront vergleicht die Informationen in der Signatur mit den Informationen in der Grundsatzerklärung, um sicherzustellen, dass die URL nicht manipuliert wurde.Dieser öffentliche Schlüssel muss zu einer Schlüsselgruppe gehören, die ein vertrauenswürdiger Aussteller in der Verteilung ist. Weitere Informationen finden Sie unter Geben Sie Unterzeichner an, die signierte URLs und signierte Cookies erstellen können.
- (Optional)
Das folgende Beispiel zeigt Set-Cookie
Header für ein signiertes Cookie, wenn Sie den Domainnamen verwenden, der Ihrer Distribution zugeordnet ist, in Ihren URLs Dateien:
Set-Cookie: CloudFront-Expires=1426500000; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly
Das folgende Beispiel zeigt Set-Cookie
Header für ein signiertes Cookie, wenn Sie den alternativen Domainnamen example.org in Ihren Dateien verwenden: URLs
Set-Cookie: CloudFront-Expires=1426500000; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=example.org; Path=/images/*; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/images/*; Secure; HttpOnly
Wenn Sie einen alternativen Domainnamen wie example.com in verwenden möchtenURLs, müssen Sie den alternativen Domainnamen zu Ihrer Distribution hinzufügen, unabhängig davon, ob Sie das Attribut angeben. Domain
Weitere Informationen finden Sie unter Alternative Domainnamen (CNAMEs) im Thema Referenz zu Verteilungseinstellungen.
Erstellen Sie eine Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet
Gehen Sie wie folgt vor, um die Signatur für ein signiertes Cookie zu erstellen, das eine vordefinierte Richtlinie verwendet.
Themen
Erstellen Sie eine Richtlinienerklärung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet
Wenn Sie ein signiertes Cookie einrichten, das eine vordefinierte Richtlinie verwendet, ist das CloudFront-Signature
-Attribut eine gehashte und signierte Version einer Richtlinienanweisung. Bei signierten Cookies, die eine vordefinierte Richtlinie verwenden, fügen Sie die Richtlinienanweisung nicht in den Set-Cookie
-Header ein, wie Sie es bei signierten Cookies tun, die eine benutzerdefinierte Richtlinie verwenden. Führen Sie die folgenden Schritte aus, um die Richtlinienanweisung zu erstellen.
So erstellen Sie eine Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet
-
Erstellen Sie die Richtlinienanweisung im folgenden JSON Format und mit einer Kodierung von UTF -8 Zeichen. Fügen Sie alle Satzzeichen und andere Literalwerte genau wie angegeben ein. Informationen zu den Parametern
Resource
undDateLessThan
finden Sie unter Werte, die Sie in der Richtlinienanweisung für eine vordefinierte Richtlinie für signierte Cookies angeben.{ "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
-
Entfernen Sie alle Leerzeichen (einschließlich Tabulatoren und Zeilenumbrüche) aus der Richtlinienerklärung. Möglicherweise müssen Sie in der Zeichenfolge im Anwendungscode Escape-Zeichen einfügen.
Werte, die Sie in der Richtlinienanweisung für eine vordefinierte Richtlinie für signierte Cookies angeben
Beim Erstellen einer Richtlinienanweisung für eine vordefinierte Richtlinie geben Sie die folgenden Werte an:
- Ressource
-
Die Basis URL einschließlich Ihrer Abfragezeichenfolgen, falls vorhanden, zum Beispiel:
https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes
Sie können nur einen Wert für
Resource
angeben.Beachten Sie Folgendes:
-
Protokoll – Der Wert muss mit
http://
oderhttps://
beginnen. -
Abfragezeichenfolgeparameter – Wenn Sie über keine Abfragezeichenfolgeparameter verfügen, lassen Sie das Fragezeichen weg.
-
Alternative Domainnamen — Wenn Sie in der einen alternativen Domainnamen (CNAME) angebenURL, müssen Sie den alternativen Domainnamen angeben, wenn Sie auf die Datei in Ihrer Webseite oder Anwendung verweisen. Geben Sie nicht Amazon S3 URL für die Datei an.
-
- DateLessThan
-
Das Ablaufdatum und die Uhrzeit für das URL Unix-Zeitformat (in Sekunden) und die koordinierte Weltzeit (UTC). Setzen Sie den Wert nicht in Anführungszeichen.
Beispielsweise wird der 16. März 2015, 10:00 Uhr, in 1426500000 im Unix-Zeitformat UTC umgewandelt.
Dieser Wert muss mit dem Wert des
CloudFront-Expires
-Attributs imSet-Cookie
-Header übereinstimmen. Setzen Sie den Wert nicht in Anführungszeichen.Weitere Informationen finden Sie unter Wann CloudFront überprüft das Ablaufdatum und die Uhrzeit in einem signierten Cookie.
Beispiel-Richtlinienanweisung für eine vordefinierte Richtlinie
Wenn Sie die folgende Beispielrichtlinie in einem signierten Cookie verwenden, kann ein Benutzer https://d111111abcdef8.cloudfront.net/horizon.jpg
bis zum 16. März 2015, 10:00 Uhr, auf die Datei zugreifen: UTC
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes", "Condition": { "DateLessThan": { "AWS:EpochTime": 1426500000 } } } ] }
Unterschreiben Sie die Richtlinienerklärung, um eine Signatur für ein signiertes Cookie zu erstellen, das eine vordefinierte Richtlinie verwendet
Um den Wert für das CloudFront-Signature
-Attribut in einem Set-Cookie
-Header zu erstellen, müssen Sie die in So erstellen Sie eine Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet erstellte Richtlinienanweisung hashen und signieren.
Weitere Informationen und Beispiele für das Hashing, Signieren und Codieren der Richtlinienanweisung finden Sie in den folgenden Themen:
So erstellen Sie eine Signatur für ein signiertes Cookie mit einer vordefinierten Richtlinie
-
Verwenden Sie die Hash-Funktion SHA -1RSA, um die Richtlinienerklärung, die Sie in der Prozedur erstellt haben, zu hashen und zu signierenSo erstellen Sie eine Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet. Verwenden Sie die Version der Richtlinienanweisung, die keine Leerzeichen mehr enthält.
Verwenden Sie für den privaten Schlüssel, der für die Hash-Funktion erforderlich ist, einen privaten Schlüssel, dessen öffentlicher Schlüssel sich in einer aktiven vertrauenswürdigen Schlüsselgruppe für die Verteilung befindet.
Anmerkung
Die Methode, die Sie zum Hashen und Signieren der Richtlinienanweisung verwenden, ist abhängig von Ihrer Programmiersprache und Plattform. Einen Beispiel-Code finden Sie unter Codebeispiele zum Erstellen einer Signatur für eine signierte URL.
-
Entfernen Sie Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) aus der Hash-Zeichenfolge und der signierten Zeichenfolge.
-
Base64-kodieren Sie die Zeichenfolge mithilfe der Base64-Kodierung. MIME Weitere Informationen finden Sie in Abschnitt 6.8, Base64 Content-Transfer-Encoding im RFC Jahr 2045, MIME
(Mehrzweck-Internet-Mail-Erweiterungen) Erster Teil: Format von Internet-Nachrichtentexten. -
Ersetzen Sie ungültige Zeichen in einer URL Abfragezeichenfolge durch gültige Zeichen. In der folgenden Tabelle sind ungültige und gültige Zeichen aufgelistet.
Ersetzen Sie diese ungültigen Zeichen Durch diese gültigen Zeichen +
- (Bindestrich)
=
_ (Unterstrich)
/
~ (Tilde)
-
Fügen Sie den resultierenden Wert im
Set-Cookie
-Header für dasCloudFront-Signature
-Name-Wert-Paar ein. Kehren Sie anschließend zu So richten Sie ein signiertes Cookies mit einer vordefinierten Richtlinie ein zurück und fügen Sie denSet-Cookie
-Header fürCloudFront-Key-Pair-Id
hinzu.