

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 vordefinierten Richtlinie
<a name="private-content-setting-signed-cookie-canned-policy"></a>

Um ein signiertes Cookie mit einer vordefinierten Richtlinie einzurichten, führen Sie die folgenden Schritte aus. Zum Erstellen einer Signatur vgl. [Erstellen einer Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-signature-cookies).<a name="private-content-setting-signed-cookie-canned-policy-procedure"></a>

**So richten Sie ein signiertes Cookies mit einer vordefinierten Richtlinie ein**

1. Wenn Sie .NET oder Java verwenden, um signierte Cookies 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)](private-content-trusted-signers.md#private-content-reformatting-private-key).

1. Programmieren Sie Ihre Anwendung so, dass sie drei `Set-Cookie` Header an zugelassene Zuschauer sendet (oder vier, wenn Sie einen Hash-Algorithmus angeben möchten). Sie benötigen drei `Set-Cookie`-Header, weil jeder `Set-Cookie`-Header nur ein Name-Wert-Paar enthalten kann und ein CloudFront -signiertes Cookie drei Name-Wert-Paare erfordert. Die Name-Wert-Paare sind: `CloudFront-Expires`, `CloudFront-Signature` und `CloudFront-Key-Pair-Id`. Sie können optional ein viertes Name-Wert-Paar hinzufügen`CloudFront-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 `Expires` und `Max-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 der missbräuchlichen Verwendung von signierten Cookies](private-content-signed-cookies.md#private-content-signed-cookie-misuse).

   **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
   
   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 ein `Domain`-Attribut angeben, gilt dieses auch für Unterdomänen. Ein vorangestellter Punkt im Domänennamen (z. B. `Domain=.example.com`) ist optional. Wenn Sie ein `Domain`-Attribut angeben, müssen darüber hinaus der Domänenname in der URL und der Wert des `Domain`-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ügen URLs, unabhängig davon, ob Sie das Attribut angeben. `Domain` Weitere Informationen finden Sie unter [Alternative Domainnamen (CNAMEs)](DownloadDistValuesGeneral.md#DownloadDistValuesCNAME) im Thema [Referenz für alle Distributionseinstellungen](distribution-web-values-specify.md).  
**(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`**  
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 (XSS)-Angriffe abzuwehren. Weitere Informationen finden Sie unter [Verwenden von HTTP-Cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies).  
**`CloudFront-Expires`**  
Geben Sie das Ablaufdatum und die Ablaufzeit im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC) an. Beispielsweise wird der 1. Januar 2026, 10:00 Uhr UTC im Unix-Zeitformat in 1767290400 umgewandelt.   
Um die Epochenzeit zu verwenden, geben Sie eine 64-Bit-Ganzzahl für ein Datum an, das nicht nach `9223372036854775807` (Freitag, 11. April 2262 um 23:47:16.854 UTC) liegt.  
Weitere Informationen zu UTC finden Sie unter *RFC 3339, Datum und Uhrzeit im Internet: Zeitstempel*, [https://tools.ietf.org/html/rfc3339](https://tools.ietf.org/html/rfc3339).  
**`CloudFront-Signature`**  
Eine gehashte, signierte und Base64-codierte Version einer JSON-Richtlinienanweisung. Weitere Informationen finden Sie unter [Erstellen einer Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-signature-cookies).  
**`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 der signierten URL verwendet werden soll. CloudFront vergleicht 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 [Geben Sie Unterzeichner an, die signierte URLs und signierte Cookies erstellen können](private-content-trusted-signers.md).  
**`CloudFront-Hash-Algorithm`**  
(Optional) Der Hash-Algorithmus, der zur Erstellung der Signatur verwendet wurde. Unterstützte Werte sind `SHA1` und `SHA256`. Wenn Sie dieses Cookie nicht einschließen, CloudFront ist standardmäßig. `SHA1`

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
Set-Cookie: CloudFront-Hash-Algorithm=SHA256; 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
Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=example.org; Path=/images/*; Secure; HttpOnly
```

Wenn Sie einen alternativen Domainnamen wie example.com in verwenden möchten URLs, 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)](DownloadDistValuesGeneral.md#DownloadDistValuesCNAME) im Thema [Referenz für alle Distributionseinstellungen](distribution-web-values-specify.md).

## Erstellen einer Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-signature-cookies"></a>

Zum Erstellen der Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet, führen Sie die folgenden Schritte aus.

**Topics**
+ [Erstellen einer Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-statement-cookies)
+ [Signieren der Richtlinienanweisung zum Erstellen einer Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-cookies-signing-policy-statement)

### Erstellen einer Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-statement-cookies"></a>

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.<a name="private-content-canned-policy-statement-cookies-procedure"></a>

**So erstellen Sie eine Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet**

1. Erstellen Sie die Richtlinienanweisung unter Verwendung des folgenden JSON-Formats und der UTF-8-Zeichencodierung. Fügen Sie alle Satzzeichen und andere Literalwerte genau wie angegeben ein. Informationen zu den Parametern `Resource` und `DateLessThan` finden Sie unter [Werte, die Sie in der Richtlinienanweisung für eine vordefinierte Richtlinie für signierte Cookies angeben](#private-content-canned-policy-statement-cookies-values).

   ```
   {
       "Statement": [
           {
               "Resource": "base URL or stream name",
               "Condition": {
                   "DateLessThan": {
                       "AWS:EpochTime": ending date and time in Unix time format and UTC
                   }
               }
           }
       ]
   }
   ```

1. 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.

#### Werte, die Sie in der Richtlinienanweisung für eine vordefinierte Richtlinie für signierte Cookies angeben
<a name="private-content-canned-policy-statement-cookies-values"></a>

Beim Erstellen einer Richtlinienanweisung für eine vordefinierte Richtlinie geben Sie die folgenden Werte an:

**Ressource**  
Die Basis-URL einschließlich Ihrer Abfragezeichenfolgen, sofern 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://` oder `https://` beginnen.
+ **Abfragezeichenfolgeparameter** – Wenn Sie über keine Abfragezeichenfolgeparameter verfügen, lassen Sie das Fragezeichen weg.
+ **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.  
Dieser Wert muss mit dem Wert des `CloudFront-Expires`-Attributs im `Set-Cookie`-Header übereinstimmen. Setzen Sie den Wert nicht in Anführungszeichen.  
Weitere Informationen finden Sie unter [When CloudFront überprüft das Ablaufdatum und die Uhrzeit in einem signierten Cookie](private-content-signed-cookies.md#private-content-check-expiration-cookie).

#### Beispiel-Richtlinienanweisung für eine vordefinierte Richtlinie
<a name="private-content-canned-policy-cookies-sample-policy-statement"></a>

Wenn Sie die folgende Beispiel-Richtlinienanweisung in einem signierten Cookie verwenden, kann ein Benutzer bis zum 16. März 2015, 10:00 Uhr UTC, auf die Datei `https://d111111abcdef8.cloudfront.net/horizon.jpg` zugreifen:

```
{
    "Statement": [
        {
            "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes",
            "Condition": {
                "DateLessThan": {
                    "AWS:EpochTime": 1426500000
                }
            }
        }
    ]
}
```

### Signieren der Richtlinienanweisung zum Erstellen einer Signatur für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-cookies-signing-policy-statement"></a>

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](#private-content-canned-policy-statement-cookies-procedure) erstellte Richtlinienanweisung hashen und signieren. 

Weitere Informationen und Beispiele für das Hashing, Signieren und Codieren der Richtlinienanweisung finden Sie in den folgenden Themen:
+ [Linux-Befehle und OpenSSL für die Base64-Codierung und die Verschlüsselung](private-content-linux-openssl.md)
+ [Code-Beispiele für das Erstellen einer Signatur für eine signierte URL](PrivateCFSignatureCodeAndExamples.md)

**Anmerkung**  
Die verlinkten Beispiele verwenden standardmäßig SHA-1. Um stattdessen SHA-256 zu verwenden, ersetzen Sie `sha1` es `sha256` in den OpenSSL-Befehlen durch und fügen Sie das `CloudFront-Hash-Algorithm` Cookie mit dem Wert von ein. `SHA256`<a name="private-content-canned-policy-cookie-creating-signature-procedure"></a>

**So erstellen Sie eine Signatur für ein signiertes Cookie mit einer vordefinierten Richtlinie**

1. Verwenden Sie die SHA-1- oder SHA-256-Hash-Funktion und RSA, um die Richtlinienanweisung, die Sie in der Prozedur erstellt haben, zu hashen und zu signieren. [So erstellen Sie eine Richtlinienanweisung für ein signiertes Cookie, das eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-statement-cookies-procedure) Verwenden Sie die Version der Richtlinienanweisung, die keine Leerzeichen mehr enthält.

   Wenn Sie SHA-256 verwenden, müssen Sie das Cookie mit einem Wert von `CloudFront-Hash-Algorithm` einschließen. `SHA256`

   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](PrivateCFSignatureCodeAndExamples.md).

1. Entfernen Sie die Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) aus der gehashten und signierten Zeichenfolge.

1. Nehmen Sie eine Base64-Codierung der Zeichenfolge mithilfe von MIME-Base64-Codierung vor. Weitere Informationen finden Sie in [Abschnitt 6.8, Base64 Content-Transfer-Encoding](https://tools.ietf.org/html/rfc2045#section-6.8) in *RFC 2045, MIME (Multipurpose Internet Mail Extensions), Erster Teil: Format von Internet-Nachrichtentexten*.

1. 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.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html)

1. Fügen Sie den resultierenden Wert im `Set-Cookie`-Header für das `CloudFront-Signature`-Name-Wert-Paar ein. Kehren Sie anschließend zu [So richten Sie ein signiertes Cookies mit einer vordefinierten Richtlinie ein](#private-content-setting-signed-cookie-canned-policy-procedure) zurück und fügen Sie den `Set-Cookie`-Header für `CloudFront-Key-Pair-Id` hinzu.