Creazione di un URL firmato utilizzando una policy di accesso predefinita
Per creare un URL firmato utilizzando una policy predefinita, completa la procedura seguente.
Creazione di un URL firmato utilizzando una policy predefinita
-
Se utilizzi .NET o Java per creare URL firmati e non hai riformattato la chiave privata per la coppia di chiavi dal formato .pem di default in un formato compatibile con .NET o Java, fallo adesso. Per ulteriori informazioni, consulta Riformattazione della chiave privata (solo .NET e Java).
-
Concatena i seguenti valori. Puoi utilizzare il formato in questo URL firmato di esempio.
https://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Expires=1767290400&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5FRimuovi tutti gli spazi vuoti (compresi i caratteri di tabulazione e di nuova riga). È possibile che tu debba includere caratteri di escape nella stringa del codice dell'applicazione. Tutti i valori hanno un tipo
String.- 1.
URL di base per il file -
L'URL di base è l'URL di CloudFront che utilizzeresti per accedere al file se non utilizzassi URL firmati, inclusi gli eventuali parametri di stringa di query. Nell’esempio precedente, l’URL di base è
https://d111111abcdef8.cloudfront.net/image.jpg. Per ulteriori informazioni sul formato di URL per le distribuzioni, consulta Personalizzazione del formato URL per i file in CloudFront.-
Il seguente URL CloudFront riguarda un file immagine in una distribuzione (viene utilizzato il nome di dominio CloudFront). Nota che
image.jpgè una directoryimages. 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 URL CloudFront include una stringa di query:
https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large -
Gli URL CloudFront seguenti sono per 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.jpghttps://www.example.com/images/image.jpg?color=red -
Il seguente URL di CloudFront è per 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.
? -
Il carattere
?indica che i parametri di query seguono l’URL di base. Includi il carattere?anche senza specificare alcun parametro di query.Nota
Puoi specificare i seguenti parametri di query in qualsiasi ordine.
- 3.
I parametri della stringa di query, se presenti& -
(Facoltativo) Puoi immettere parametri della stringa di query personalizzati. A tale scopo, aggiungi una e commerciale (
&) tra ciascuno di essi, ad esempiocolor=red&size=medium. Puoi specificare parametri della stringa di query in qualsiasi ordine all’interno dell’URL.Importante
I parametri della stringa di query non possono essere denominati
Expires,SignatureoKey-Pair-Id. - 4.
Expires=data e ora in formato Unix (in secondi) e 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, la data 1 gennaio 2026 10:00 UTC viene convertita in
1767290400in un formato Unix, come illustrato nell’esempio all’inizio di questo argomento.Per usare il tempo epoch, specifica un numero intero a 64 bit per una data non posteriore a
9223372036854775807(venerdì 11 aprile 2262 alle 23:47:16.854 UTC).Per informazioni sul formato UTC, consulta RFC 3339, Date and Time on the Internet: Timestamps
. - 5.
&Signature=versione con hash e firma della dichiarazione di policy -
Una versione con hash, firma e codifica base64 della dichiarazione di policy JSON. Per ulteriori informazioni, consulta Creazione di una firma per un URL firmato che utilizza una policy di accesso predefinita.
- 6.
&Key-Pair-Id=ID della chiave pubblica per la chiave pubblica CloudFront di cui stai utilizzando la chiave privata corrispondente per generare la firma -
L'ID di una chiave pubblica CloudFront, ad esempi,
K2JCJMDEHXQW5F. L'ID della chiave pubblica indica a CloudFront quale chiave pubblica utilizzare per convalidare l'URL firmato. CloudFront confronta le informazioni nella firma con le informazioni nella dichiarazione di policy per verificare che l'URL non è stato alterato.Questa chiave pubblica deve appartenere a un gruppo di chiavi che sia un firmatario attendibile nella distribuzione. Per ulteriori informazioni, consulta Specifica dei firmatari che possono creare URL firmati e cookie firmati.
- 1.
Creazione di una firma per un URL firmato che utilizza una policy di accesso predefinita
Per creare la firma per un URL firmato che utilizza una policy di accesso predefinita, completa le seguenti procedure.
Argomenti
Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy di accesso 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 gli URL firmati che utilizzano una policy predefinita, non includi la dichiarazione di policy nell'URL come avviene per gli URL firmati che utilizzano una policy 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
-
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
ResourceeDateLessThan, 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 } } } ] } -
Rimuovi tutti gli spazi vuoti (inclusi i caratteri di nuova riga e le tabulazioni) dalla dichiarazione di policy. È 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 eventuali stringhe di query ma esclude i parametri di CloudFront
Expires,SignatureeKey-Pair-Id, ad esempio:https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yesTieni presente quanto segue:
-
Protocollo: il valore deve iniziare con
http://ohttps://. -
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 2026 10:00 UTC viene convertita in 1767290400 nel formato Unix.
Questo valore deve corrispondere al valore del parametro di stringa di query
Expiresnell'URL firmato. Non racchiudere il valore tra virgolette.Per ulteriori informazioni, consulta Quando CloudFront verifica 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 2026 10:00 UTC:
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/horizon.jpg?size=large&license=yes", "Condition": { "DateLessThan": { "AWS:EpochTime": 1767290400 } } } ] }
Creazione di una firma per un URL firmato che utilizza una policy di accesso 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 Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy di accesso 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
-
Utilizza la funzione hash SHA-1 e la chiave privata RSA o ECDSA generata per eseguire l’hashing e firmare la dichiarazione di policy creata nella procedura Per creare la dichiarazione di policy per un URL firmato che utilizza una policy predefinita. Utilizza la versione della dichiarazione di policy 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.
-
Rimuovi gli spazi vuoti (inclusi i caratteri di nuova riga e le tabulazioni) dalla stringa con hash e firmata.
-
Codifica la stringa utilizzando la codifica base64 MIME. Per ulteriori informazioni, consulta Section 6.8, Base64 Content-Transfer-Encoding
in RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies. -
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)
-
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.