

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.

# Verwenden Sie signierte URLs
<a name="private-content-signed-urls"></a>

Eine signierte URL enthält zusätzliche Informationen, wie z. B. Ablaufdatum und -zeit, mit denen Sie den Zugriff auf Ihre Inhalte besser kontrollieren können. Diese zusätzlichen Informationen sind in einer Richtlinienanweisung enthalten, die entweder auf einer vordefinierten oder einer benutzerdefinierten Richtlinie basieren. Die Unterschiede zwischen vordefinierten und benutzerdefinierten Richtlinien sind in den nächsten beiden Abschnitten beschrieben.

**Anmerkung**  
Sie können einige signierte URLs mithilfe vordefinierter Richtlinien und einige signierte URLs mithilfe benutzerdefinierter Richtlinien für dieselbe Distribution erstellen.

**Topics**
+ [Entscheiden Sie sich dafür, vordefinierte oder benutzerdefinierte Richtlinien für signierte Richtlinien zu verwenden URLs](#private-content-choosing-canned-custom-policy)
+ [Wie URLs funktionieren signierte](#private-content-how-signed-urls-work)
+ [Entscheiden Sie, wie lange Unterschriften gültig URLs sind](#private-content-overview-choosing-duration)
+ [Wann CloudFront überprüft das Ablaufdatum und die Uhrzeit in einer signierten URL](#private-content-check-expiration)
+ [Beispiel-Code und Drittanbieter-Tools](#private-content-overview-sample-code)
+ [Erstellen einer signierten URL mit einer vordefinierten Richtlinie](private-content-creating-signed-url-canned-policy.md)
+ [Erstellen einer signierten URL mit einer benutzerdefinierten Richtlinie](private-content-creating-signed-url-custom-policy.md)

## Entscheiden Sie sich dafür, vordefinierte oder benutzerdefinierte Richtlinien für signierte Richtlinien zu verwenden URLs
<a name="private-content-choosing-canned-custom-policy"></a>

Wenn Sie eine signierte URL erstellen, schreiben Sie eine Richtlinienanweisung im JSON-Format, welche die Einschränkungen für die signierte URL festlegt, z. B. wie lange die URL gültig ist. Sie können entweder eine vordefinierte Richtlinie oder eine benutzerdefinierte Richtlinie verwenden. Im Folgenden finden Sie einen Vergleich zwischen vordefinierten und benutzerdefinierten Richtlinien:


****  

| Beschreibung | Vordefinierte Richtlinie | Benutzerdefinierte Richtlinie | 
| --- | --- | --- | 
| Sie können die Richtlinienanweisung für mehrere Dateien wiederverwenden. Um die Richtlinienanweisung wiederzuverwenden, müssen Sie Platzhalterzeichen im `Resource`-Objekt verwenden. Weitere Informationen finden Sie unter [Werte, die Sie in der Richtlinienanweisung für eine signierte URL angeben, die eine benutzerdefinierte Richtlinie verwendet](private-content-creating-signed-url-custom-policy.md#private-content-custom-policy-statement-values).)  | Nein | Ja | 
| Sie können das Datum und die Zeit festlegen, ab denen Benutzer auf Ihre Inhalte zugreifen können. | Nein | Ja (optional) | 
| Sie können das Datum und die Zeit festlegen, ab denen Benutzer nicht mehr auf Ihre Inhalte zugreifen können. | Ja | Ja | 
| Sie können die IP-Adresse oder den Bereich von IP-Adressen der Benutzer festlegen, die auf Ihre Inhalte zugreifen können. | Nein | Ja (optional) | 
| Die signierte URL enthält eine Base64-codierte Version der Richtlinie, was zu einer längeren URL führt. | Nein | Ja | 

Informationen zum Erstellen signierter Richtlinien URLs mithilfe einer *vordefinierten* Richtlinie finden Sie unter[Erstellen einer signierten URL mit einer vordefinierten Richtlinie](private-content-creating-signed-url-canned-policy.md).

Informationen zum Erstellen signierter Dateien URLs mithilfe einer *benutzerdefinierten* Richtlinie finden Sie unter[Erstellen einer signierten URL mit einer benutzerdefinierten Richtlinie](private-content-creating-signed-url-custom-policy.md).

## Wie URLs funktionieren signierte
<a name="private-content-how-signed-urls-work"></a>

Hier finden Sie eine Übersicht darüber, wie Sie Amazon S3 für signiert konfigurieren CloudFront URLs und wie CloudFront reagiert, wenn ein Benutzer eine signierte URL verwendet, um eine Datei anzufordern. 

1. Geben Sie in Ihrer CloudFront Distribution eine oder mehrere vertrauenswürdige Schlüsselgruppen an, die die öffentlichen Schlüssel enthalten, die zur Überprüfung der URL-Signatur verwendet werden CloudFront können. Sie verwenden die entsprechenden privaten Schlüssel, um die zu signieren URLs.

   CloudFront unterstützt URLs mit RSA 2048 und ECDSA 256 signierte Schlüsselsignaturen.

   Weitere Informationen finden Sie unter [Geben Sie Unterzeichner an, die signierte URLs und signierte Cookies erstellen können](private-content-trusted-signers.md).

1. Entwickeln Sie Ihre Anwendung, um zu ermitteln, ob ein Benutzer Zugriff auf Ihre Inhalte haben sollte, und um signierte URLs Dateien oder Teile Ihrer Anwendung zu erstellen, auf die Sie den Zugriff beschränken möchten. Weitere Informationen finden Sie unter den folgenden Themen:
   + [Erstellen einer signierten URL mit einer vordefinierten Richtlinie](private-content-creating-signed-url-canned-policy.md)
   + [Erstellen einer signierten URL mit einer benutzerdefinierten Richtlinie](private-content-creating-signed-url-custom-policy.md)

1. Ein Benutzer fordert eine Datei an, für die Sie eine Signatur benötigen möchten URLs.

1. Ihre Anwendung stellt sicher, dass der Benutzer zum Zugriff auf die Datei berechtigt ist: Er hat sich angemeldet, für den Zugriff auf die Inhalte bezahlt oder andere Anforderungen für den Zugriff erfüllt.

1. Ihre Anwendung erstellt eine signierte URL und gibt diese an den Benutzer zurück.

1. Über die signierte URL kann der Benutzer die Inhalte herunterladen oder streamen.

   Dieser Schritt erfolgt automatisch. Der Benutzer muss in der Regel keine zusätzlichen Schritte ausführen, um auf den Inhalt zuzugreifen. Wenn ein Benutzer beispielsweise in einem Web-Browser auf Ihre Inhalte zugreift, gibt Ihre Anwendung die signierte URL an den Browser zurück. Der Browser verwendet sofort die signierte URL, um auf die Datei im CloudFront Edge-Cache zuzugreifen, ohne dass der Benutzer eingreifen muss.

1. CloudFront verwendet den öffentlichen Schlüssel, um die Signatur zu validieren und zu bestätigen, dass die URL nicht manipuliert wurde. Wenn die Signatur ungültig ist, wird die Anfrage abgelehnt. 

   Wenn die Signatur gültig ist, überprüft CloudFront die Richtlinienanweisung in der URL (oder erstellt eine, wenn Sie eine vordefinierte Richtlinie verwenden), um zu bestätigen, dass die Anfrage noch gültig ist. Wenn Sie beispielsweise ein Anfangs- und Enddatum und eine Uhrzeit für die URL angegeben haben, wird CloudFront bestätigt, dass der Benutzer versucht, während des Zeitraums, für den Sie den Zugriff zulassen möchten, auf Ihre Inhalte zuzugreifen. 

   Wenn die Anforderung die Anforderungen der Richtlinienerklärung CloudFront erfüllt, werden die Standardoperationen ausgeführt: Ermittelt, ob sich die Datei bereits im Edge-Cache befindet, leitet die Anforderung gegebenenfalls an den Ursprung weiter und gibt die Datei an den Benutzer zurück.

**Anmerkung**  
Wenn eine unsignierte URL Abfragezeichenfolgenparameter enthält, stellen Sie sicher, dass Sie diese in den Teil der URL einschließen, den Sie signieren. Wenn Sie einer signierten URL nach der Erstellung eine Abfragezeichenfolge hinzufügen, gibt die URL einen HTTP 403-Status zurück.

## Entscheiden Sie, wie lange Unterschriften gültig URLs sind
<a name="private-content-overview-choosing-duration"></a>

Sie können private Inhalte mithilfe einer signierten URL verteilen, die nur für einen kurzen Zeitraum gültig ist – vielleicht nur für ein paar Minuten. Signierte URLs , die für einen so kurzen Zeitraum gültig sind, eignen sich gut für die Verteilung von Inhalten on-the-fly an einen Benutzer zu einem bestimmten Zweck, z. B. zur Verteilung von Leihfilmen oder Musikdownloads an Kunden auf Abruf. Wenn URLs Ihre signierten Dokumente nur für einen kurzen Zeitraum gültig sind, möchten Sie sie wahrscheinlich automatisch mit einer von Ihnen entwickelten Anwendung generieren. Wenn der Benutzer beginnt, eine Datei herunterzuladen oder eine Mediendatei abzuspielen, CloudFront vergleicht er die Ablaufzeit in der URL mit der aktuellen Uhrzeit, um festzustellen, ob die URL noch gültig ist.

Sie können private Inhalte auch mithilfe einer signierten URL verteilen, die für einen längeren Zeitraum gültig ist – vielleicht für viele Jahre. Signierte URLs , die für einen längeren Zeitraum gültig sind, sind nützlich, um private Inhalte an bekannte Benutzer zu verteilen, z. B. um einen Geschäftsplan an Investoren zu verteilen oder Schulungsmaterial an Mitarbeiter zu verteilen. Sie können eine Anwendung entwickeln, mit der diese längerfristigen signierten Dateien URLs für Sie generiert werden.

## Wann CloudFront überprüft das Ablaufdatum und die Uhrzeit in einer signierten URL
<a name="private-content-check-expiration"></a>

CloudFront überprüft das Ablaufdatum und die Uhrzeit in einer signierten URL zum Zeitpunkt der HTTP-Anfrage. Wenn ein Client unmittelbar vor der Ablaufzeit mit dem Download einer großen Datei beginnt, sollte der Download abgeschlossen werden, auch wenn die Ablaufzeit während des Downloads überschritten wird. Wenn die TCP-Verbindung getrennt wird und der Client nach Überschreitung der Ablaufzeit versucht, den Download erneut zu starten, schlägt der Download fehl.

Wenn ein Client Range verwendet GETs , um eine Datei in kleineren Teilen abzurufen, schlägt jede GET-Anforderung fehl, die nach Ablauf der Ablaufzeit erfolgt. Weitere Informationen zu Range GETs finden Sie unter[Wie CloudFront werden Teilanfragen für ein Objekt (BereichGETs) verarbeitet](RangeGETs.md).

## Beispiel-Code und Drittanbieter-Tools
<a name="private-content-overview-sample-code"></a>

Beispielcode, der den Hash-Teil und den signierten Teil von signed erstellt URLs, finden Sie in den folgenden Themen:
+ [Erstellen einer URL-Signatur mit Perl](CreateURLPerl.md)
+ [Erstellen einer URL-Signatur mit PHP](CreateURL_PHP.md)
+ [Erstellen einer URL-Signatur mithilfe von C\$1 und dem .NET Framework](CreateSignatureInCSharp.md)
+ [Erstellen einer URL-Signatur mit Java](CFPrivateDistJavaDevelopment.md)

# Erstellen einer signierten URL mit einer vordefinierten Richtlinie
<a name="private-content-creating-signed-url-canned-policy"></a>

Führen Sie die folgenden Schritte aus, um eine signierte URL mit einer vordefinierten Richtlinie zu erstellen.<a name="private-content-creating-signed-url-canned-policy-procedure"></a>

**So erstellen Sie eine signierte URL mit einer vordefinierten Richtlinie**

1. Wenn Sie.NET oder Java verwenden, um signierte zu erstellen URLs, und wenn Sie den privaten Schlüssel für Ihr key pair nicht vom standardmäßigen .pem-Format in ein mit .NET oder Java kompatibles Format umformatiert haben, tun Sie dies jetzt. 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. Verketten Sie die folgenden Werte. Sie können das Format in diesem Beispiel für eine signierte URL verwenden. 

   ```
   https://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Expires=1767290400&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5F
   ```

   Entfernen Sie alle Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen). Möglicherweise müssen Sie in der Zeichenfolge im Anwendungscode Escape-Zeichen einfügen. Alle Werte verfügen über `String` als Typ.  
**1. *Base URL for the file***  
Die Basis-URL ist die CloudFront URL, die Sie für den Zugriff auf die Datei verwenden würden, wenn Sie keine signierten verwenden würden URLs, einschließlich Ihrer eigenen Abfragezeichenfolge-Parameter, falls vorhanden. Im vorherigen Beispiel lautet die Basis-URL `https://d111111abcdef8.cloudfront.net/image.jpg`. Weitere Hinweise zum Format von URLs für Distributionen finden Sie unter[Anpassen des URL-Formats für Dateien in CloudFront](LinkFormat.md).  
   + Die folgende CloudFront URL bezieht sich auf eine Bilddatei in einer Distribution (unter Verwendung des CloudFront Domainnamens). Beachten Sie, dass `image.jpg` ein `images`-Verzeichnis ist. Der Pfad zur Datei in der URL muss mit dem Pfad zur Datei auf Ihrem HTTP-Server oder in Ihrem Amazon S3 Bucket übereinstimmen.

     `https://d111111abcdef8.cloudfront.net/images/image.jpg`
   + Die folgende CloudFront URL enthält eine Abfragezeichenfolge:

     `https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large`
   + Die folgenden Informationen CloudFront URLs beziehen sich auf Bilddateien in einer Distribution. Beide verwenden einen alternativen Domainnamen. Die zweite enthält eine Abfragezeichenfolge:

     `https://www.example.com/images/image.jpg`

     `https://www.example.com/images/image.jpg?color=red`
   + Die folgende CloudFront URL bezieht sich auf eine Bilddatei in einer Distribution, die einen alternativen Domainnamen und das HTTPS-Protokoll verwendet:

     `https://www.example.com/images/image.jpg`  
** 2. `?`**  
`?` zeigt an, dass Abfrageparameter hinter der Basis-URL angegeben sind. Schließen Sie das `?` auch dann ein, wenn Sie keine Abfrageparameter angeben.  
Sie können die folgenden Abfrageparameter in beliebiger Reihenfolge angeben.  
**3. *Your query string parameters, if any*`&`**  
(Optional) Sie können Ihre eigenen Abfragezeichenfolgenparameter eingeben. Fügen Sie dazu zwischen jedem ein Et-Zeichen (`&`) hinzu, wie in `color=red&size=medium`. Sie können die Abfragezeichenfolgenparameter in beliebiger Reihenfolge innerhalb der URL angeben.  
Ihre Abfragezeichenparameter können nicht mit `Expires`, `Signature` oder `Key-Pair-Id` benannt werden.  
** 4. `Expires=`*date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)***  
Das Datum und die Uhrzeit, wann die URL den Zugriff auf die Datei nicht mehr zulassen soll.  
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 in das Unix-Zeitformat `1767290400` umgewandelt, wie im Beispiel am Anfang dieses Themas dargestellt.   
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).  
** 5. `&Signature=`*hashed and signed version of the policy statement***  
Eine gehashte, signierte und Base64-codierte Version der JSON-Richtlinienanweisung. Weitere Informationen finden Sie unter [Erstellen einer Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-creating-signature).  
** 6. `&Key-Pair-Id=`*public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature***  
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).

## Erstellen einer Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-creating-signature"></a>

Zum Erstellen der Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet, führen Sie die folgenden Schritte aus.

**Topics**
+ [Erstellen einer Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-creating-policy-statement)
+ [Erstellen einer Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-signing-policy-statement)

### Erstellen einer Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-creating-policy-statement"></a>

Wenn Sie eine signierte URL mit einer vordefinierten Richtlinie erstellen, ist der `Signature`-Parameter eine gehashte und signierte Version einer Richtlinienanweisung. Bei signierten URLs , die eine vorgefertigte Richtlinie verwenden, fügen Sie die Richtlinienanweisung nicht in die URL ein, wie dies bei signierten Richtlinien der Fall ist URLs , die eine benutzerdefinierte Richtlinie verwenden. Zum Erstellen der Richtlinienanweisung führen Sie die folgenden Schritte aus.<a name="private-content-canned-policy-creating-policy-statement-procedure"></a>

**So erstellen Sie die Richtlinienanweisung für eine signierte URL, die 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 signierte URL angeben, die eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-statement-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 signierte URL angeben, die eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-statement-values"></a>

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

**Ressource**  
Sie können nur einen Wert für `Resource` angeben.
Die Basis-URL einschließlich Ihrer Abfragezeichenfolgen, sofern vorhanden, jedoch ohne die CloudFront `Expires` `Key-Pair-Id` Parameter`Signature`, und, zum Beispiel:  
`https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes`  
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 das Objekt an.

**DateLessThan**  
Das Ablaufdatum und die Ablaufzeit für die URL im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC). Beispielsweise wird der 1. Januar 2026, 10:00 Uhr UTC im Unix-Zeitformat in 1767290400 umgewandelt.  
Dieser Wert muss mit dem Wert des `Expires`-Abfragezeichenfolgeparameters in der signierten URL übereinstimmen. Setzen Sie den Wert nicht in Anführungszeichen.  
Weitere Informationen finden Sie unter [Wann CloudFront überprüft das Ablaufdatum und die Uhrzeit in einer signierten URL](private-content-signed-urls.md#private-content-check-expiration).

#### Beispiel-Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-creating-policy-statement-example"></a>

Wenn Sie die folgende Beispiel-Richtlinienanweisung in einer signierten URL verwenden, kann ein Benutzer bis zum 1. Januar 2026, 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": 1767290400
                }
            }
        }
    ]
}
```

### Erstellen einer Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet
<a name="private-content-canned-policy-signing-policy-statement"></a>

Um den Wert für den Parameter `Signature` in einer signierten URL zu erstellen, müssen Sie die in [Erstellen einer Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-creating-policy-statement) erstellte Richtlinienanweisung hashen und signieren.

Weitere Informationen und Beispiele für das Hashing, Signieren und Codieren der Richtlinienanweisung finden Sie unter:
+ [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)<a name="private-content-canned-policy-creating-signature-download-procedure"></a>

**Option 1: So erstellen Sie eine Signatur mithilfe einer vordefinierten Richtlinie**

1. Verwenden Sie die SHA-1-Hash-Funktion und den generierten privaten RSA- oder ECDSA-Schlüssel, um die im Verfahren [So erstellen Sie die Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet](#private-content-canned-policy-creating-policy-statement-procedure) erstellte Richtlinienanweisung zu hashen und zu signieren. 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 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), Teil 1: 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-creating-signed-url-canned-policy.html)

1. Fügen Sie den resultierenden Wert hinter `&Signature=` zu Ihrer signierten URL hinzu und kehren Sie zu [So erstellen Sie eine signierte URL mit einer vordefinierten Richtlinie](#private-content-creating-signed-url-canned-policy-procedure) zurück, um das Verketten der Teile Ihrer signierten URL abzuschließen.

# Erstellen einer signierten URL mit einer benutzerdefinierten Richtlinie
<a name="private-content-creating-signed-url-custom-policy"></a>

Um eine signierte URL mit einer benutzerdefinierten Richtlinie zu erstellen, führen Sie die folgenden Schritte aus.<a name="private-content-creating-signed-url-custom-policy-procedure"></a>

**So erstellen Sie eine signierte URL mit einer benutzerdefinierten Richtlinie**

1. Wenn Sie.NET oder Java verwenden, um signierte zu erstellen URLs, und wenn Sie den privaten Schlüssel für Ihr key pair nicht vom standardmäßigen .pem-Format in ein mit .NET oder Java kompatibles Format umformatiert haben, tun Sie dies jetzt. 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. Verketten Sie die folgenden Werte. Sie können das Format in diesem Beispiel für eine signierte URL verwenden.

   

   ```
   https://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIyMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5F
   ```

   Entfernen Sie alle Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen). Möglicherweise müssen Sie in der Zeichenfolge im Anwendungscode Escape-Zeichen einfügen. Alle Werte verfügen über `String` als Typ.  
**1. *Base URL for the file***  
Die Basis-URL ist die CloudFront URL, die Sie für den Zugriff auf die Datei verwenden würden, wenn Sie keine signierten verwenden würden URLs, einschließlich Ihrer eigenen Abfragezeichenfolge-Parameter, falls vorhanden. Im vorherigen Beispiel lautet die Basis-URL `https://d111111abcdef8.cloudfront.net/image.jpg`. Weitere Hinweise zum Format von URLs für Distributionen finden Sie unter[Anpassen des URL-Formats für Dateien in CloudFront](LinkFormat.md).  
Die folgenden Beispiele zeigen Werte, die Sie für Distributionen angeben.  
   + Die folgende CloudFront URL bezieht sich auf eine Bilddatei in einer Distribution (unter Verwendung des CloudFront Domainnamens). Beachten Sie, dass `image.jpg` ein `images`-Verzeichnis ist. Der Pfad zur Datei in der URL muss mit dem Pfad zur Datei auf Ihrem HTTP-Server oder in Ihrem Amazon S3 Bucket übereinstimmen.

     `https://d111111abcdef8.cloudfront.net/images/image.jpg`
   + Die folgende CloudFront URL enthält eine Abfragezeichenfolge:

     `https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large`
   + Die folgenden Informationen CloudFront URLs beziehen sich auf Bilddateien in einer Distribution. Beide verwenden einen alternativen Domänennamen; die zweite enthält eine Abfragezeichenfolge:

     `https://www.example.com/images/image.jpg`

     `https://www.example.com/images/image.jpg?color=red`
   + Die folgende CloudFront URL bezieht sich auf eine Bilddatei in einer Distribution, die einen alternativen Domainnamen und das HTTPS-Protokoll verwendet:

     `https://www.example.com/images/image.jpg`  
