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.
Einrichten signierter Cookies mit einer benutzerdefinierten Richtlinie
Führen Sie die folgenden Schritte aus, um ein signiertes Cookie einzurichten, das eine benutzerdefinierte Richtlinie verwendet:
So richten Sie ein signiertes Cookies mit einer benutzerdefinierten Richtlinie ein
-
Wenn Sie .NET oder Java verwenden, um signierte URLs zu erstellen, und den privaten Schlüssel für Ihr Schlüsselpaar noch nicht vom PEM-Standardformat in ein mit .NET oder Java kompatibles Format neu formatiert haben, holen Sie diesen Schritt jetzt nach. Weitere Informationen finden Sie unter Neuformatierung des privaten Schlüssels (nur .NET und Java).
-
Programmieren Sie Ihre Anwendung so, dass sie drei
Set-CookieHeader an zugelassene Benutzer sendet (oder vier, wenn Sie einen Hash-Algorithmus angeben möchten). Sie benötigen dreiSet-CookieHeader, da jederSet-CookieHeader nur ein Name-Wert-Paar enthalten kann und ein CloudFront signiertes Cookie drei Name-Wert-Paare benötigt. Die Name-Wert-Paare sind:CloudFront-Policy,CloudFront-SignatureundCloudFront-Key-Pair-Id. Sie können optional ein viertes Name-Wert-Paar hinzufügenCloudFront-Hash-Algorithm, um den für die Signatur verwendeten Hash-Algorithmus anzugeben. 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
ExpiresundMax-Ageauszuschließen. Dies 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 der missbräuchlichen Verwendung von signierten 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-Policy=base64 encoded version of the policy statement; 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 Set-Cookie: CloudFront-Hash-Algorithm=SHA1 or SHA256; 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 Domänenname in der URL und dieser gilt nur für die angegebenen Domänennamen, nicht für Unterdomä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 darüber hinaus der Domänenname in der 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 Domänennamen wie beispielsweise example.com in URLs verwenden möchten, müssen Sie den alternativen Domänennamen zu Ihrer Distribution hinzufügen, unabhängig davon, ob Sie das
Domain-Attribut angeben. Weitere Informationen finden Sie unter Alternative Domänennamen (CNAMEs) im Thema Referenz für alle Distributionseinstellungen. - (Optional)
Path -
Der Pfad für die angeforderte Datei. Wenn Sie kein
Path-Attribut angeben, ist der Standardwert der Pfad in der 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-
Macht es erforderlich, dass der Viewer das Cookie nur in HTTP- oder HTTPS-Anfragen sendet.
CloudFront-Policy-
Ihre Richtlinienanweisung im JSON-Format, wobei Leerzeichen entfernt wurden und eine Base64-Codierung vorgenommen wurde. Weitere Informationen finden Sie unter Erstellen einer Signatur für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet.
Die Richtlinienanweisung steuert den Zugriff, den ein signiertes Cookie einem Benutzer gewährt. Sie enthält die Dateien, auf die der Benutzer zugreifen kann, ein Ablaufdatum und eine Ablaufuhrzeit, ein optionales Datum und die Uhrzeit, zu der die URL gültig wird, und eine optionale IP-Adresse oder einen Bereich von IP-Adressen, die auf die Datei zugreifen dürfen.
CloudFront-Signature-
Eine gehashte, signierte und Base64-codierte Version der JSON-Richtlinienanweisung. Weitere Informationen finden Sie unter Erstellen einer Signatur für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet.
CloudFront-Key-Pair-Id-
CloudFront Die ID für einen öffentlichen Schlüssel, zum Beispiel.
K2JCJMDEHXQW5FDie ID des öffentlichen Schlüssels gibt an CloudFront, welcher öffentliche Schlüssel zur Validierung der signierten URL verwendet werden soll. CloudFrontvergleicht die Informationen in der Signatur mit den Informationen in der Richtlinienerklä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 Distribution ist. Weitere Informationen finden Sie unter Festlegen der Signaturgeber, die signierte URLs und signierte Cookies erstellen können.
CloudFront-Hash-Algorithm-
(Optional) Der Hash-Algorithmus, der zur Erstellung der Signatur verwendet wurde. Unterstützte Werte sind
SHA1undSHA256. Wenn Sie dieses Cookie nicht einschließen, CloudFront ist standardmäßig.SHA1
- (Optional)
Set-Cookie-Beispielheader für benutzerdefinierte Richtlinien
Sehen Sie sich die folgenden Beispiele für Set-Cookie-Headerpaare an.
Wenn Sie einen alternativen Domainnamen wie beispielsweise example.org in URLs verwenden möchten, müssen Sie den alternativen Domainnamen zu Ihrer Distribution hinzufügen, unabhängig davon, ob Sie das Domain-Attribut angeben. Weitere Informationen finden Sie unter Alternative Domänennamen (CNAMEs) im Thema Referenz für alle Distributionseinstellungen.
Beispiel Beispiel 1
Sie können die Set-Cookie-Header für ein signiertes Cookie bei Verwendung des mit Ihrer Distribution verknüpften Domainnamens in den URLs für Ihre Dateien verwenden.
Set-Cookie: CloudFront-Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0L2dhbWVfZG93bmxvYWQuemlwIiwiQ29uZGl0aW9uIjp7IklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIxOTIuMC4yLjAvMjQifSwiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0MjY1MDAwMDB9fX1dfQ__; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Signature=dtKhpJ3aUYxqDIwepczPiDb9NXQ_; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly
Beispiel Beispiel 2
Sie können die Set-Cookie-Header für ein signiertes Cookie bei Verwendung eines alternativen Domainnamens (example.org) in den URLs für Ihre Dateien verwenden.
Set-Cookie: CloudFront-Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0L2dhbWVfZG93bmxvYWQuemlwIiwiQ29uZGl0aW9uIjp7IklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIxOTIuMC4yLjAvMjQifSwiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0MjY1MDAwMDB9fX1dfQ__; Domain=example.org; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Signature=dtKhpJ3aUYxqDIwepczPiDb9NXQ_; Domain=example.org; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=example.org; Path=/; Secure; HttpOnly
Beispiel Beispiel 3
Sie können die Set-Cookie-Headerpaare für eine signierte Anforderung bei Verwendung des mit Ihrer Distribution verknüpften Domainnamens in den URLs für Ihre Dateien verwenden.
Set-Cookie: CloudFront-Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0L2dhbWVfZG93bmxvYWQuemlwIiwiQ29uZGl0aW9uIjp7IklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIxOTIuMC4yLjAvMjQifSwiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0MjY1MDAwMDB9fX1dfQ__; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Signature=dtKhpJ3aUYxqDIwepczPiDb9NXQ_; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=dd111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=d111111abcdef8.cloudfront.net; Path=/; Secure; HttpOnly
Beispiel Beispiel 4
Sie können die Set-Cookie-Headerpaare für eine signierte Anforderung bei Verwendung eines mit Ihrer Distribution verknüpften alternativen Domainnamens (example.org) in den URLs für Ihre Dateien verwenden.
Set-Cookie: CloudFront-Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2QxMTExMTFhYmNkZWY4LmNsb3VkZnJvbnQubmV0L2dhbWVfZG93bmxvYWQuemlwIiwiQ29uZGl0aW9uIjp7IklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIxOTIuMC4yLjAvMjQifSwiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0MjY1MDAwMDB9fX1dfQ__; Domain=example.org; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Signature=dtKhpJ3aUYxqDIwepczPiDb9NXQ_; Domain=example.org; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/; Secure; HttpOnly Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=example.org; Path=/; Secure; HttpOnly
Erstellen einer Richtlinienanweisung für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet
Zum Erstellen einer Richtlinienanweisung für eine benutzerdefinierte Richtlinie führen Sie die folgenden Schritte aus. Einige Beispiel-Richtlinienanweisungen, die den Zugriff auf Dateien auf verschiedene Weisen kontrollieren, finden Sie unter Beispiel-Richtlinienanweisungen für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet.
So erstellen Sie die Richtlinienanweisung für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet
-
Erstellen Sie die Richtlinienanweisung unter Verwendung des folgenden JSON-Formats.
{ "Statement": [ { "Resource": "URL of the file", "Condition": { "DateLessThan": { "AWS:EpochTime":required ending date and time in Unix time format and UTC }, "DateGreaterThan": { "AWS:EpochTime":optional beginning date and time in Unix time format and UTC }, "IpAddress": { "AWS:SourceIp": "optional IP address" } } } ] }Beachten Sie Folgendes:
-
Sie können nur eine Anweisung einschließen.
-
Verwenden Sie die UTF-8 Zeichenkodierung.
-
Fügen Sie alle Satzzeichen und Parameternamen genau wie angegeben ein. Abkürzungen für Parameternamen werden nicht akzeptiert.
-
Die Reihenfolge der Parameter im Bereich
Conditionist unerheblich. -
Informationen zu den Werten für
Resource,DateLessThan,DateGreaterThanundIpAddressfinden Sie unter Werte, die Sie in der Richtlinienanweisung für eine benutzerdefinierte Richtlinie für signierte Cookies angeben.
-
-
Entfernen Sie alle Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) aus der Richtlinienanweisung. Möglicherweise müssen Sie in der Zeichenfolge im Anwendungscode Escape-Zeichen einfügen.
-
Base64-encode die Richtlinienanweisung, die die MIME-Base64-Kodierung verwendet. Weitere Informationen finden Sie in Abschnitt 6.8, Base64, Content-Transfer-Encoding
in RFC 2045, MIME (Multipurpose Internet Mail Extensions), Teil 1: Format von Internet-Nachrichtentexten. -
Ersetzen Sie Zeichen, die in einer URL-Abfragezeichenfolge nicht gültig sind, 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 hinterCloudFront-Policy=ein. -
Erstellen Sie eine Signatur für den
Set-Cookie-Header fürCloudFront-Signature, indem Sie die Richtlinienanweisung hashen, signieren und eine Base64-Codierung vornehmen. Weitere Informationen finden Sie unter Erstellen einer Signatur für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet.
Werte, die Sie in der Richtlinienanweisung für eine benutzerdefinierte Richtlinie für signierte Cookies angeben
Beim Erstellen einer Richtlinienanweisung für eine benutzerdefinierte Richtlinie geben Sie die folgenden Werte an.
- Ressource
-
Die Basis-URL einschließlich Ihrer Abfragezeichenfolgen, sofern vorhanden:
https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yesWichtig
Wenn Sie den
Resource-Parameter weglassen, können Benutzer auf alle Dateien zugreifen, die mit einer Distribution verknüpft sind, die mit dem zum Erstellen der signierten URL verwendeten Schlüsselpaar verknüpft ist.Sie können nur einen Wert für
Resourceangeben.Beachten Sie Folgendes:
-
Protokoll – Der Wert muss mit
http://oderhttps://beginnen. -
Abfragezeichenfolgeparameter – Wenn Sie über keine Abfragezeichenfolgeparameter verfügen, lassen Sie das Fragezeichen weg.
-
Platzhalter – Sie können das Platzhalterzeichen, das null oder mehr Zeichen (*), oder das Platzhalterzeichen, das genau einem Zeichen (?) irgendwo in der Zeichenfolge entspricht, verwenden. Beispielsweise würde der Wert:
https://d111111abcdef8.cloudfront.net/*game_download.zip*u. a. die folgenden Dateien umfassen:
-
https://d111111abcdef8.cloudfront.net/game_download.zip -
https://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes -
https://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp
-
-
Alternative Domänennamen – Wenn Sie einen alternativen Domänennamen (CNAME) in der URL angeben, müssen Sie diesen alternativen Domänennamen angeben, wenn Sie auf Ihrer Webseite oder in Ihrer Anwendung auf die Datei verweisen. Geben Sie nicht die Amazon S3-URL für Datei an.
-
- DateLessThan
-
Das Ablaufdatum und die Ablaufzeit für die URL im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC). Setzen Sie den Wert nicht in Anführungszeichen.
Beispielsweise wird der 16. März 2015, 10:00 Uhr UTC in 1426500000 im Unix-Zeitformat umgewandelt.
Weitere Informationen finden Sie unter When CloudFront überprüft das Ablaufdatum und die Uhrzeit in einem signierten Cookie.
- DateGreaterThan (Fakultativ)
-
Ein optionales Datum und eine optionale Zeit für die URL im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC). Benutzer sind an oder vor dem angegebenen Datum und der angegebenen Zeit nicht berechtigt, auf die Datei zuzugreifen. Setzen Sie den Wert nicht in Anführungszeichen.
- IpAddress (Fakultativ)
-
Die IP-Adresse des Clients, der die GET-Anfrage stellt. Beachten Sie Folgendes:
-
Um allen IP-Adressen den Zugriff auf die Datei zu gewähren, lassen Sie den Parameter
IpAddressweg. -
Sie können entweder eine IP-Adresse oder einen IP-Adressbereich angeben. Sie können die Richtlinie beispielsweise nicht so einrichten, dass Zugriff gewährt wird, wenn die IP-Adresse des Clients sich in einem von zwei getrennten Bereichen befindet.
-
Um den Zugriff von einer einzigen IP-Adresse zu gewähren, geben Sie Folgendes an:
"IPv4 IP address/32" -
Sie müssen IP-Adressbereiche im IPv4-CIDR-Standardformat angeben (z. B,
192.0.2.0/24). Weitere Informationen finden Sie unter RFC 4632, Classless Inter-domain Routing (CIDR): Der Plan zur Zuweisung und Aggregation von Internetadressen,. https://tools.ietf.org/html/rfc4632Wichtig
IP-Adressen im IPv6-Format, wie beispielsweise 2001:0db8:85a3::8a2e:0370:7334, werden nicht unterstützt.
Wenn Sie eine benutzerdefinierte Richtlinie verwenden, die
IpAddressenthält, aktivieren Sie IPv6 nicht für die Distribution. Wenn Sie den Zugriff auf bestimmte Inhalte nach IP-Adresse einschränken und IPv6-Anforderungen für andere Inhalte unterstützen möchten, können Sie zwei Distributionen erstellen. Weitere Informationen finden Sie unter Aktivieren von IPv6 (Viewer-Anforderungen) im Thema Referenz für alle Distributionseinstellungen.
-
Beispiel-Richtlinienanweisungen für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet
Die folgenden Beispiel-Richtlinienanweisungen zeigen, wie der Zugriff auf eine bestimmte Datei, auf alle Dateien in einem Verzeichnis oder auf alle mit einer Schlüsselpaar-ID verknüpften Dateien kontrolliert wird. Die Beispiele zeigen auch, wie der Zugriff von einer einzelnen IP-Adresse oder einem Bereich von IP-Adressen kontrolliert wird und wie Sie verhindern, dass Benutzer das signierte Cookie nach einem festgelegten Datum und einer festgelegten Zeit verwenden.
Wenn Sie eines dieser Beispiele kopieren und einfügen, entfernen Sie alle Leerzeichen (einschließlich Tabuloren und Zeilenumbruchzeichen), ersetzen Sie die entsprechenden Werte durch Ihre eigenen Werte und fügen Sie ein Zeilenumbruchzeichen hinter der schließenden Klammer ( } ) ein.
Weitere Informationen finden Sie unter Werte, die Sie in der Richtlinienanweisung für eine benutzerdefinierte Richtlinie für signierte Cookies angeben.
Beispiel-Richtlinienanweisung: Zugriff auf eine Datei von einem Bereich von IP-Adressen aus
Die folgende Beispiel-Richtlinienanweisung in einem signierten Cookie legt fest, dass ein Benutzer bis zum 1. Januar 2023, 10:00 Uhr UTC, von IP-Adressen im Bereich https://d111111abcdef8.cloudfront.net/game_download.zip auf die Datei 192.0.2.0/24 zugreifen kann:
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/game_download.zip", "Condition": { "IpAddress": { "AWS:SourceIp": "192.0.2.0/24" }, "DateLessThan": { "AWS:EpochTime": 1767290400 } } } ] }
Beispiel-Richtlinienanweisung: Zugriff auf alle Dateien in einem Verzeichnis über einen Bereich von IP-Adressen
Mit der folgenden Beispiel-Richtlinienanweisung können Sie signierte Cookies für jede Datei im training-Verzeichnis erstellen wie durch das Platzhalterzeichen * im Resource-Parameter verdeutlicht. Benutzer können bis zum 1. Januar 2013, 10:00 Uhr UTC, von IP-Adressen im Bereich 192.0.2.0/24 auf die Datei zugreifen:
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/training/*", "Condition": { "IpAddress": { "AWS:SourceIp": "192.0.2.0/24" }, "DateLessThan": { "AWS:EpochTime": 1767290400 } } } ] }
Jedes signierte Cookie, in dem Sie diese Richtlinie verwenden, enthält eine Basis-URL, die eine bestimmte Datei kennzeichnet, zum Beispiel:
https://d111111abcdef8.cloudfront.net/training/orientation.pdf
Beispiel-Richtlinienanweisung: Zugriff auf alle mit einer Schlüsselpaar-ID verknüpften Dateien über eine IP-Adresse
Mit der folgenden Beispiel-Richtlinienanweisung können Sie signierte Cookies für jede mit einer beliebigen Distribution verknüpfte Datei einrichten wie durch das Platzhalterzeichen * im Resource-Parameter verdeutlicht. Der Benutzer muss die IP-Adresse verwende 192.0.2.10/32. (Der Wert 192.0.2.10/32 in CIDR-Notation bezieht sich auf eine einzelne IP-Adresse, 192.0.2.10.) Die Dateien sind nur vom 1. Januar 2013, 10:00 Uhr UTC, bis zum 2. Januar 2013, 10:00 Uhr UTC, verfügbar:
{ "Statement": [ { "Resource": "https://*", "Condition": { "IpAddress": { "AWS:SourceIp": "192.0.2.10/32" }, "DateGreaterThan": { "AWS:EpochTime": 1767290400 }, "DateLessThan": { "AWS:EpochTime": 1767376800 } } } ] }
Jedes signierte Cookie, in dem Sie diese Richtlinie verwenden, enthält eine Basis-URL, die eine bestimmte Datei in einer bestimmten CloudFront Distribution identifiziert, zum Beispiel:
https://d111111abcdef8.cloudfront.net/training/orientation.pdf
Das signierte Cookie enthält auch eine Schlüsselpaar-ID, die mit einem vertrauenswürdigen Aussteller in der Distribution (d111111abcdef8.cloudfront.net) verknüpft werden muss, die Sie in der Basis-URL angeben.
Erstellen einer Signatur für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet
Bei der Signatur für ein signiertes Cookie, das eine benutzerdefinierte Richtlinie verwendet, handelt es sich um eine gehashte, signierte und Base64-codierte Version der Richtlinienanweisung.
Weitere Informationen und Beispiele für das Hashing, Signieren und Codieren der Richtlinienanweisung finden Sie unter:
Anmerkung
Die verlinkten Beispiele verwenden SHA-1 standardmäßig. Um SHA-256 stattdessen zu verwenden, sha1 ersetzen Sie sha256 in den OpenSSL-Befehlen durch und fügen Sie das CloudFront-Hash-Algorithm Cookie mit dem Wert von SHA256 ein.
So erstellen Sie eine Signatur für ein signiertes Cookie mithilfe einer benutzerdefinierten Richtlinie
-
Verwenden Sie die SHA-256 Hash-Funktion SHA-1 oder und RSA, um die JSON-Richtlinienanweisung, die Sie in der Prozedur erstellt haben, zu hashen und zu signieren. So erstellen Sie die Richtlinienanweisung für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet Verwenden Sie die Version der Richtlinienanweisung, die keine Leerzeichen mehr enthält, jedoch noch nicht Base64-codiert wurde.
Wenn Sie verwenden SHA-256, müssen Sie das
CloudFront-Hash-AlgorithmCookie mit einem Wert vonSHA256einschließen.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 Distribution 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 Code-Beispiele für das Erstellen einer Signatur für eine signierte URL.
-
Entfernen Sie die Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) aus der gehashten und signierten Zeichenfolge.
-
Base64-encode die Zeichenfolge, die die MIME-Base64-Kodierung verwendet. Weitere Informationen finden Sie in Abschnitt 6.8, Base64, Content-Transfer-Encoding
in RFC 2045, MIME (Multipurpose Internet Mail Extensions), Teil 1: Format von Internet-Nachrichtentexten. -
Ersetzen Sie Zeichen, die in einer URL-Abfragezeichenfolge nicht gültig sind, 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 und kehren Sie zu So richten Sie ein signiertes Cookies mit einer benutzerdefinierten Richtlinie ein zurück, um denSet-Cookie-Header fürCloudFront-Key-Pair-Idhinzuzufügen.