Erstellen Sie eine signierte, URL indem Sie eine vordefinierte Richtlinie verwenden - 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 indem Sie eine vordefinierte Richtlinie verwenden

Gehen Sie wie folgt vor, um eine URL mit einer vordefinierten Richtlinie signierte Richtlinie zu erstellen.

Um eine URL mit einer vorgefertigten Richtlinie signierte Richtlinie zu erstellen
  1. Wenn Sie verwenden. NEToder Java, um signiert zu erstellenURLs, und wenn Sie den privaten Schlüssel für Ihr key pair nicht vom Standard-.pem-Format in ein mit kompatibles Format umformatiert haben. NEToder mit Java, mach das jetzt. Weitere Informationen finden Sie unter Formatieren Sie den privaten Schlüssel neu (. NETund nur Java).

  2. Verketten Sie die folgenden Werte in der angegebenen Reihenfolge und replizieren Sie dabei das in diesem Beispiel gezeigte signierte Format: URL

    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 Parameter verwenden würdenURLs, einschließlich Ihrer eigenen Abfragezeichenfolge-Parameter, falls vorhanden. Im vorherigen Beispiel URL ist die Basishttps://d111111abcdef8.cloudfront.net/image.jpg. Weitere Hinweise zum Format von URLs Verteilungen finden Sie unterPassen Sie das URL Format für Dateien an CloudFront.

    • Das 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 URL muss mit dem Pfad zur Datei auf Ihrem HTTP Server oder in Ihrem Amazon S3 S3-Bucket übereinstimmen.

      https://d111111abcdef8.cloudfront.net/images/image.jpg

    • Folgendes CloudFront URL beinhaltet 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

    • Das 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 die Parameter der Abfragezeichenfolge der Basis folgenURL. Schließen Sie das ein, ? auch wenn Sie keine eigenen Parameter für die Abfragezeichenfolge haben.

    3. Your query string parameters, if any&

    Dieser Wert ist optional. Wenn Sie Ihre eigenen Abfragezeichenfolgeparameter hinzufügen möchten, z. B.

    color=red&size=medium

    fügen Sie dann die Parameter nach ? und vor dem Expires Parameter hinzu. In seltenen Fällen müssen Sie Ihren Abfragezeichenfolgeparameter hinter Key-Pair-Id einfügen.

    Wichtig

    Ihre Parameter können nicht mit Expires, Signature oder Key-Pair-Id benannt werden.

    Wenn Sie eigene Parameter hinzufügen, fügen Sie & nach jedem Parameter ein Zeichen hinzu, auch nach dem letzten.

    4. Expires=date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)

    Das Datum und die Uhrzeit, URL zu der der Zugriff auf die Datei beendet werden soll.

    Geben Sie das Ablaufdatum und die Uhrzeit im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (UTC) an. Beispiel: Der 1. Januar 2013, 10:00 Uhr, wird 1357034400 in das Unix-Zeitformat UTC umgewandelt, 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 UTC 03:14:07 Uhr) liegt. Weitere Informationen finden Sie unter RFC3339UTC, Datum und Uhrzeit im Internet: Zeitstempel.

    5. &Signature=hashed and signed version of the policy statement

    Eine gehashte, signierte und Base64-kodierte Version der Richtlinienerklärung. JSON Weitere Informationen finden Sie unter Erstellt eine Signatur für eine signierteURL, 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 Beispiel. K2JCJMDEHXQW5F Die ID des öffentlichen Schlüssels gibt an CloudFront , welcher öffentliche Schlüssel zur Validierung des signierten Schlüssels verwendet werden sollURL. CloudFront vergleicht die Informationen in der Signatur mit den Informationen in der Grundsatzerklärung, um sicherzustellen, dass die URL nicht manipuliert wurde.

    Dieser öffentliche Schlüssel muss zu einer Schlüsselgruppe gehören, die ein vertrauenswürdiger Aussteller in der Verteilung ist. Weitere Informationen finden Sie unter Geben Sie Unterzeichner an, die signierte URLs und signierte Cookies erstellen können.

Erstellt eine Signatur für eine signierteURL, die eine vordefinierte Richtlinie verwendet

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

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

Wenn Sie eine signierte Richtlinie URL mithilfe einer vordefinierten Richtlinie erstellen, ist der Signature Parameter eine verschlüsselte und signierte Version einer Richtlinienerklärung. Bei signierten RichtlinienURLs, die eine vordefinierte Richtlinie verwenden, nehmen Sie die Richtlinienerklärung nicht in die aufURL, wie dies bei signierten Richtlinien der Fall istURLs, die eine benutzerdefinierte Richtlinie verwenden. Zum Erstellen der Richtlinienanweisung führen Sie die folgenden Schritte aus.

