Erstellen Sie eine signierte URL mithilfe einer vordefinierten Richtlinie - Amazon CloudFront

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.

Erstellen Sie eine signierte URL mithilfe einer vordefinierten Richtlinie

Führen Sie die folgenden Schritte aus, um eine signierte URL mit einer vordefinierten Richtlinie zu erstellen.

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 Formatieren Sie den privaten Schlüssel neu (nur .NET und Java).

  2. 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=1357034400&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 haben den Typ. String

    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-URLhttps://d111111abcdef8.cloudfront.net/image.jpg. Weitere Hinweise zum Format von URLs für Distributionen finden Sie unterPassen Sie das URL-Format für Dateien an in CloudFront.

    • 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. ?

    Das ? gibt an, dass Abfrageparameter der Basis-URL folgen. Schließen Sie das ein, ? auch wenn Sie keine Abfrageparameter angeben.

    Anmerkung

    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 Zeichen ein Und-Zeichen (&) hinzu, z. B. color=red&size=medium Sie können Abfragezeichenfolgenparameter in beliebiger Reihenfolge innerhalb der URL angeben.

    Wichtig

    Die Parameter Ihrer Abfragezeichenfolge können nicht mit ExpiresSignature, oder benannt werdenKey-Pair-Id.

    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. Beispiel: Der 1. Januar 2013 um 10:00 Uhr UTC wird 1357034400 in das Unix-Zeitformat konvertiert, wie im Beispiel zu Beginn dieses Themas gezeigt. Um die Epochenzeit zu verwenden, verwenden Sie eine 32-Bit-Ganzzahl für ein Datum, das nicht später als 2147483647 (19. Januar 2038 um 03:14:07 UTC) liegt. Informationen zu UTC finden Sie unter RFC 3339, Datum und Uhrzeit im Internet: Zeitstempel.

    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 Sie eine Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet.

    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 BeispielK2JCJMDEHXQW5F. 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 Verteilung ist. Weitere Informationen finden Sie unter Geben Sie Unterzeichner an, die signierte URLs und signierte Cookies erstellen können.

Erstellen Sie eine Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet

Gehen Sie wie folgt vor, um die Signatur für eine signierte URL zu erstellen, die eine vordefinierte Richtlinie verwendet.

Erstellen Sie eine Richtlinienerklärung für eine signierte URL, die eine vordefinierte Richtlinie verwendet

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 vordefinierte Richtlinie verwenden, fügen Sie die Richtlinienerklärung 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.

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.

    { "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
  2. 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 signierte URL angeben, die eine vordefinierte Richtlinie verwendet

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

Ressource
Anmerkung

Sie können nur einen Wert für Resource angeben.

Die Basis-URL, einschließlich Ihrer Abfragezeichenfolgen, falls vorhanden, jedoch ohne die Key-Pair-Id Parameter CloudFront ExpiresSignature, 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 2013, 10:00 Uhr UTC in 1357034400 im Unix-Zeitformat 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.

Beispiel-Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet

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

Erstellen Sie eine Signatur für eine signierte URL, die eine vordefinierte Richtlinie verwendet

Um den Wert für den Parameter Signature in einer signierten URL zu erstellen, müssen Sie die in Erstellen Sie eine Richtlinienerklärung für eine signierte URL, die eine vordefinierte Richtlinie verwendet erstellte Richtlinienanweisung hashen und signieren.

Weitere Informationen und Beispiele für das Hashing, Signieren und Codieren der Richtlinienanweisung finden Sie unter:

Option 1: So erstellen Sie eine Signatur mithilfe einer vordefinierten Richtlinie
  1. Verwenden Sie die SHA-1-Hash-Funktion und RSA, um die im Verfahren So erstellen Sie die Richtlinienanweisung für eine signierte URL, die eine vordefinierte Richtlinie verwendet 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 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 Code-Beispiele für das Erstellen einer Signatur für eine signierte URL.

  2. Entfernen Sie Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) aus der Hash-Zeichenfolge und der signierten Zeichenfolge.

  3. 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 in RFC 2045, MIME (Multipurpose Internet Mail Extensions), Teil 1: Format von Internet-Nachrichtentexten.

  4. 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)

  5. 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 zurück, um das Verketten der Teile Ihrer signierten URL abzuschließen.