**2. `?`**  
`?` zeigt an, dass Abfragezeichenfolgeparameter hinter der Basis-URL angegeben sind. Schließen Sie das `?` auch dann ein, wenn Sie keine Abfrageparameter angeben.  
Sie können die folgenden Abfrageparameter in beliebiger Reihenfolge angeben.  
**3. *Your query string parameters, if any*`&`**  
(Optional) Sie können Ihre eigenen Abfragezeichenfolgenparameter eingeben. Fügen Sie dazu zwischen jedem ein Et-Zeichen (&) hinzu, wie in `color=red&size=medium`. Sie können die Abfragezeichenfolgenparameter in beliebiger Reihenfolge innerhalb der URL angeben.  
Ihre Abfragezeichenparameter können nicht mit `Policy`, `Signature` oder `Key-Pair-Id` benannt werden.
Wenn Sie eigene Parameter hinzufügen, fügen Sie nach jedem Parameter ein `&` an, auch nach dem letzten.   
**4. `Policy=`*base64 encoded version of policy statement***  
Ihre Richtlinienanweisung im JSON-Format, wobei Leerzeichen entfernt wurden und eine Base64-Codierung vorgenommen wurde. Weitere Informationen finden Sie unter [Erstellen einer Richtlinienanweisung für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-statement).  
Die Richtlinienanweisung steuert den Zugriff, den eine signierte URL einem Benutzer gewährt. Sie enthält die URL der Datei, ein Ablaufdatum und eine Uhrzeit, 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.  
**5. `&Signature=`*hashed and signed version of the policy statement***  
Eine gehashte, signierte und Base64-codierte Version der JSON-Richtlinienanweisung. Weitere Informationen finden Sie unter [Erstellen einer Signatur für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-creating-signature).  
**6. `&Key-Pair-Id=`*public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature***  
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. 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 [Geben Sie Unterzeichner an, die signierte URLs und signierte Cookies erstellen können](private-content-trusted-signers.md).