Um die Richtlinienerklärung für eine signierte Richtlinie zu erstellenURL, die eine vordefinierte Richtlinie verwendet
  1. Erstellen Sie die Richtlinienanweisung im folgenden JSON Format und mit einer Kodierung von UTF -8 Zeichen. Fügen Sie alle Satzzeichen und andere Literalwerte genau wie angegeben ein. Informationen zu den Parametern Resource und DateLessThan finden Sie unter Werte, die Sie in der Richtlinienerklärung für eine signierte Richtlinie angebenURL, 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 Richtlinienerklärung für eine signierte Richtlinie angebenURL, 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 CloudFront Expires Key-Pair-Id ParameterSignature, 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 Domainnamen — Wenn Sie in der einen alternativen Domainnamen (CNAME) angebenURL, müssen Sie den alternativen Domainnamen angeben, wenn Sie auf die Datei in Ihrer Webseite oder Anwendung verweisen. Geben Sie nicht Amazon S3 URL für das Objekt an.

DateLessThan

Das Ablaufdatum und die Uhrzeit für das URL Unix-Zeitformat (in Sekunden) und die koordinierte Weltzeit (UTC). Beispielsweise wird der 1. Januar 2013, 10:00 Uhr, in 1357034400 im Unix-Zeitformat UTC umgewandelt.

Dieser Wert muss mit dem Wert des Expires Abfragezeichenfolgenparameters im Vorzeichen übereinstimmen. URL 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 für eine Richtlinienanweisung für eine signierteURL, die eine vordefinierte Richtlinie verwendet

Wenn Sie das folgende Beispiel für eine Richtlinienanweisung in einer signierten Datei verwendenURL, kann ein Benutzer https://d111111abcdef8.cloudfront.net/horizon.jpg bis zum 1. Januar 2013, 10:00 Uhr, auf die Datei zugreifenUTC:

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

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

Um den Wert für den Signature Parameter in einer signierten Datei zu erstellenURL, müssen Sie die Richtlinienanweisung, die Sie in erstellt haben, hashen und signierenErstellen Sie eine Richtlinienerklärung für eine signierte RichtlinieURL, die eine vordefinierte Richtlinie verwendet.

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 Hash-Funktion SHA -1, RSA um die Richtlinienanweisung, die Sie in der Prozedur erstellt haben, mit einem Hashwert zu versehen und zu signierenUm die Richtlinienerklärung für eine signierte Richtlinie zu erstellenURL, die eine vordefinierte Richtlinie verwendet. Verwenden Sie die Version der Richtlinienanweisung, die keine Leerzeichen mehr enthält.

    Verwenden Sie für den privaten Schlüssel, der für die Hash-Funktion erforderlich ist, einen privaten Schlüssel, dessen öffentlicher Schlüssel sich in einer aktiven vertrauenswürdigen Schlüsselgruppe für die Verteilung befindet.

    Anmerkung

    Die Methode, die Sie zum Hashen und Signieren der Richtlinienanweisung verwenden, ist abhängig von Ihrer Programmiersprache und Plattform. Einen Beispiel-Code finden Sie unter Codebeispiele für die Erstellung 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. Base64-kodieren Sie die Zeichenfolge mithilfe der Base64-Kodierung. MIME Weitere Informationen finden Sie in Abschnitt 6.8, Base64 Content-Transfer-Encoding in RFC 2045, MIME (Mehrzweck-Internet-Mail-Erweiterungen) Erster Teil: Format von Internet-Nachrichtentexten.

  4. Ersetzen Sie ungültige Zeichen in einer URL Abfragezeichenfolge durch gültige Zeichen. In der folgenden Tabelle sind ungültige und gültige Zeichen aufgelistet.

    Ersetzen Sie diese ungültigen Zeichen Durch diese gültigen Zeichen

    +

    - (Bindestrich)

    =

    _ (Unterstrich)

    /

    ~ (Tilde)

  5. Hängen Sie den resultierenden Wert an Ihre nachgeschriebene Zeichenfolge URL an und kehren Sie zu zurück&Signature=, Um eine URL mit einer vorgefertigten Richtlinie signierte Richtlinie zu erstellen um die Verkettung der Teile Ihrer Signatur abzuschließen. URL