

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à.

# Impostazione di cookie firmati mediante una policy di accesso predefinita
<a name="private-content-setting-signed-cookie-canned-policy"></a>

Per definire un cookie firmato utilizzando una policy predefinita, completa la procedura descritta di seguito. Per creare la firma, consulta [Creazione di una firma per un cookie firmato che utilizza una policy di accesso predefinita](#private-content-canned-policy-signature-cookies).<a name="private-content-setting-signed-cookie-canned-policy-procedure"></a>

**Definizione di un cookie firmato utilizzando una policy predefinita**

1. Se utilizzi .NET o Java per creare cookie firmati e non hai riformattato la chiave privata per la coppia di chiavi dal formato default .pem a un formato compatibile con .NET o Java, fallo adesso. Per ulteriori informazioni, consulta [Riformattazione della chiave privata (solo .NET e Java)](private-content-trusted-signers.md#private-content-reformatting-private-key).

1. Programma l'applicazione per inviare tre `Set-Cookie` header a utenti approvati (o quattro, se desideri specificare un algoritmo hash). Sono necessarie tre intestazioni `Set-Cookie` in quanto ogni intestazione `Set-Cookie` può contenere una sola coppia nome-valore e un cookie firmato di CloudFront richiede tre coppie nome-valore. Le coppie nome-valore sono: `CloudFront-Expires`, `CloudFront-Signature` e `CloudFront-Key-Pair-Id`. Facoltativamente, puoi includere una quarta coppia nome-valore per specificare l'algoritmo `CloudFront-Hash-Algorithm` hash utilizzato per la firma. I valori devono essere presenti sul visualizzatore prima che un utente effettui la prima richiesta per un file di cui intendi controllare l'accesso. 
**Nota**  
Come regola generale, ti consigliamo di escludere attributi `Expires` e `Max-Age`. In seguito all'esclusione degli attributi, il browser elimina il cookie quando l'utente chiude il browser e ciò riduce la possibilità che qualcuno ottenga accesso non autorizzato al tuo contenuto. Per ulteriori informazioni, consulta [Prevenzione contro l’uso improprio di cookie firmati](private-content-signed-cookies.md#private-content-signed-cookie-misuse).

   **I nomi degli attributi di cookie fanno distinzione tra maiuscole e minuscole**. 

   Le interruzioni di riga sono incluse solo per rendere gli attributi più leggibili.

   ```
   Set-Cookie: 
   CloudFront-Expires={{date and time in Unix time format (in seconds) and Coordinated Universal Time (UTC)}}; 
   Domain={{optional domain name}}; 
   Path=/{{optional directory path}}; 
   Secure; 
   HttpOnly
   
   Set-Cookie: 
   CloudFront-Signature={{hashed and signed version of the policy statement}}; 
   Domain={{optional domain name}}; 
   Path=/{{optional directory path}}; 
   Secure; 
   HttpOnly
   
   Set-Cookie: 
   CloudFront-Key-Pair-Id={{public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature}}; 
   Domain={{optional domain name}}; 
   Path=/{{optional directory path}}; 
   Secure; 
   HttpOnly
   
   Set-Cookie: 
   CloudFront-Hash-Algorithm={{SHA1 or SHA256}}; 
   Domain={{optional domain name}}; 
   Path=/{{optional directory path}}; 
   Secure; 
   HttpOnly
   ```  
**(Facoltativo) `Domain`**  
Il nome di dominio per il file richiesto. Se non specifichi un attributo `Domain`, il valore di default è il nome di dominio nell'URL e viene applicato solo al nome di dominio specificato, non ai sottodomini. Se specifichi un attributo `Domain`, è applicabile anche ai sottodomini. Un punto all'inizio del nome di dominio (ad esempio `Domain=.example.com`) è facoltativo. Inoltre, se specifichi un attributo `Domain`, il nome di dominio nell'URL e il valore dell'attributo `Domain` devono corrispondere.  
Puoi specificare il nome di dominio CloudFront assegnato alla tua distribuzione, ad esempio d111111abcdef8.cloudfront.net, ma non puoi specificare \*.cloudfront.net per il nome di dominio.  
Se desideri utilizzare un nome di dominio alternativo come example.com in, devi aggiungere il nome di dominio alternativo alla tua distribuzione indipendentemente dal fatto che tu specifichi l'attributo. URLs `Domain` Per ulteriori informazioni, consulta [Nomi di dominio alternativi () CNAMEs](DownloadDistValuesGeneral.md#DownloadDistValuesCNAME) nell'argomento [Riferimento a tutte le impostazioni di distribuzione](distribution-web-values-specify.md).  
**(Facoltativo) `Path`**  
Il percorso per il file richiesto. Se non si specifichi un attributo `Path`, il valore di default è il percorso nell'URL.  
**`Secure`**  
Richiede al visualizzatore di crittografare i cookie prima dell'invio di una richiesta. Ti consigliamo di inviare l'`Set-Cookie`intestazione tramite una connessione HTTPS per assicurarti che gli attributi del cookie siano protetti dagli attacchi. man-in-the-middle  
**`HttpOnly`**  
Definisce in che modo il browser (ove supportato) interagisce con il valore del cookie. Con`HttpOnly`, i valori dei cookie sono inaccessibili a. JavaScript Questa precauzione può aiutare a mitigare gli attacchi di cross-site scripting (XSS). Per ulteriori informazioni, consulta [Utilizzo di cookie HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies).  
**`CloudFront-Expires`**  
Specifica la data e l'ora di scadenza in formato Unix (in secondi) e UTC. Ad esempio, le 10:00 UTC del 1° gennaio 2026 vengono convertite in 1767290400 nel formato orario Unix.   
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*, [https://tools.ietf.org/html/rfc3339](https://tools.ietf.org/html/rfc3339).  
**`CloudFront-Signature`**  
Una versione con hash, firma e codifica base64 di una dichiarazione di policy JSON. Per ulteriori informazioni, consulta [Creazione di una firma per un cookie firmato che utilizza una policy di accesso predefinita](#private-content-canned-policy-signature-cookies).  
**`CloudFront-Key-Pair-Id`**  
L'ID di una chiave pubblica, ad esempio,. CloudFront `K2JCJMDEHXQW5F` 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](private-content-trusted-signers.md).  
**`CloudFront-Hash-Algorithm`**  
(Facoltativo) L'algoritmo hash utilizzato per creare la firma. I valori supportati sono `SHA1` e `SHA256`. Se non includi questo cookie, l'CloudFront impostazione predefinita è. `SHA1`

L'esempio seguente mostra le `Set-Cookie` intestazioni per un cookie firmato quando utilizzi il nome di dominio associato alla distribuzione in URLs for your files:

```
Set-Cookie: CloudFront-Expires=1426500000; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly
Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly
Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly
Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=d111111abcdef8.cloudfront.net; Path=/images/*; Secure; HttpOnly
```

L'esempio seguente mostra le `Set-Cookie` intestazioni per un cookie firmato quando utilizzi il nome di dominio alternativo example.org nella cartella per i tuoi file: URLs 

```
Set-Cookie: CloudFront-Expires=1426500000; Domain=example.org; Path=/images/*; Secure; HttpOnly
Set-Cookie: CloudFront-Signature=yXrSIgyQoeE4FBI4eMKF6ho~CA8_; Domain=example.org; Path=/images/*; Secure; HttpOnly
Set-Cookie: CloudFront-Key-Pair-Id=K2JCJMDEHXQW5F; Domain=example.org; Path=/images/*; Secure; HttpOnly
Set-Cookie: CloudFront-Hash-Algorithm=SHA256; Domain=example.org; Path=/images/*; Secure; HttpOnly
```

Se desideri utilizzare un nome di dominio alternativo come example.com in URLs, devi aggiungere il nome di dominio alternativo alla tua distribuzione indipendentemente dal fatto che tu specifichi l'attributo. `Domain` Per ulteriori informazioni, consulta [Nomi di dominio alternativi () CNAMEs](DownloadDistValuesGeneral.md#DownloadDistValuesCNAME) nell'argomento [Riferimento a tutte le impostazioni di distribuzione](distribution-web-values-specify.md).

## Creazione di una firma per un cookie firmato che utilizza una policy di accesso predefinita
<a name="private-content-canned-policy-signature-cookies"></a>

Per creare la firma per un cookie firmato che utilizza una policy di accesso predefinita, completa le seguenti procedure.

**Topics**
+ [Creazione di una dichiarazione di policy per un cookie firmato che utilizza una policy di accesso predefinita](#private-content-canned-policy-statement-cookies)
+ [Firma di una dichiarazione di policy per creare una firma per un cookie firmato che utilizza una policy di accesso predefinita](#private-content-canned-policy-cookies-signing-policy-statement)

### Creazione di una dichiarazione di policy per un cookie firmato che utilizza una policy di accesso predefinita
<a name="private-content-canned-policy-statement-cookies"></a>

Quando definisci un cookie firmato che utilizza una policy predefinita, l'attributo `CloudFront-Signature` è una versione con hash e firma di una dichiarazione di policy. Per i cookie firmati che utilizzano una policy predefinita, non includi la dichiarazione di policy nell'intestazione `Set-Cookie`, come avviene per i cookie firmati che utilizzano una policy personalizzata. Per creare una dichiarazione di policy, esegui la procedura descritta di seguito.<a name="private-content-canned-policy-statement-cookies-procedure"></a>

**Creazione di una dichiarazione di policy per un cookie 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 cookie firmati che utilizzano una policy predefinita](#private-content-canned-policy-statement-cookies-values).

   ```
   {
       "Statement": [
           {
               "Resource": "base URL or stream name",
               "Condition": {
                   "DateLessThan": {
                       "AWS:EpochTime": ending date and time in Unix time format and UTC
                   }
               }
           }
       ]
   }
   ```

1. 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 cookie firmati che utilizzano una policy predefinita
<a name="private-content-canned-policy-statement-cookies-values"></a>

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

**Risorsa**  
L'URL di base che include le eventuali stringhe di query, ad esempio:  
`https://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes`  
Puoi specificare un solo valore per `Resource`.  
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 Amazon S3 per il file.

**DateLessThan**  
La data e l'ora di scadenza per l'URL in formato Unix (in secondi) e UTC. Non racchiudere il valore tra virgolette.  
Ad esempio, 16 marzo 2015 10:00 UTC viene convertito in 1426500000 nel formato Unix.  
Questo valore deve corrispondere al valore dell'attributo `CloudFront-Expires` nell'intestazione `Set-Cookie`. Non racchiudere il valore tra virgolette.  
Per ulteriori informazioni, consulta [When CloudFront controlla la data e l'ora di scadenza in un cookie firmato](private-content-signed-cookies.md#private-content-check-expiration-cookie).

#### Esempio di dichiarazione di policy per una policy predefinita
<a name="private-content-canned-policy-cookies-sample-policy-statement"></a>

Quando utilizzi l'esempio di dichiarazione di policy seguente in un cookie firmato, un utente può accedere al file `https://d111111abcdef8.cloudfront.net/horizon.jpg` fino al 16 marzo 2015 10:00 UTC:

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

### Firma di una dichiarazione di policy per creare una firma per un cookie firmato che utilizza una policy di accesso predefinita
<a name="private-content-canned-policy-cookies-signing-policy-statement"></a>

Per creare il valore per l'attributo `CloudFront-Signature` in un'intestazione `Set-Cookie`, sottoponi a hashing e firmi la dichiarazione di policy che hai creato in [Creazione di una dichiarazione di policy per un cookie firmato che utilizza una policy predefinita](#private-content-canned-policy-statement-cookies-procedure). 

Per ulteriori informazioni ed esempi su come sottoporre a hashing, firmare e codificare la dichiarazione di policy, consulta i seguenti argomenti:
+ [Comandi Linux e OpenSSL per la crittografia e la codifica base64](private-content-linux-openssl.md)
+ [Codice di esempio per la creazione di una firma per un URL firmato](PrivateCFSignatureCodeAndExamples.md)

**Nota**  
Gli esempi collegati utilizzano SHA-1 per impostazione predefinita. Per utilizzare invece SHA-256, sostituiscilo `sha1` con `sha256` nei comandi OpenSSL e includi il cookie con il `CloudFront-Hash-Algorithm` valore di. `SHA256`<a name="private-content-canned-policy-cookie-creating-signature-procedure"></a>

**Creazione di una firma per un cookie firmato che utilizza una policy predefinita**

1. Utilizzate la funzione hash SHA-1 o SHA-256 e RSA per eseguire l'hash e firmare la dichiarazione politica creata durante la procedura. [Creazione di una dichiarazione di policy per un cookie firmato che utilizza una policy predefinita](#private-content-canned-policy-statement-cookies-procedure) Utilizza la versione della dichiarazione di policy che non include più spazi vuoti.

   Se si utilizza SHA-256, è necessario includere il cookie con un valore di. `CloudFront-Hash-Algorithm` `SHA256`

   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](PrivateCFSignatureCodeAndExamples.md).

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

1. Codifica la stringa utilizzando la codifica base64 MIME. Per ulteriori informazioni, vedere [Sezione 6.8, Base64 Content-Transfer-Encoding in RFC 2045,](https://tools.ietf.org/html/rfc2045#section-6.8) *MIME (Multipurpose Internet Mail Extensions), parte prima: Formato dei corpi dei messaggi Internet*.

1. Sostituisci i caratteri non validi nella stringa di query dell'URL con caratteri validi. La tabella seguente elenca i caratteri validi e non validi.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html)

1. Includi il valore risultante nell'intestazione `Set-Cookie` per la coppia nome-valore `CloudFront-Signature`. Quindi ritorna a [Definizione di un cookie firmato utilizzando una policy predefinita](#private-content-setting-signed-cookie-canned-policy-procedure) e aggiungi l'intestazione `Set-Cookie` per `CloudFront-Key-Pair-Id`.