## Erstellen einer Richtlinienanweisung für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet
<a name="private-content-custom-policy-statement"></a>

Führen Sie zum Erstellen einer Richtlinienanweisung für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet, die folgenden Schritte aus.

Einige Beispiele für Richtlinienanweisungen, die den Zugriff auf Dateien auf verschiedene Weisen kontrollieren, finden Sie unter [Beispiel-Richtlinienanweisungen für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-statement-examples).<a name="private-content-custom-policy-creating-policy-procedure"></a>

**So erstellen Sie die Richtlinienanweisung für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet**

1. Erstellen Sie die Richtlinienanweisung unter Verwendung des folgenden JSON-Formats. Ersetzen Sie die Symbole für „kleiner als“ (`<`) und „größer als“ (`>`) und die darin enthaltenen Beschreibungen durch Ihre eigenen Werte. Weitere Informationen finden Sie unter [Werte, die Sie in der Richtlinienanweisung für eine signierte URL angeben, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-statement-values).

   ```
   {
       "Statement": [
           {
               "Resource": "<Optional but recommended: 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 in die Richtlinie aufnehmen.
   + Verwenden Sie UTF-8-Zeichencodierung.
   + 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 `Condition` ist unerheblich.
   + Informationen zu den Werten für `Resource`, `DateLessThan`, `DateGreaterThan` und `IpAddress` finden Sie unter [Werte, die Sie in der Richtlinienanweisung für eine signierte URL angeben, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-statement-values).

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.

1. Nehmen Sie eine Base64-Codierung der Richtlinienanweisung 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), Teil 1: 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-creating-signed-url-custom-policy.html)

1. Fügen Sie den resultierenden Wert hinter zu Ihrer signierten URL hinz `Policy=`.

1. Erstellen Sie eine Signatur für die signierte URL, indem Sie die Richtlinienanweisung hashen, signieren und eine Base64-Codierung vornehmen. Weitere Informationen finden Sie unter [Erstellen einer Signatur für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-creating-signature).

### Werte, die Sie in der Richtlinienanweisung für eine signierte URL angeben, die eine benutzerdefinierte Richtlinie verwendet
<a name="private-content-custom-policy-statement-values"></a>

Beim Erstellen einer Richtlinienanweisung für eine benutzerdefinierte Richtlinie geben Sie die folgenden Werte an.

**Ressource**  
Die URL, einschließlich aller Abfragezeichenfolgen, jedoch ohne die Parameter CloudFront `Policy`, und`Signature`. `Key-Pair-Id` Beispiel:  
`https://d111111abcdef8.cloudfront.net/images/horizon.jpg\?size=large&license=yes`  
Sie können nur einen URL-Wert für `Resource` angeben.  
Sie können den `Resource`-Parameter in einer Richtlinie weglassen. Dies bedeutet jedoch, dass alle, die über die signierte URL verfügen, auf *alle* Dateien in *jeder* Distribution zugreifen können, die mit dem zum Erstellen der signierten URL verwendeten Schlüsselpaar verknüpft ist.
Beachten Sie Folgendes:  
+ **Protokoll** – Der Wert muss mit `http://`, `https://` oder `*://` beginnen.
+ **Parameter für die Abfragezeichenfolge** — Wenn die URL Abfragezeichenfolgenparameter enthält, verwenden Sie keinen umgekehrten Schrägstrich (`\`), um das Fragezeichen (`?`) zu umgehen, mit dem die Abfragezeichenfolge beginnt. Beispiel:

  `https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes`
+ **Platzhalterzeichen** – Sie können Platzhalterzeichen in der URL in der Richtlinie verwenden. Die folgenden Platzhalterzeichen werden unterstützt:
  + Sternchen (`*`) für null oder mehr Zeichen.
  + Fragezeichen (`?`) für genau ein Zeichen

  Wenn die URL in der Richtlinie mit der URL in der HTTP-Anforderung CloudFront übereinstimmt, ist die URL in der Richtlinie wie folgt in vier Abschnitte unterteilt: Protokoll, Domäne, Pfad und Abfragezeichenfolge:

  `[protocol]://[domain]/[path]\?[query string]`

  Wenn Sie in der URL in der Richtlinie ein Platzhalterzeichen verwenden, erfolgt der Platzhalterabgleich nur innerhalb der Grenzen des Abschnitts, der den Platzhalter enthält. Betrachten Sie etwa diese URL in einer Richtlinie:

  `https://www.example.com/hello*world`

  In diesem Beispiel gilt der Sternchen-Platzhalter (`*`) nur innerhalb des Pfadabschnitts, entspricht also dem URLs `https://www.example.com/helloworld` und`https://www.example.com/hello-world`, aber nicht der URL. `https://www.example.net/hello?world`

  Die folgenden Ausnahmen gelten beim Platzhalterabgleich für die Abschnittsgrenzen:
  + Ein nachfolgendes Sternchen im Pfadabschnitt impliziert ein Sternchen im Abschnitt mit der Abfragezeichenfolge. Beispiel: `http://example.com/hello*` ist gleichbedeutend mit `http://example.com/hello*\?*`.
  + Ein nachfolgendes Sternchen im Domainabschnitt impliziert ein Sternchen sowohl im Pfad- als auch im Abschnitt mit der Abfragezeichenfolge. Beispiel: `http://example.com*` ist gleichbedeutend mit `http://example.com*/*\?*`.
  + Eine URL in der Richtlinie kann den Protokollabschnitt weglassen und im Domainabschnitt mit einem Sternchen beginnen. In diesem Fall wird der Protokollabschnitt implizit auf ein Sternchen gesetzt. Beispielsweise entspricht die URL `*example.com` in einer Richtlinie `*://*example.com/`.
  + Ein Sternchen an sich (`"Resource": "*"`) entspricht jeder URL.

  Beispielsweise entspricht der Wert: `https://d111111abcdef8.cloudfront.net/*game_download.zip*` in einer Richtlinie allen folgenden Kriterien: URLs
  + `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 Domainnamen** – Wenn Sie einen alternativen Domainnamen (CNAME) in der URL in der Richtlinie angeben, muss die HTTP-Anfrage diesen alternativen Domainnamen auf Ihrer Webseite oder in Ihrer Anwendung verwenden. Geben Sie nicht die Amazon-S3-URL für die Datei in einer Richtlinie an.

**DateLessThan**  
Das Ablaufdatum und die Ablaufzeit für die URL im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC). Setzen Sie in der Richtlinie den Wert nicht in Anführungszeichen. Weitere Informationen zu UTC finden Sie unter [Datum und Uhrzeit im Internet: Zeitstempel](https://tools.ietf.org/html/rfc3339).  
Beispielsweise wird der 31. Januar 2023, 10:00 Uhr UTC, im Unix-Zeitformat in 1675159200 konvertiert.  
Dies ist der einzige erforderliche Parameter in `Condition` diesem Abschnitt. CloudFront benötigt diesen Wert, um zu verhindern, dass Benutzer dauerhaft auf Ihre privaten Inhalte zugreifen können.  
Weitere Informationen finden Sie unter [Wann CloudFront überprüft das Ablaufdatum und die Uhrzeit in einer signierten URL](private-content-signed-urls.md#private-content-check-expiration).

**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 HTTP-Anfrage stellt. Beachten Sie Folgendes:  
+ Um allen IP-Adressen den Zugriff auf die Datei zu gewähren, lassen Sie den Parameter `IpAddress` weg.
+ Sie können entweder eine IP-Adresse oder einen IP-Adressbereich angeben. Sie können die Richtlinie nicht zum Gewähren von Zugriff verwenden, wenn sich die IP-Adresse des Clients 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 [Classless Inter-domain Routing (CIDR): Internet-Adresszuweisung und Aggregierungsplan](https://tools.ietf.org/html/rfc4632).
**Wichtig**  
IP-Adressen im IPv6 Format 2001:0 db 8:85 a3: :8a2e: 0370:7334 werden nicht unterstützt. 

  Wenn Sie eine benutzerdefinierte Richtlinie verwenden, die Folgendes umfasst: Aktivieren Sie diese Option nicht für die Verteilung. `IpAddress` IPv6 Wenn Sie den Zugriff auf einige Inhalte anhand der IP-Adresse und IPv6 Supportanfragen für andere Inhalte einschränken möchten, können Sie zwei Distributionen erstellen. Weitere Informationen finden Sie unter [Aktivieren IPv6 (Zuschaueranfragen)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6) im Thema [Referenz für alle Distributionseinstellungen](distribution-web-values-specify.md).

## Beispiel-Richtlinienanweisungen für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet
<a name="private-content-custom-policy-statement-examples"></a>

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 die signierte URL 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 signierte URL angeben, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-statement-values).

**Topics**
+ [Beispiel-Richtlinienanweisung: Zugriff auf eine Datei von einem Bereich von IP-Adressen aus](#private-content-custom-policy-statement-example-one-object)
+ [Beispiel-Richtlinienanweisung: Zugriff auf alle Dateien in einem Verzeichnis über einen Bereich von IP-Adressen](#private-content-custom-policy-statement-example-all-objects)
+ [Beispiel-Richtlinienanweisung: Zugriff auf alle mit einer Schlüsselpaar-ID verknüpften Dateien über eine IP-Adresse](#private-content-custom-policy-statement-example-one-ip)

### Beispiel-Richtlinienanweisung: Zugriff auf eine Datei von einem Bereich von IP-Adressen aus
<a name="private-content-custom-policy-statement-example-one-object"></a>

Das folgende Beispiel für eine Richtlinienanweisung in einer signierten URL legt fest, dass ein Benutzer bis zum 31. Januar 2013, 10:00 Uhr UTC, von IP-Adressen im Bereich `192.0.2.0/24` aus auf die Datei `https://d111111abcdef8.cloudfront.net/game_download.zip` zugreifen kann:

```
{
    "Statement": [
        {
            "Resource": "https://d111111abcdef8.cloudfront.net/game_download.zip",
            "Condition": {
                "IpAddress": {
                    "AWS:SourceIp": "192.0.2.0/24"
                },
                "DateLessThan": {
                    "AWS:EpochTime": 1675159200
                }
            }
        }
    ]
}
```

### Beispiel-Richtlinienanweisung: Zugriff auf alle Dateien in einem Verzeichnis über einen Bereich von IP-Adressen
<a name="private-content-custom-policy-statement-example-all-objects"></a>

Mit dem folgenden Beispiel einer benutzerdefinierten Richtlinie können Sie URLs für jede Datei im `training` Verzeichnis eine Signatur erstellen, wie durch das Sternchen-Platzhalterzeichen (`*`) im Parameter angegeben. `Resource` Benutzer können bis zum 31. Januar 2013, 10:00 Uhr UTC, von IP-Adressen im Bereich `192.0.2.0/24` aus auf die Datei zugreifen:

```
{
    "Statement": [
        {
            "Resource": "https://d111111abcdef8.cloudfront.net/training/*",
            "Condition": {
                "IpAddress": {
                    "AWS:SourceIp": "192.0.2.0/24"
                },
                "DateLessThan": {
                    "AWS:EpochTime": 1675159200
                }
            }
        }
    ]
}
```

Jede signierte URL, mit der Sie diese Richtlinie verwenden, enthält eine URL, die eine bestimmte Datei identifiziert, 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
<a name="private-content-custom-policy-statement-example-one-ip"></a>

Mit dem folgenden Beispiel einer benutzerdefinierten Richtlinie können Sie eine signierte Richtlinie URLs für jede Datei erstellen, die mit einer beliebigen Distribution verknüpft ist. Dies wird durch das Sternchen-Platzhalterzeichen (`*`) im Parameter angezeigt. `Resource` Die signierte URL muss das `https://`-Protokoll verwenden, nicht `http://`. 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 31. Januar 2023, 10:00 Uhr UTC, bis zum 2. Februar 2023, 10:00 Uhr UTC, verfügbar:

```
{
    "Statement": [
       {
            "Resource": "https://*",
            "Condition": {
                "IpAddress": {
                    "AWS:SourceIp": "192.0.2.10/32"
                },
                "DateGreaterThan": {
                    "AWS:EpochTime": 1675159200
                },
                "DateLessThan": {
                    "AWS:EpochTime": 1675332000
                }
            }
        }
    ]
}
```

Jede signierte URL, mit der Sie diese Richtlinie verwenden, hat eine URL, die eine bestimmte Datei in einer bestimmten CloudFront Distribution identifiziert, zum Beispiel:

`https://d111111abcdef8.cloudfront.net/training/orientation.pdf`

Die signierte URL enthält auch eine Schlüsselpaar-ID, die mit einer vertrauenswürdigen Schlüsselgruppe in der Distribution (d111111abcdef8.cloudfront.net) verknüpft werden muss, die Sie in der URL angeben.

## Erstellen einer Signatur für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet
<a name="private-content-custom-policy-creating-signature"></a>

Bei der Signatur für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet, handelt es sich um eine gehashte, signierte und Base64-codierte Version der Richtlinienanweisung. Führen Sie die folgenden Schritte aus, um eine Signatur für eine benutzerdefinierte Richtlinie zu erstellen.

Weitere Informationen und Beispiele für das Hashing, Signieren und Codieren der Richtlinienanweisung finden Sie unter:
+ [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)<a name="private-content-custom-policy-creating-signature-download-procedure"></a>

**Option 1: So erstellen Sie eine Signatur mithilfe einer benutzerdefinierten Richtlinie**

1. Verwenden Sie die SHA-1-Hash-Funktion und den generierten privaten RSA- oder ECDSA-Schlüssel, um die im Verfahren [So erstellen Sie die Richtlinienanweisung für eine signierte URL, die eine benutzerdefinierte Richtlinie verwendet](#private-content-custom-policy-creating-policy-procedure) erstellte JSON-Richtlinienanweisung zu hashen und zu signieren. Verwenden Sie die Version der Richtlinienanweisung, die keine Leerzeichen mehr enthält, jedoch noch nicht Base64-codiert wurde.

   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), Teil 1: 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-creating-signed-url-custom-policy.html)

1. Fügen Sie den resultierenden Wert hinter `&Signature=` zu Ihrer signierten URL hinzu und kehren Sie zu [So erstellen Sie eine signierte URL mit einer benutzerdefinierten Richtlinie](#private-content-creating-signed-url-custom-policy-procedure) zurück, um das Verketten der Teile Ihrer signierten URL abzuschließen.