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à.
Per creare un URL firmato utilizzando una politica personalizzata, completare la procedura seguente.
Per creare un URL firmato utilizzando una policy personalizzata
-
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).
-
Concatena i seguenti valori. È possibile utilizzare il formato in questo esempio di URL firmato.
https://d111111abcdef8.cloudfront.net/image.jpg
?color=red&size=medium&
Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIyMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo
&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 CloudFrontI seguenti esempi mostrano i valori che specifichi per le distribuzioni.
-
L' CloudFront URL seguente riguarda un file di immagine in una distribuzione (utilizzando il nome di CloudFront dominio). 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 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 stringa di 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 ciascuna 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
Policy
Signature
, oKey-Pair-Id
.Se aggiungi i tuoi parametri, aggiungi un
&
dopo ognuno di essi, incluso l'ultimo. - 4.
Policy=
base64 encoded version of policy statement
-
La tua dichiarazione politica in formato JSON, con spazi vuoti rimossi, quindi codificata in base64. Per ulteriori informazioni, consulta Crea una dichiarazione politica per un URL firmato che utilizza un criterio personalizzato.
La dichiarazione di policy controlla l'accesso che un URL firmato concede a un utente. Include l'URL del file, una data e un'ora di scadenza, una data e un'ora facoltative in cui l'URL diventa valido e un indirizzo IP facoltativo o un intervallo di indirizzi IP a cui è consentito accedere al file.
- 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 personalizzata.
- 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 esempio
K2JCJMDEHXQW5F
. L'ID della chiave pubblica indica CloudFront quale chiave pubblica utilizzare per convalidare l'URL firmato. CloudFrontconfronta 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 .
- 1.
Crea una dichiarazione politica per un URL firmato che utilizza un criterio personalizzato
Completa i passaggi seguenti per creare un’istruzione di policy per un URL firmato che utilizza una policy personalizzata.
Per esempi di istruzioni di policy che controllano l'accesso a file in vari modi, consultare Esempi di dichiarazioni di policy per un URL firmato che utilizza una policy personalizzata.
Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata
-
Crea la dichiarazione di policy utilizzando il formato JSON seguente. Sostituisci i simboli minore di (
<
) e maggiore di (>
) e le relative descrizioni con i tuoi valori. Per ulteriori informazioni, consulta Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata.{ "Statement": [ { "Resource": "<Optional but recommended: URL of the file>", "Condition": { "DateLessThan": { "AWS:EpochTime": <Required: ending date and time in Unix time format and UTC> }, "DateGreaterThan": { "AWS:EpochTime": <Optional: beginning date and time in Unix time format and UTC> }, "IpAddress": { "AWS:SourceIp": "<Optional: IP address>" } } } ] }
Tieni presente quanto segue:
-
Puoi includere una sola istruzione nella policy.
-
Utilizza la codifica caratteri UTF-8.
-
Includi tutta le punteggiatura e nomi di parametro esattamente come specificato. Le abbreviazioni per i nomi di parametro non sono accettate.
-
L'ordine dei parametri nella sezione
Condition
non è rilevante. -
Per informazioni sui valori per
Resource
,DateLessThan
,DateGreaterThan
eIpAddress
, consulta Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata.
-
-
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.
-
Codifica la dichiarazione di policy 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. -
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 al tuo URL firmato dopo
Policy=
. -
Crea una firma per l'URL firmato sottoponendo a hashing, firmando e codificando in base64 la dichiarazione di policy. Per ulteriori informazioni, consulta Crea una firma per un URL firmato che utilizza una politica personalizzata.
Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata
Quando crei una dichiarazione di policy per una policy personalizzata, specifichi i valori seguenti.
- Risorsa
-
L'URL, incluse tutte le stringhe di query, ma esclusi i parametri e. CloudFront
Policy
Signature
Key-Pair-Id
Per esempio:https://d111111abcdef8.cloudfront.net/images/horizon.jpg\?size=large&license=yes
Puoi specificare un solo valore URL per
Resource
.Importante
È possibile omettere il parametro
Resource
in una policy, ma in questo caso chiunque con l’URL firmato può accedere a tutti i file in qualsiasi distribuzione associata alla coppia di chiavi utilizzata per creare l’URL firmato.Tieni presente quanto segue:
-
Protocollo: il valore deve iniziare con
http://
https://
o*://
. -
Parametri della stringa di query: se l'URL dispone di parametri della stringa di query, utilizza una barra rovesciata (
\
) per eseguire l’escape del carattere punto interrogativo (?
) che inizia la stringa di query. Per esempio:https://d111111abcdef8.cloudfront.net/images/horizon.jpg\?size=large&license=yes
-
Caratteri jolly: puoi utilizzare caratteri jolly nell'URL della policy. Sono supportati i seguenti caratteri jolly:
-
asterisco (
*
), che corrisponde a zero o più caratteri -
punto interrogativo (
?
), che corrisponde esattamente a un carattere
Quando l'URL nella policy CloudFront corrisponde all'URL nella richiesta HTTP, l'URL nella policy viene suddiviso in quattro sezioni: protocol, domain, path e query string, come segue:
[protocol]://[domain]/[path]\?[query string]
Quando si utilizza un carattere jolly nell'URL nella policy, la corrispondenza con i caratteri jolly si applica solo entro i limiti della sezione che contiene il carattere jolly. Ad esempio, considera questo URL in una policy:
https://www.example.com/hello*world
In questo esempio, l'asterisco wildcard (
*
) si applica solo all'interno della sezione path, quindi corrisponde a URLshttps://www.example.com/helloworld
andhttps://www.example.com/hello-world
, ma non all'URL.https://www.example.net/hello?world
Le seguenti eccezioni si applicano ai limiti delle sezioni per la corrispondenza con i caratteri jolly:
-
Un asterisco finale nella sezione del percorso implica un asterisco nella sezione della stringa di query. Ad esempio,
http://example.com/hello*
è uguale ahttp://example.com/hello*\?*
. -
Un asterisco finale nella sezione del dominio implica un asterisco nelle sezioni del percorso e della stringa di query. Ad esempio,
http://example.com*
è uguale ahttp://example.com*/*\?*
. -
Un URL nella policy può omettere la sezione del protocollo e iniziare con un asterisco nella sezione del dominio. In tal caso, la sezione del protocollo è impostata implicitamente su un asterisco. Ad esempio, l'URL
*example.com
in una policy è equivalente a*://*example.com/
. -
Un asterisco da solo (
"Resource": "*"
) corrisponde a qualsiasi URL.
Ad esempio, il valore:
https://d111111abcdef8.cloudfront.net/*game_download.zip*
in una policy corrisponde a tutti i seguenti valori: URLs-
https://d111111abcdef8.cloudfront.net/game_download.zip
-
https://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes
-
https://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp
-
-
Nomi di dominio alternativi: se specifichi un nome di dominio alternativo (CNAME) nell'URL nella policy, la richiesta HTTP deve utilizzare il nome di dominio alternativo nella pagina Web o nell’applicazione. Non specificare l'URL Amazon S3 per il file in una policy.
-
- DateLessThan
-
La data e l'ora di scadenza per l'URL in formato Unix (in secondi) e UTC. Nella policy, non racchiudere il valore tra virgolette. Per informazioni sul formato UTC, consultare Date and Time on the Internet: Timestamps
. Ad esempio, la data 31 gennaio 2023 10:00 UTC viene convertita in 1675159200 nel formato Unix.
Questo è l'unico parametro obbligatorio nella
Condition
sezione. CloudFront richiede questo valore per impedire agli utenti di avere accesso permanente ai tuoi contenuti privati.Per ulteriori informazioni, consulta When CloudFront controlla la data e l'ora di scadenza in un URL firmato
- DateGreaterThan (Facoltativo)
-
Una data e un'ora di inizio (facoltative) per l'URL in formato Unix (in secondi) e UTC. Agli utenti non è consentito accedere al file entro la data e l'ora specificate. Non racchiudere il valore tra virgolette.
- IpAddress (Facoltativo)
-
L'indirizzo IP del client che esegue la richiesta HTTP. Tieni presente quanto segue:
-
Per consentire a qualsiasi indirizzo IP di accedere al file, ometti il parametro
IpAddress
. -
Puoi specificare un indirizzo IP o un intervallo di indirizzi IP. Non puoi utilizzare la policy per consentire l'accesso se l'indirizzo IP del client si trova in uno dei due intervalli distinti.
-
Per consentire l'accesso da un singolo indirizzo IP, specifica:
"
IPv4 IP address
/32"
-
È necessario specificare gli intervalli di indirizzi IP nel formato IPv4 CIDR standard (ad esempio,
192.0.2.0/24
). Per ulteriori informazioni, consultare Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. Importante
Gli indirizzi IP in IPv6 formato, ad esempio 2001:0 db 8:85 a3: :8a2e: 0370:7334, non sono supportati.
Se utilizzi una politica personalizzata che include, non abilitarla per la distribuzione.
IpAddress
IPv6 Se desideri limitare l'accesso ad alcuni contenuti in base all'indirizzo IP e IPv6 alle richieste di supporto per altri contenuti, puoi creare due distribuzioni. Per ulteriori informazioni, consulta Abilita IPv6 nell'argomento Riferimento alle impostazioni di distribuzione.
-
Esempi di dichiarazioni di policy per un URL firmato che utilizza una policy personalizzata
Gli esempi di dichiarazioni di policy seguenti mostrano il modo in cui controllare l'accesso a un determinato file, a tutti i file in una directory o a tutti i file associati a un ID di coppia di chiavi. Gli esempi mostrano inoltre come controllare l'accesso da un singolo indirizzo IP o da un intervallo di indirizzi IP e come impedire agli utenti di utilizzare l'URL firmato dopo una data e un'ora specificate.
Se copiate e incollate uno di questi esempi, rimuovete gli spazi vuoti (inclusi tabulazioni e caratteri di nuova riga), sostituite i valori con i vostri valori e includete un carattere di nuova riga dopo la parentesi quadra di chiusura (). }
Per ulteriori informazioni, consulta Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata.
Esempio di dichiarazione politica: accedere a un file da un intervallo di indirizzi IP
L'esempio di policy personalizzata seguente in un URL firmato specifica che un utente può accedere al file https://d111111abcdef8.cloudfront.net/game_download.zip
dagli indirizzi IP nell'intervallo 192.0.2.0/24
fino al 31 gennaio 2023 10:00 UTC:
{
"Statement": [
{
"Resource": "https://d111111abcdef8.cloudfront.net/game_download.zip",
"Condition": {
"IpAddress": {
"AWS:SourceIp": "192.0.2.0/24"
},
"DateLessThan": {
"AWS:EpochTime": 1675159200
}
}
}
]
}
Esempio di dichiarazione politica: accedere a tutti i file di una directory da un intervallo di indirizzi IP
Il seguente esempio di politica personalizzata consente di creare un carattere firmato URLs per qualsiasi file nella training
directory, come indicato dal carattere jolly asterisco (*
) nel Resource
parametro. Gli utenti possono accedere al file da un indirizzo IP incluso nell'intervallo 192.0.2.0/24
fino al 31 gennaio 2023 10:00 UTC:
{
"Statement": [
{
"Resource": "https://d111111abcdef8.cloudfront.net/training/*",
"Condition": {
"IpAddress": {
"AWS:SourceIp": "192.0.2.0/24"
},
"DateLessThan": {
"AWS:EpochTime": 1675159200
}
}
}
]
}
Ogni URL firmato con cui utilizzi questa policy, dispone di un URL che identifica un file specifico, ad esempio:
https://d111111abcdef8.cloudfront.net/training/orientation.pdf
Esempio di dichiarazione politica: accedere a tutti i file associati a un ID di coppia di chiavi da un indirizzo IP
Il seguente esempio di politica personalizzata consente di creare file firmati URLs per qualsiasi file associato a qualsiasi distribuzione, come indicato dal carattere jolly asterisco (*
) nel Resource
parametro. L'URL firmato deve utilizzare il protocollo https://
, non http://
. L'utente deve utilizzare l'indirizzo I 192.0.2.10/32
. (il valore 192.0.2.10/32
nella notazione CIDR fa riferimento a un singolo indirizzo IP, 192.0.2.10
). I file sono disponibili solo dal 31 gennaio 2023 10:00 UTC fino al 2 febbraio 2023 10:00 UTC:
{
"Statement": [
{
"Resource": "https://*",
"Condition": {
"IpAddress": {
"AWS:SourceIp": "192.0.2.10/32"
},
"DateGreaterThan": {
"AWS:EpochTime": 1675159200
},
"DateLessThan": {
"AWS:EpochTime": 1675332000
}
}
}
]
}
Ogni URL firmato con cui utilizzate questa politica ha un URL che identifica un file specifico in una CloudFront distribuzione specifica, ad esempio:
https://d111111abcdef8.cloudfront.net/training/orientation.pdf
L'URL firmato include inoltre un ID di coppia di chiavi, che deve essere associato a un gruppo di chiavi attendibili nella distribuzione (d111111abcdef8.cloudfront.net) specificata nell'URL.
Crea una firma per un URL firmato che utilizza una politica personalizzata
La firma per un URL firmato che utilizza una policy personalizzata è una versione con firma, hash e codifica base64 della dichiarazione della policy. Per creare una firma per una policy personalizzata, procedi come indicato di seguito.
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 personalizzata
-
Utilizza la funzione hash SHA-1 e RSA per sottoporre a hashing e firmare la dichiarazione di policy JSON che hai creato nella procedura Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata. Utilizzate la versione dell'informativa che non include più spazi vuoti ma che non è ancora stata codificata in base 64.
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 tabulazioni e caratteri di nuova riga) dalla stringa con hash e firmata.
-
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. -
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 Per creare un URL firmato utilizzando una policy personalizzata per completare il concatenamento delle parti dell'URL firmato.