

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

# Creazione di un URL firmato utilizzando una policy personalizzata
<a name="private-content-creating-signed-url-custom-policy"></a>

Per creare un URL firmato utilizzando una policy personalizzata, completa la procedura seguente.<a name="private-content-creating-signed-url-custom-policy-procedure"></a>

**Per creare un URL firmato utilizzando una policy personalizzata**

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 [Riformattazione della chiave privata (solo .NET e Java)](private-content-trusted-signers.md#private-content-reformatting-private-key).

1. Concatena i seguenti valori. Puoi utilizzare il formato in questo URL firmato di esempio.

   

   ```
   https://d111111abcdef8.cloudfront.net/image.jpg?color=red&size=medium&Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIyMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6&Key-Pair-Id=K2JCJMDEHXQW5F&Hash-Algorithm=SHA256
   ```

   Rimuovi 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. *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](LinkFormat.md).  
I 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 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. `?`**  
Il carattere `?` indica che i parametri della stringa di query seguono l’URL di base. Includi il carattere `?` anche senza specificare alcun parametro di query.  
Puoi specificare i seguenti parametri di query in qualsiasi ordine.  
**3. *Your query string parameters, if any*`&`**  
(Facoltativo) Puoi immettere parametri della stringa di query personalizzati. A tale scopo, aggiungi una e commerciale (&) tra ciascuno di essi, ad esempio `color=red&size=medium`. Puoi specificare parametri della stringa di query in qualsiasi ordine all’interno dell’URL.  
I parametri della stringa di query non possono essere denominati `Policy``Signature`,`Key-Pair-Id`, o`Hash-Algorithm`.
Se aggiungi parametri personalizzati, aggiungi un carattere `&` dopo ciascuno di essi, compreso l’ultimo.   
**4. `Policy=`*base64 encoded version of policy statement***  
La dichiarazione di policy in formato JSON, con spazi vuoti rimossi e codifica base64. Per ulteriori informazioni, consulta [Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata](#private-content-custom-policy-statement).  
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 [Creazione di una firma per un URL firmato che utilizza una policy personalizzata](#private-content-custom-policy-creating-signature).  
**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](private-content-trusted-signers.md).  
**7. `&Hash-Algorithm=`*SHA1 or SHA256***  
(Facoltativo) L'algoritmo hash utilizzato per creare la firma. I valori supportati sono `SHA1` e `SHA256`. Se non si specifica questo parametro, il valore CloudFront predefinito è. `SHA1`

## Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata
<a name="private-content-custom-policy-statement"></a>

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](#private-content-custom-policy-statement-examples).<a name="private-content-custom-policy-creating-policy-procedure"></a>

**Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata**

1. 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](#private-content-custom-policy-statement-values).

   ```
   {
       "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>"
                   }
               }
           }
       ]
   }
   ```

   Tenere 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` e `IpAddress`, consulta [Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata](#private-content-custom-policy-statement-values).

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.

1. Codifica la dichiarazione di policy 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-creating-signed-url-custom-policy.html)

1. Aggiungi il valore risultante al tuo URL firmato dopo `Policy=`.

1. Crea una firma per l'URL firmato sottoponendo a hashing, firmando e codificando in base64 la dichiarazione di policy. Per ulteriori informazioni, consulta [Creazione di una firma per un URL firmato che utilizza una policy personalizzata](#private-content-custom-policy-creating-signature).

### Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata
<a name="private-content-custom-policy-statement-values"></a>

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` `Hash-Algorithm` Esempio:  
`https://d111111abcdef8.cloudfront.net/images/horizon.jpg\?size=large&license=yes`  
Puoi specificare un solo valore URL per `Resource`.  
È 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.
Tenere presente quanto segue:  
+ **Protocollo**: il valore deve iniziare con `http://` `https://` o `*://`.
+ **Parametri della stringa** di query: se l'URL contiene parametri della stringa di query, non utilizzate una barra rovesciata (`\`) per evitare il carattere del punto interrogativo (`?`) che inizia la stringa di query. 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 diviso 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 URLs `https://www.example.com/helloworld` and`https://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 a `http://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 a `http://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](https://tools.ietf.org/html/rfc3339).  
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](private-content-signed-urls.md#private-content-check-expiration)

**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 prima o in corrispondenza della data e ora specificate. Non racchiudere il valore tra virgolette. 

**IpAddress (Opzionale)**  
L'indirizzo IP del client che esegue la richiesta HTTP. Tenere 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](https://tools.ietf.org/html/rfc4632).
**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 (richieste del visualizzatore)](DownloadDistValuesGeneral.md#DownloadDistValuesEnableIPv6) nell'argomento [Riferimento a tutte le impostazioni di distribuzione](distribution-web-values-specify.md).

## Esempi di dichiarazioni di policy per un URL firmato che utilizza una policy personalizzata
<a name="private-content-custom-policy-statement-examples"></a>

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 copi e incolli uno di questi esempi, devi rimuovere gli eventuali spazi vuoti (inclusi i caratteri di nuova riga e le tabulazioni), sostituire i valori con i tuoi valori e includere un carattere di nuova riga dopo la parentesi graffa di chiusura (`}`).

Per ulteriori informazioni, consulta [Valori da specificare in una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata](#private-content-custom-policy-statement-values).

**Topics**
+ [Esempio di dichiarazione di policy: accesso a un file da un intervallo di indirizzi IP](#private-content-custom-policy-statement-example-one-object)
+ [Esempio di dichiarazione di policy: accesso a tutti i file in una directory da un intervallo di indirizzi IP](#private-content-custom-policy-statement-example-all-objects)
+ [Esempio di dichiarazione di policy: accesso a tutti i file associati a un ID di coppia di chiavi da un indirizzo IP](#private-content-custom-policy-statement-example-one-ip)

### Esempio di dichiarazione di policy: accesso a un file da un intervallo di indirizzi IP
<a name="private-content-custom-policy-statement-example-one-object"></a>

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 di policy: accesso a tutti i file in una directory da un intervallo di indirizzi IP
<a name="private-content-custom-policy-statement-example-all-objects"></a>

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 parametro. `Resource` 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 di policy: accesso a tutti i file associati a un ID di coppia di chiavi da un indirizzo IP
<a name="private-content-custom-policy-statement-example-one-ip"></a>

La politica personalizzata di esempio seguente consente di creare un carattere firmato URLs per qualsiasi file associato a qualsiasi distribuzione, come indicato dal carattere jolly asterisco (`*`) nel parametro. `Resource` 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.

## Creazione di una firma per un URL firmato che utilizza una policy personalizzata
<a name="private-content-custom-policy-creating-signature"></a>

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:
+ [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 parametro di `Hash-Algorithm=SHA256` query nell'URL firmato.<a name="private-content-custom-policy-creating-signature-download-procedure"></a>

**Opzione 1: per creare una firma utilizzando una policy personalizzata**

1. Utilizzate la funzione hash SHA-1 o SHA-256 e la chiave privata RSA o ECDSA generata per eseguire l'hash e firmare la dichiarazione di policy JSON creata nella procedura. [Creazione di una dichiarazione di policy per un URL firmato che utilizza una policy personalizzata](#private-content-custom-policy-creating-policy-procedure) Utilizza la versione della dichiarazione di policy che non include più spazi vuoti, ma che non è ancora stata codificata in base64.

   Se utilizzi SHA-256, devi includerlo nell'URL firmato. `&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-creating-signed-url-custom-policy.html)

1. Aggiungi il valore risultante all'URL firmato dopo `&Signature=` e ritorna a [Per creare un URL firmato utilizzando una policy personalizzata](#private-content-creating-signed-url-custom-policy-procedure) per completare il concatenamento delle parti dell'URL firmato.