Crea un URL firmato utilizzando una policy predefinita - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un URL firmato utilizzando una policy predefinita

Per creare un URL firmato utilizzando una policy predefinita, completa la procedura seguente.

Creazione di un URL firmato utilizzando una policy predefinita
  1. Se stai usando .NET o Java per creare un file firmato URLs e se non hai riformattato la chiave privata per la tua coppia di chiavi dal formato.pem predefinito a un formato compatibile con.NET o con Java, fallo ora. Per ulteriori informazioni, consulta Riformatta la chiave privata (solo .NET e Java).

  2. Concatena i seguenti valori. È possibile utilizzare il formato in questo esempio di URL firmato.

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

    Rimuovi tutti gli spazi vuoti (inclusi tabulazioni e caratteri di nuova riga). È possibile che tu debba includere caratteri di escape nella stringa del codice dell'applicazione. Tutti i valori hanno un tipo di. String

    1. Base URL for the file

    L'URL di base è l' CloudFront URL che utilizzeresti per accedere al file se non utilizzassi signed URLs, inclusi i parametri della stringa di query, se presenti. Nell'esempio precedente, l'URL di base èhttps://d111111abcdef8.cloudfront.net/image.jpg. Per ulteriori informazioni sul formato delle URLs distribuzioni, vedere. Personalizza il formato URL per i file in CloudFront

    • L' CloudFront URL seguente riguarda un file di immagine in una distribuzione (utilizzando il nome di CloudFront dominio). Nota che image.jpg è una directory images. Il percorso al file nell'URL deve corrispondere al percorso al file nel server HTTP o nel bucket Amazon S3.

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

    • Il seguente CloudFront URL include una stringa di query:

      https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large

    • Di seguito CloudFront URLs sono riportati i file di immagine in una distribuzione. Entrambi utilizzano un nome di dominio alternativo. Il secondo include una stringa di query:

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

      https://www.example.com/images/image.jpg?color=red

    • L' CloudFront URL seguente riguarda un file di immagine in una distribuzione che utilizza un nome di dominio alternativo e il protocollo HTTPS:

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

    2. ?

    ?indica che i parametri della query seguono l'URL di base. Includi ? anche se non specifichi alcun parametro di query.

    Nota

    È possibile specificare i seguenti parametri di interrogazione in qualsiasi ordine.

    3. Your query string parameters, if any&

    (Facoltativo) È possibile immettere parametri personalizzati per la stringa di query. A tale scopo, aggiungi una e commerciale (&) tra ognuna di esse, ad esempio. color=red&size=medium È possibile specificare i parametri della stringa di query in qualsiasi ordine all'interno dell'URL.

    Importante

    I parametri della stringa di query non possono essere denominati ExpiresSignature, oKey-Pair-Id.

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

    La data e l'ora in cui desideri che l'URL blocchi l'accesso al file.

    Specifica la data e l'ora di scadenza in formato Unix (in secondi) e UTC. Ad esempio, le 10:00 UTC del 1° gennaio 2013 vengono convertite 1357034400 nel formato orario Unix, come illustrato nell'esempio all'inizio di questo argomento. Per utilizzare l'ora epoch, utilizzate un numero intero a 32 bit per una data non successiva a 2147483647 (19 gennaio 2038 alle 03:14:07 UTC). Per informazioni sull'UTC, consulta RFC 3339, Date and Time on the Internet: Timestamps.

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

    Una versione con hash, firma e codifica base64 della dichiarazione di policy JSON. Per ulteriori informazioni, consulta Crea una firma per un URL firmato che utilizza una politica predefinita.

    6. &Key-Pair-Id=public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature

    L'ID di una chiave CloudFront pubblica, ad esempioK2JCJMDEHXQW5F. L'ID della chiave pubblica indica CloudFront quale chiave pubblica utilizzare per convalidare l'URL firmato. CloudFront confronta le informazioni contenute nella firma con quelle contenute nell'informativa per verificare che l'URL non sia stato manomesso.

    Questa chiave pubblica deve appartenere a un gruppo di chiavi che sia un firmatario attendibile nella distribuzione. Per ulteriori informazioni, consulta Specificate i firmatari che possono creare cookie firmati e firmati URLs .

Crea una firma per un URL firmato che utilizza una politica predefinita

Per creare la firma per un URL firmato che utilizza una politica predefinita, completare le seguenti procedure.

Create una dichiarazione politica per un URL firmato che utilizza una politica predefinita

Quando crei un URL firmato utilizzando una policy predefinita, il parametro Signature è una versione con hash e firma di una dichiarazione di policy. Per i criteri firmati URLs che utilizzano una politica predefinita, non includi la dichiarazione di politica nell'URL, mentre per quelli firmati URLs che utilizzano una politica personalizzata. Per creare una dichiarazione di policy, esegui la procedura descritta di seguito.

