Erstellen einer signierten URL mit 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 einer signierten URL mit 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 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).

  2. Verketten Sie die folgenden Werte in der angegebenen Reihenfolge und entfernen Sie die Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) zwischen den Teilen. Möglicherweise müssen Sie in der Zeichenfolge im Anwendungscode Escape-Zeichen einfügen. Alle Werte verfügen über eine Zeichenfolge als Typ. Jedes Teil ist nach der Nummer ( 
							1
						) den beiden folgenden Beispielen zugeordnet.

    
										1
									Basis-URL für die Datei

    Die Basis-URL ist die CloudFront URL, die Sie für den Zugriff auf die Datei verwenden würden, wenn Sie keine signierten URLs verwenden würden, einschließlich Ihrer eigenen Abfragezeichenfolgeparameter, falls vorhanden. Weitere Informationen zum Format der URLs für Verteilungen finden Sie unter Anpassen des URL-Formats für Dateien in CloudFront.

    • Die folgende CloudFront URL gilt für eine Image-Datei in einer Verteilung (unter Verwendung des CloudFront Domänennamens). 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 CloudFront URLs gelten für Image-Dateien in einer -Verteilung. 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 gilt für eine Image-Datei in einer Verteilung, die einen alternativen Domänennamen und das HTTPS-Protokoll verwendet:

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

    
										2
									?

    ? zeigt an, dass Abfragezeichenfolgeparameter hinter der Basis-URL angegeben sind. Fügen Sie ? auch dann ein, wenn Sie keine eigenen Abfragezeichenfolgeparameter haben.

    
										3
									Ihre Abfragezeichenfolgeparameter, sofern vorhanden&

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

    color=red&size=medium

    dann fügen Sie die Parameter nach dem ? (siehe 
											2
										) und vor dem Parameter Expires 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 & an, auch nach dem letzten.

    
										4
									Expires=Datum und Uhrzeit im Unix-Zeitformat (in Sekunden) und in koordinierter Weltzeit (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 2013, 10:00 Uhr UTC in 1357034400 im Unix-Zeitformat umgewandelt. Um die Epochen-Uhrzeit zu verwenden, geben Sie eine 32-Bit-Ganzzahl für ein Datum an, das nicht nach 2147483647 (19. Januar 2038 um 03:14:07 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=gehashte und signierte Version der Richtlinienanweisung

    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.

     									6 								&Key-Pair-Id=ID des öffentlichen Schlüssels für den CloudFront öffentlichen Schlüssel, dessen entsprechenden privaten Schlüssel Sie zum Generieren der Signatur verwenden

    Die ID für einen CloudFront öffentlichen Schlüssel, z. B. K2JCJMDEHXQW5F. Die ID des öffentlichen Schlüssels gibt an CloudFront , welcher öffentliche Schlüssel zur Validierung der signierten URL verwendet werden soll. CloudFront führt einen Vergleich der Informationen in der Signatur mit den Informationen in der Richtlinienanweisung durch, um zu überprüfen, ob 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 Festlegen der Aussteller, die signierte URLs und signierte Cookies erstellen können.

Beispiel für signierte URL:


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

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

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

Erstellen einer Richtlinienanweisung 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 Richtlinienanweisung nicht in die URL ein, wie Sie es bei signierten URLs tun, 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 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

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, sofern vorhanden, jedoch ohne die Key-Pair-Id Parameter CloudFront Expires, Signatureund , 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 Ablaufzeit 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 einer 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 einer Richtlinienanweisung 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 alle Leerzeichen (einschließlich Tabulatoren und Zeilenumbruchzeichen) aus der gehashten und 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) Part One: Format of Internet Message Bodies.

  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.