Per creare la dichiarazione di policy per un URL firmato che utilizza una policy predefinita
  1. Crea la dichiarazione di policy utilizzando il formato JSON seguente e la codifica caratteri UTF-8. Includi tutta le punteggiatura e altri valori letterali esattamente come specificato. Per informazioni sui parametri Resource e DateLessThan, consulta Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy predefinita.

    { "Statement": [ { "Resource": "base URL or stream name", "Condition": { "DateLessThan": { "AWS:EpochTime": ending date and time in Unix time format and UTC } } } ] }
  2. Rimuovi tutti gli spazi vuoti (inclusi tabulazioni e caratteri di nuova riga) dall'informativa. È possibile che tu debba includere caratteri di escape nella stringa del codice dell'applicazione.

Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy predefinita

Quando crei una dichiarazione di policy per una policy predefinita, specifichi i valori seguenti.

Risorsa
Nota

Puoi specificare un solo valore per Resource.

L'URL di base che include le stringhe di query, se presenti, ma escludendo CloudFront Expires, e Key-Pair-Id i parametriSignature, ad esempio:

https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes

Tieni presente quanto segue:

  • Protocollo: il valore deve iniziare con http:// o https://.

  • Parametri di stringa di query: se non hai parametri di stringa di query, ometti il punto di domanda.

  • Nomi di dominio alternativi: se specifichi un nome di dominio alternativo (CNAME) nell'URL, devi specificarlo quando fai riferimento al file nella pagina Web o nell'applicazione. Non specificare l'URL di Amazon S3 per l'oggetto.

DateLessThan

La data e l'ora di scadenza per l'URL in formato Unix (in secondi) e UTC. Ad esempio, la data 1 gennaio 2013 10:00 UTC viene convertita in 1357034400 nel formato Unix.

Questo valore deve corrispondere al valore del parametro di stringa di query Expires nell'URL firmato. Non racchiudere il valore tra virgolette.

Per ulteriori informazioni, consulta When CloudFront controlla la data e l'ora di scadenza in un URL firmato.

Esempio di dichiarazione di policy per un URL firmato che utilizza una policy predefinita

Quando utilizzi l'esempio di dichiarazione di policy seguente in un URL firmato, un utente può accedere al file https://d111111abcdef8.cloudfront.net/horizon.jpg fino al 1° gennaio 2013 10:00 UTC:

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

Crea una firma per un URL firmato che utilizza una politica predefinita

Per creare il valore per il parametro Signature in un URL firmato, devi sottoporre a hashing e firmare la dichiarazione di policy creata in Create una dichiarazione politica per un URL firmato che utilizza una politica predefinita.

Per ulteriori informazioni ed esempi su come sottoporre a hashing, firmare e codificare la dichiarazione di policy, consulta:

Opzione 1: per creare una firma utilizzando una policy predefinita
  1. Utilizza la funzione hash SHA-1 e RSA per sottoporre a hashing e firmare la dichiarazione di policy che hai creato nella procedura Per creare la dichiarazione di policy per un URL firmato che utilizza una policy predefinita. Utilizza la versione dell'informativa che non include più spazi vuoti.

    Per la chiave privata richiesta dalla funzione hash, utilizza una chiave privata la cui chiave pubblica si trova in un gruppo di chiavi attendibili attivo per la distribuzione.

    Nota

    Il metodo utilizzato per sottoporre a hashing e firmare la dichiarazione di policy dipende dalla piattaforma e dal linguaggio di programmazione. Per il codice di esempio, consulta Codice di esempio per la creazione di una firma per un URL firmato.

  2. Rimuovi gli spazi vuoti (inclusi tabulazioni e caratteri di nuova riga) dalla stringa con hash e firmata.

  3. Codifica la stringa utilizzando la codifica base64 MIME. Per ulteriori informazioni, vedere Sezione 6.8, Base64 Content-Transfer-Encoding in RFC 2045, MIME (Multipurpose Internet Mail Extensions), parte prima: Formato dei corpi dei messaggi Internet.

  4. Sostituisci i caratteri non validi nella stringa di query dell'URL con caratteri validi. La tabella seguente elenca i caratteri validi e non validi.

    Sostituisci questi caratteri non validi Con questi caratteri validi

    +

    - (trattino)

    =

    _ (carattere di sottolineatura)

    /

    ~ (tilde)

  5. Aggiungi il valore risultante all'URL firmato dopo &Signature= e ritorna a Creazione di un URL firmato utilizzando una policy predefinita per completare il concatenamento delle parti dell'URL firmato.