

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

# Hosting di un sito Web statico tramite Amazon S3
<a name="WebsiteHosting"></a>

Puoi utilizzare Amazon S3 per ospitare un sito web statico. In un sito Web *statico*, le singole pagine Web includono contenuti statici. Potrebbero contenere anche script lato client.

**Nota**  
È consigliabile utilizzare [Hosting AWS Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) per ospitare contenuti di siti web statici archiviati su S3. Amplify Hosting è un servizio completamente gestito che semplifica la distribuzione dei siti Web su una rete di distribuzione dei contenuti (CDN) disponibile a livello globale alimentata da CloudFront Amazon, che consente l'hosting sicuro di siti Web statici.   
Con AWS Amplify Hosting, puoi selezionare la posizione dei tuoi oggetti all'interno del tuo bucket generico, distribuire i tuoi contenuti su una CDN gestita e generare un URL HTTPS pubblico per rendere il tuo sito web accessibile ovunque. *Per ulteriori informazioni su Amplify Hosting, [consulta Implementazione di un sito Web AWS Amplify statico su Hosting da un bucket generico S3 e Distribuzione di un](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify.html) [sito Web statico da S3 utilizzando la console Amplify nella](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) Console User Guide.AWS Amplify *

Per ulteriori informazioni sull'hosting di un sito Web statico su Amazon S3, incluse istruzioni e procedure dettagliate, step-by-step consulta i seguenti argomenti.

**Importante**  
Se il bucket che utilizzi per ospitare il tuo sito Web statico è stato crittografato utilizzando la crittografia lato server con chiavi AWS Key Management Service (AWS KMS) (SSE-KMS), devi creare una CloudFront distribuzione Amazon per servire il tuo sito Web perché SSE-KMS non supporta utenti anonimi. Quando crei la tua CloudFront distribuzione, devi utilizzare Origin Access Control (OAC) anziché Origin Access Identity (OAI) per proteggere l'origine. L’identità OAI non supporta SSE-KMS, quindi è necessario utilizzare il controllo OAC.  
Per ulteriori informazioni su OAC, consulta [Limitare l'accesso a un'origine Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) nella * CloudFront Amazon Developer Guide*. Per un tutorial che mostra come ospitare un sito Web statico utilizzando Amazon CloudFront, consulta[Tutorial: hosting di video in streaming su richiesta con Amazon S3, Amazon e CloudFront Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md).

**Topics**
+ [Endpoint del sito Web](WebsiteEndpoints.md)
+ [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md)
+ [Configurazione di un documento indice](IndexDocumentSupport.md)
+ [Configurazione di un documento di errore personalizzato](CustomErrorDocSupport.md)
+ [Impostazione delle autorizzazioni per l'accesso al sito Web](WebsiteAccessPermissionsReqd.md)
+ [(Facoltativo) Registrazione del traffico Web](LoggingWebsiteTraffic.md)
+ [(Facoltativo) Configurazione del reindirizzamento di una pagina Web](how-to-page-redirect.md)
+ [Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS)](cors.md)
+ [Tutorial per siti web statici](static-website-tutorials.md)

# Endpoint del sito Web
<a name="WebsiteEndpoints"></a>

Quando configuri il bucket come sito Web statico, il sito Web è disponibile nell'endpoint del sito Web specifico della Regione AWS del bucket. Gli endpoint dei siti Web sono diversi dagli endpoint dove si inviano le richieste REST API. Per ulteriori informazioni sulle differenze tra gli endpoint, consulta [Differenze chiave tra un endpoint del sito Web e un endpoint REST API](#WebsiteRestEndpointDiff).

A seconda della regione, gli endpoint del sito web Amazon S3 seguono uno di questi due formati.
+ **Regione s3-website dash** ‐ `http://bucket-name.s3-website-Region.amazonaws.com`
+ **s3-website dot (.) Regione** ‐ `http://bucket-name.s3-website.Region.amazonaws.com`

Questi URLs restituiscono il documento indice predefinito che configuri per il sito Web. Per un elenco completo degli endpoint dei siti Web Amazon S3, consulta la sezione [Endpoint di siti Web Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints).

**Nota**  
[Per aumentare la sicurezza dei siti Web statici di Amazon S3, i domini endpoint dei siti Web Amazon S3 (ad esempio*, s3 website-us-east -* -1.amazonaws.com *o* s3-website.ap-south-1.amazonaws.com) sono registrati nella Public Suffix List (PSL).](https://publicsuffix.org/) Per una maggiore sicurezza, consigliamo di utilizzare i cookie con un prefisso `__Host-` se hai bisogno di impostare cookie sensibili nel nome di dominio per i siti Web statici Amazon S3. Questa pratica ti aiuterà a difendere il tuo dominio dai tentativi CSRF (cross-site request forgery). Per ulteriori informazioni, consulta la pagina [Impostazione cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) nella pagina Mozilla Developer Network.

Se desideri che il sito Web sia pubblico, è necessario rendere tutti i contenuti pubblicamente leggibili affinché i clienti possano accedervi nell'endpoint del sito Web. Per ulteriori informazioni, consulta [Impostazione delle autorizzazioni per l'accesso al sito Web](WebsiteAccessPermissionsReqd.md). 

**Importante**  
Gli endpoint del sito Web di Amazon S3 non supportano HTTPS o access point. Per utilizzare HTTPS, puoi procedere in uno dei seguenti modi:   
(Consigliato) Utilizza [Hosting AWS Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) per ospitare contenuti di siti web statici archiviati su S3. Amplify Hosting è un servizio completamente gestito che semplifica la distribuzione dei siti Web su una rete di distribuzione dei contenuti (CDN) disponibile a livello globale alimentata da CloudFront Amazon, che consente l'hosting sicuro di siti Web statici.   
Con AWS Amplify Hosting, puoi selezionare la posizione dei tuoi oggetti all'interno del tuo bucket generico, distribuire i tuoi contenuti su una CDN gestita e generare un URL HTTPS pubblico per rendere il tuo sito web accessibile ovunque. *Per ulteriori informazioni su Amplify Hosting, [consulta Implementazione di un sito Web AWS Amplify statico su Hosting da un bucket generico S3 e Distribuzione di un](https://docs.aws.amazon.com//AmazonS3/latest/userguide/website-hosting-amplify) [sito Web statico da S3 utilizzando la console Amplify nella](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) Console User Guide.AWS Amplify *
Usa Amazon CloudFront per servire un sito Web statico ospitato su Amazon S3. Per ulteriori informazioni, consulta [Come posso utilizzare CloudFront per servire le richieste HTTPS per il mio bucket Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-https-requests-s3)? Per utilizzare HTTPS con un dominio personalizzato, consulta [Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html).
I bucket con pagamento a carico del richiedente non consentono l'accesso tramite un endpoint di sito Web. Qualsiasi richiesta a tale bucket riceve una risposta 403 Accesso negato . Per ulteriori informazioni, consulta [Utilizzo dei bucket per uso generico con pagamento a carico del richiedente per archiviazione e trasferimenti di dati](RequesterPaysBuckets.md).

**Topics**
+ [Esempi di endpoint del sito Web](#website-endpoint-examples)
+ [Aggiunta di un CNAME DNS](#website-endpoint-dns-cname)
+ [Utilizzo di un dominio personalizzato con Route 53](#custom-domain-s3-endpoint)
+ [Differenze chiave tra un endpoint del sito Web e un endpoint REST API](#WebsiteRestEndpointDiff)

## Esempi di endpoint del sito Web
<a name="website-endpoint-examples"></a>

Negli esempi seguenti viene illustrato come è possibile accedere a un bucket Amazon S3 configurato come sito web statico.

**Example – Richiesta di un oggetto a livello root**  
Per richiedere un oggetto specifico archiviato a livello root nel bucket, utilizza la seguente struttura di URL:  

```
http://bucket-name.s3-website.Region.amazonaws.com/object-name
```
Ad esempio, questo URL richiede l'oggetto `photo.jpg` archiviato a livello root nel bucket:  

```
http://example-bucket.s3-website.us-west-2.amazonaws.com/photo.jpg
```

**Example – Richiesta di un oggetto in un prefisso**  
Per richiedere un oggetto archiviato in una cartella nel bucket, utilizza questa struttura di URL:  

```
http://bucket-name.s3-website.Region.amazonaws.com/folder-name/object-name
```
Il seguente URL richiede l'oggetto `docs/doc1.html` nel bucket.   

```
http://example-bucket.s3-website.us-west-2.amazonaws.com/docs/doc1.html
```

## Aggiunta di un CNAME DNS
<a name="website-endpoint-dns-cname"></a>

Se si dispone di un dominio registrato, è possibile aggiungere una voce DNS CNAME che punti all'endpoint del sito web Amazon S3. Ad esempio, se hai registrato il dominio `www.example-bucket.com`, puoi creare un bucket `www.example-bucket.com` e aggiungere un record DNS CNAME che punti a `www.example-bucket.com.s3-website.Region.amazonaws.com`. Tutte le richieste a `http://www.example-bucket.com` vengono instradate verso `www.example-bucket.com.s3-website.Region.amazonaws.com`. 

Per ulteriori informazioni, consulta [Personalizzazione di Amazon URLs S3 con record CNAME](VirtualHosting.md#VirtualHostingCustomURLs). 

## Utilizzo di un dominio personalizzato con Route 53
<a name="custom-domain-s3-endpoint"></a>

Invece di accedere al sito web utilizzando un endpoint del sito web Amazon S3, è possibile utilizzare il proprio dominio registrato con Amazon Route 53 per servire i contenuti, ad esempio, `example.com`. Puoi utilizzare Amazon S3 con Route 53 per ospitare un sito web nel dominio principale. Ad esempio, se si dispone di un dominio root `example.com` e si ospita il sito web su Amazon S3, i visitatori del sito web possono accedere al sito dal loro browser, inserendo `http://www.example.com` o `http://example.com`. 

Per un esempio di procedura guidata, consulta [Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53](website-hosting-custom-domain-walkthrough.md). 

## Differenze chiave tra un endpoint del sito Web e un endpoint REST API
<a name="WebsiteRestEndpointDiff"></a>

L'endpoint del sito web Amazon S3 è ottimizzato per l'accesso da un browser web. Nella tabella seguente vengono riepilogate le principali differenze tra un endpoint REST API e un endpoint del sito Web. 


| Differenze principali | Endpoint REST API | Endpoint del sito Web | 
| --- | --- | --- | 
| Controllo degli accessi |  Supporta contenuti pubblici e privati.  | Supporta solo contenuti pubblicamente leggibili.  | 
| Gestione dei messaggi di errore |  Restituisce una risposta di errore in formato XML.  | Restituisce un documento HTML. | 
| Supporto del reindirizzamento |  Non applicabile.  | Supporta reindirizzamenti sia a livello di oggetto sia di bucket. | 
| Richieste supportate  |  Supporta tutte le operazioni relative ai bucket e agli oggetti.  | Supporta solo richieste GET e HEAD sugli oggetti. | 
| Risposte alle richieste GET e HEAD alla root di un bucket | Restituisce un elenco delle chiavi degli oggetti nel bucket. | Restituisce un documento di indice specificato nella configurazione del sito Web. | 
| Supporto di Secure Sockets Layer (SSL) | Supporta connessioni SSL. | Non supporta connessioni SSL. | 

Per un elenco completo degli endpoint Amazon S3, consultare la sezione relativa a [endpoint e quote di Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) nella *Riferimenti generali di AWS*.

# Abilitazione dell'hosting di siti Web
<a name="EnableWebsiteHosting"></a>

Quando configuri un bucket come sito Web statico, devi abilitare l'hosting statico del sito Web, configurare un documento di indice e impostare le autorizzazioni.

Puoi abilitare l'hosting di siti Web statici utilizzando la console Amazon S3, l'API REST, il AWS SDKs AWS CLI, o. CloudFormation

Per configurare il sito Web con un dominio personalizzato, consulta [Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53](website-hosting-custom-domain-walkthrough.md).

## Utilizzo della console S3
<a name="HowDoIWebsiteConfiguration"></a>

**Per abilitare l'hosting di un sito Web statico**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket per cui desideri abilitare l’hosting di siti web statici.

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Seleziona **Utilizza questo bucket per l'hosting di un sito Web**. 

1. In **Hosting di siti Web statici**, seleziona **Abilita**.

1. In **Documento di indice** immettere il nome file del documento di indice, in genere `index.html`. 

   Il nome del documento indice fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome del file del documento indice HTML che si prevede di caricare nel bucket S3. Quando si configura un bucket per l'hosting di siti Web, è necessario specificare un documento di indice. Amazon S3 restituisce questo documento di indice quando si eseguono richieste per il dominio root o per una delle sottocartelle. Per ulteriori informazioni, consulta [Configurazione di un documento indice](IndexDocumentSupport.md).

1. Per fornire il tuo documento di errore personalizzato per gli errori di classe 4XX, specifica il nome file del documento in **Documento di errore**. 

   Il nome del documento di errore fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome del file del documento di errore HTML che si prevede di caricare nel bucket S3. Se non si specifica un documento di errore personalizzato e si verifica un errore, Amazon S3 restituisce un documento di errore HTML predefinito. Per ulteriori informazioni, consulta [Configurazione di un documento di errore personalizzato](CustomErrorDocSupport.md).

1. (Facoltativo) Per specificare regole di reindirizzamento avanzate, utilizza JSON per descrivere le regole in **Regole reindirizzamento**.

   Ad esempio, è possibile instradare le richieste in base a prefissi o nomi della chiave dell'oggetto specifici nella richiesta. Per ulteriori informazioni, consulta [Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati](how-to-page-redirect.md#advanced-conditional-redirects).

1. Seleziona **Salva modifiche**.

   Amazon S3 abilita l'hosting statico del sito web per il tuo bucket. Nella parte inferiore della pagina, in **Hosting di siti Web statici**, viene visualizzato l'endpoint del sito web per il bucket.

1. In **Hosting sito Web statico**, prendi nota dell'**endpoint**.

   **Endpoint** è l'endpoint del sito web Amazon S3 per il bucket. Dopo aver configurato il bucket come sito Web statico, è possibile utilizzare questo endpoint per testare il sito Web.

## Utilizzo di REST API
<a name="ConfigWebSiteREST"></a>

Per maggiori informazioni sull'invio diretto di richieste REST per abilitare l'hosting statico di siti Web, consulta le seguenti sezioni nella Guida di riferimento all'API di Amazon Simple Storage Service:
+ [PUT Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html)
+ [GET Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETwebsite.html)
+ [DELETE Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html)

## Usando il AWS SDKs
<a name="ManagingBucketWebsiteConfig"></a>

Per ospitare un sito web statico su Amazon S3, si configura un bucket Amazon S3 per l'hosting di siti Web e, successivamente, si caricano i contenuti del sito Web nel bucket. Puoi anche utilizzare il AWS SDKs per creare, aggiornare ed eliminare la configurazione del sito Web a livello di codice. SDKs Forniscono classi wrapper attorno all'API REST di Amazon S3. Se l'applicazione lo richiede, è possibile inviare richieste REST API direttamente dall'applicazione. 

------
#### [ .NET ]

L'esempio seguente mostra come utilizzare per gestire la configurazione del AWS SDK per .NET sito Web per un bucket. Per aggiungere una configurazione del sito Web a un bucket, si fornisce un nome bucket e una configurazione del sito Web. La configurazione del sito Web deve includere un documento di indice e può contenere un documento di errore opzionale. Tali documenti devono essere archiviati nel bucket. Per ulteriori informazioni, consulta [PUT Bucket website](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html). Per ulteriori informazioni sulla funzionalità website di Amazon S3 consulta [Hosting di un sito Web statico tramite Amazon S3](WebsiteHosting.md). 

L'esempio di codice C\$1 seguente aggiunge una configurazione del sito Web al bucket specificato. La configurazione specifica sia il documento di indice, sia i nomi del documento di errore. Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta [Getting Started with the AWS SDK for .NET nella AWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET *Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class WebsiteConfigTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string indexDocumentSuffix = "*** index object key ***"; // For example, index.html.
        private const string errorDocument = "*** error object key ***"; // For example, error.html.
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;
        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            AddWebsiteConfigurationAsync(bucketName, indexDocumentSuffix, errorDocument).Wait();
        }

        static async Task AddWebsiteConfigurationAsync(string bucketName,
                                            string indexDocumentSuffix,
                                            string errorDocument)
        {
            try
            {
                // 1. Put the website configuration.
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest()
                {
                    BucketName = bucketName,
                    WebsiteConfiguration = new WebsiteConfiguration()
                    {
                        IndexDocumentSuffix = indexDocumentSuffix,
                        ErrorDocument = errorDocument
                    }
                };
                PutBucketWebsiteResponse response = await client.PutBucketWebsiteAsync(putRequest);

                // 2. Get the website configuration.
                GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName
                };
                GetBucketWebsiteResponse getResponse = await client.GetBucketWebsiteAsync(getRequest);
                Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix);
                Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------
#### [ PHP ]

L'esempio di codice PHP seguente aggiunge una configurazione del sito Web al bucket specificato. Il metodo `create_website_config` fornisce esplicitamente il documento di indice e i nomi del documento di errore. L'esempio recupera inoltre la configurazione del sito Web e stampa la risposta. Per ulteriori informazioni sulla funzionalità website di Amazon S3 consulta [Hosting di un sito Web statico tramite Amazon S3](WebsiteHosting.md).

Per ulteriori informazioni sull'API AWS SDK for Ruby, [AWS vai a SDK for Ruby](https://docs.aws.amazon.com/sdkforruby/api/index.html) - Versione 2.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);


// Add the website configuration.
$s3->putBucketWebsite([
    'Bucket'                => $bucket,
    'WebsiteConfiguration'  => [
        'IndexDocument' => ['Suffix' => 'index.html'],
        'ErrorDocument' => ['Key' => 'error.html']
    ]
]);

// Retrieve the website configuration.
$result = $s3->getBucketWebsite([
    'Bucket' => $bucket
]);
echo $result->getPath('IndexDocument/Suffix');

// Delete the website configuration.
$s3->deleteBucketWebsite([
    'Bucket' => $bucket
]);
```

------

## Usando il AWS CLI
<a name="enabling-website-cli"></a>

Per ulteriori informazioni sull'utilizzo di AWS CLI per configurare un bucket S3 come sito Web statico, consulta il sito [Web](https://docs.aws.amazon.com/cli/latest/reference/s3/website.html) nel *AWS CLI Command* Reference.

Successivamente, è necessario configurare il documento indice e impostare le autorizzazioni. Per informazioni, consultare [Configurazione di un documento indice](IndexDocumentSupport.md) e [Impostazione delle autorizzazioni per l'accesso al sito Web](WebsiteAccessPermissionsReqd.md). 

È inoltre possibile configurare facoltativamente un [documento di errore](CustomErrorDocSupport.md), la[registrazione del traffico Web](LoggingWebsiteTraffic.md) o un [reindirizzamento](how-to-page-redirect.md).

# Configurazione di un documento indice
<a name="IndexDocumentSupport"></a>

Quando si abilita l'hosting di siti Web, è necessario configurare e caricare un documento di indice. Un *documento di indice* è una pagina Web che Amazon S3 restituisce quando viene fatta una richiesta alla root di un sito web o a qualsiasi sottocartella. Ad esempio, se un utente inserisce `http://www.example.com` nel browser, l'utente non richiede alcuna pagina specifica. In questo caso, Amazon S3 fornisce il documento indice, talvolta chiamato *pagina predefinita*.

Quando si abilita l'hosting statico di siti Web per il bucket, si immette il nome del documento di indice (ad esempi, `index.html`). Dopo aver abilitato l'hosting statico di siti Web per il bucket, si carica un file HTML con il nome del documento di indice nel bucket. 

La barra finale nell'URL a livello di root è facoltativa. Ad esempio, se configuri il tuo sito Web `index.html` come documento indice, viene restituita una delle seguenti opzioni URLs . `index.html`

```
1. http://example-bucket.s3-website.Region.amazonaws.com/
2. http://example-bucket.s3-website.Region.amazonaws.com
```

Per ulteriori informazioni sugli endpoint del sito Amazon S3, consulta [Endpoint del sito Web](WebsiteEndpoints.md).

## Documento di indice e cartelle
<a name="IndexDocumentsandFolders"></a>

In Amazon S3, un bucket è un container flat di oggetti. Non fornisce alcuna organizzazione gerarchica in quanto è il file system del computer a farlo. Tuttavia, è possibile creare una gerarchia logica utilizzando i nomi delle chiavi degli oggetti che implicano una struttura a cartelle. 

Si supponga ad esempio un bucket con tre oggetti che hanno i nomi delle chiavi seguenti. Sebbene questi siano archiviati senza un'organizzazione gerarchica fisica, è possibile dedurre la seguente struttura logica a cartelle a partire dai nomi delle chiavi:
+ `sample1.jpg`: l'oggetto è nella root del bucket.
+ `photos/2006/Jan/sample2.jpg`: l'oggetto è nella sottocartella `photos/2006/Jan`.
+ `photos/2006/Feb/sample3.jpg`: l'oggetto è nella sottocartella `photos/2006/Feb`. 

Nella console Amazon S3 è anche possibile creare una cartella in un bucket. Ad esempio, è possibile creare una cartella denominata `photos`. È possibile caricare gli oggetti nel bucket o nella cartella `photos` all'interno del bucket. Se si aggiunge l'oggetto `sample.jpg` al bucket, il nome della chiave è `sample.jpg`. Se si carica l'oggetto nella cartella `photos`, il nome della chiave dell'oggetto è `photos/sample.jpg`.

Se si crea una struttura a cartelle nel bucket, occorre avere un documento di indice in ciascun livello. In ogni cartella, il documento di indice deve avere lo stesso nome, ad esempio, `index.html`. Quando un utente specifica un URL che si presenta come la ricerca di una cartella, la presenza o l'assenza di una barra finale determina il comportamento del sito Web. Ad esempio, il seguente URL, con barra finale, restituisce il documento di indice `photos/index.html`. 

```
1. http://bucket-name.s3-website.Region.amazonaws.com/photos/
```

Tuttavia, se si esclude la barra finale dall'URL precedente, Amazon S3 cerca innanzitutto un oggetto `photos` nel bucket. Se non trova l'oggetto `photos`, cerca un documento indice, `photos/index.html`. Se questo documento viene trovato, Amazon S3 restituisce un messaggio `302 Found` e punta alla chiave `photos/`. Per le successive richieste `photos/`, Amazon S3 restituisce `photos/index.html`. Se il documento di indice non viene trovato, Amazon S3 restituisce un errore.

## Configurazione di un documento indice
<a name="configuring-index-document"></a>

Per configurare un documento indice utilizzando la console S3, attieniti alla procedura seguente. Puoi anche configurare un documento indice utilizzando l'API REST AWS SDKs, il AWS CLI, o CloudFormation. 

**Nota**  
In un bucket abilitato al controllo delle versioni, puoi caricare più copie del file `index.html`, ma verrà risolta solo la versione più recente. Per ulteriori informazioni sulla funzione Controllo delle versioni S3, consulta [Conservazione di più versioni degli oggetti con Controllo delle versioni S3](Versioning.md).

Quando si abilita l'hosting statico di siti Web per il bucket, si immette il nome del documento di indice (ad esempi, **index.html**). Dopo aver abilitato l'hosting di siti Web statici per il bucket, si carica un file HTML con il nome del documento di indice nel bucket.

**Per configurare il documento di indice**

1. Creare un file `index.html`

   Se non si dispone di un file `index.html`, è possibile utilizzare il seguente codice HTML per crearne uno:

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. Salva il file indice in locale.

   Il nome del file del documento indice deve corrispondere esattamente al nome del documento indice immesso nella finestra di dialogo **Hosting sito Web statico**. Il nome del documento indice distingue tra maiuscole e minuscole. Ad esempio, se si immette `index.html` per il nome del **documento Indice** nella finestra di dialogo **Hosting sito Web statico**, anche il nome del file del documento indice deve essere `index.html` e non `Index.html`.

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket che desideri utilizzare per l’hosting di un sito web statico.

1. Abilitare l'hosting di siti Web statici per il bucket e inserire il nome esatto del documento di indice (ad esempi, `index.html`). Per ulteriori informazioni, consulta [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md).

   Dopo aver abilitato l'hosting di siti Web statici, procedere alla fase 6. 

1. Per caricare il documento di indice nel bucket, eseguire una delle operazioni seguenti:
   + Trascinare e rilasciare il file di indice nell'elenco bucket della console.
   + Scegliere **Upload (Carica)** e seguire le istruzioni per scegliere e caricare il file di indice.

   Per step-by-step istruzioni, consulta[Caricamento degli oggetti](upload-objects.md).

1. (Opzionale) Caricare altri contenuti del sito Web nel bucket.

Successivamente, è necessario impostare le autorizzazioni per l'accesso al sito Web. Per informazioni, consulta [Impostazione delle autorizzazioni per l'accesso al sito Web](WebsiteAccessPermissionsReqd.md). 

È inoltre possibile configurare facoltativamente un [documento di errore](CustomErrorDocSupport.md), la[registrazione del traffico Web](LoggingWebsiteTraffic.md) o un [reindirizzamento](how-to-page-redirect.md).

# Configurazione di un documento di errore personalizzato
<a name="CustomErrorDocSupport"></a>

Dopo aver configurato il bucket come sito web statico, quando si verifica un errore, Amazon S3 restituisce un documento di errore HTML. È possibile configurare il bucket con un documento di errore personalizzato in modo che Amazon S3 restituisca tale documento quando si verifica un errore. 

**Nota**  
In caso di errore, alcuni browser visualizzano il loro messaggio di errore, ignorando il documento di errore che restituisce Amazon S3. Ad esempio, quando si verifica un errore HTTP 404 Non trovato, Google Chrome potrebbe ignorare il documento di errore che Amazon S3 restituisce e visualizzare il suo errore.

**Topics**
+ [Codici di risposta HTTP di Amazon S3](#s3-http-error-codes)
+ [Configurazione di un documento di errore personalizzato](#custom-error-document)

## Codici di risposta HTTP di Amazon S3
<a name="s3-http-error-codes"></a>

La seguente tabella elenca il sottoinsieme dei codici di risposta HTTP che Amazon S3 restituisce in caso di errore. 


| Codice di errore HTTP | Descrizione | 
| --- | --- | 
| 301 Moved Permanently (301 Spostato definitivamente) | Quando un utente invia una richiesta direttamente agli endpoint del sito web Amazon S3 (http://s3-website.Region.amazonaws.com/), Amazon S3 restituisce una risposta 301 Moved Permanently (301 Spostato definitivamente) e reindirizza tali richieste a https://aws.amazon.com/s3/. | 
| 302 Found (302 Trovato) |  Quando Amazon S3 riceve una richiesta per una chiave `x`, `http://bucket-name.s3-website.Region.amazonaws.com/x`, senza barra finale, cerca innanzitutto l'oggetto con nome della chiave `x`. Se l'oggetto non viene trovato, Amazon S3 stabilisce che la richiesta è per la sottocartella `x`, la reindirizza aggiungendo una barra finale e restituisce **302 Found (302 Trovato)**.   | 
| 304 Not Modified (304 Non modificato) |  Gli utenti Amazon S3 richiedono intestazioni `If-Modified-Since`, `If-Unmodified-Since`, `If-Match` e/o `If-None-Match` per stabilire se l'oggetto richiesto coincide con la copia memorizzata nella cache del client. Se l'oggetto coincide, l'endpoint del sito Web restituisce una risposta **304 Not Modified (304 Non modificato)**.  | 
| 400 Malformed Request (400 Richiesta non corretta) |  L'endpoint del sito Web restituisce una risposta **400 Malformed Request (400 Richiesta non corretta)** quando un utente cerca di accedere a un bucket attraverso l'endpoint regionale sbagliato.   | 
| 403 Forbidden (403 Non consentito) |  L'endpoint del sito Web restituisce una risposta **403 Forbidden (403 Non consentito)** quando la richiesta di un utente viene trasferita a un oggetto che non è pubblicamente leggibile. Il proprietario dell'oggetto deve rendere l'oggetto pubblicamente leggibile mediante una policy del bucket o un'ACL.   | 
| 404 Not Found (404 Non trovato) |  L'endpoint del sito Web restituisce una risposta **404 Not Found (404 Non trovato)** per i motivi seguenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/CustomErrorDocSupport.html) È possibile creare un documento personalizzato che viene restituito per **404 Not Found (404 Non trovato)**. Assicurarsi che il documento sia caricato nel bucket configurato come sito Web e che la configurazione di hosting del sito Web preveda l'utilizzo del documento. Per informazioni su come Amazon S3 interpreta l'URL come richiesta di un oggetto o di un documento di indice, consulta [Configurazione di un documento indice](IndexDocumentSupport.md).   | 
| 500 Service Error (500 Errore servizio) |  L'endpoint del sito Web restituisce una risposta **500 Service Error (500 Errore servizio)** in caso di errore del server interno.  | 
| 503 Service Unavailable (503 Servizio non disponibile) |  L'endpoint del sito web restituisce una risposta **503 Service Unavailable (503 Servizio non disponibile)** quando Amazon S3 stabilisce che occorre ridurre il tasso di richiesta.   | 

 Per ciascuno di questi errori, Amazon S3 restituisce un messaggio HTML predefinito. Di seguito è riportato un esempio di messaggio HTML che viene restituito per una risposta **403 Forbidden (403 Non consentito)**.

![\[Esempio messaggio di errore 403 Forbidden (403 Non consentito)\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/WebsiteErrorExample403.png)


## Configurazione di un documento di errore personalizzato
<a name="custom-error-document"></a>

Quando configuri il bucket come sito Web statico, puoi fornire un documento di errore personalizzato contenente un messaggio di errore intuitivo e una guida aggiuntiva. Amazon S3 restituisce il documento di errore personalizzato solo per la classe dei codici di errore HTTP 4XX. 

Per configurare un documento di errore personalizzato utilizzando la console S3, attenersi alla procedura riportata di seguito. Puoi anche configurare un documento di errore utilizzando l'API REST AWS SDKs, il AWS CLI, o CloudFormation. Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)nel *riferimento alle API di Amazon Simple Storage Service*
+ [AWS::S3::Bucket WebsiteConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-websiteconfiguration.html) nella *Guida per l'utente di CloudFormation *
+ [put-bucket-website](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-website.html) in *Riferimento ai comandi AWS CLI *

Quando abiliti l'hosting di siti Web statici per il tuo bucket, specifichi il nome del documento di errore (ad esempio, **404.html**). Dopo avere abilitato l'hosting di siti Web statici per il bucket, carichi un file HTML con il nome del documento di errore nel bucket.

**Per configurare un documento di errore**

1. Crea un documento di errore, ad esempio `404.html`.

1. Salva il file del documento di errore in locale.

   Il nome del documento di errore fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome immesso quando hai attivato l'hosting statico di siti Web. Ad esempio, se specifichi `404.html` per il nome del **documento di errore** nella finestra di dialogo **Hosting sito Web statico**, anche il nome file del documento di errore dovrà essere `404.html`.

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket che desideri utilizzare per l’hosting di un sito web statico.

1. Abilita l'hosting di siti Web statici per il bucket e inserisci il nome esatto del documento di errore (ad esempio, `404.html`). Per ulteriori informazioni, consultare [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md) e [Configurazione di un documento di errore personalizzato](#CustomErrorDocSupport).

   Dopo aver abilitato l'hosting di siti Web statici, procedere alla fase 6. 

1. Per caricare il documento di errore nel bucket, completa una delle operazioni riportate di seguito:
   + Trascina e rilascia il file del documento di errore nell'elenco dei bucket della console.
   + Scegliere **Upload (Carica)** e seguire le istruzioni per scegliere e caricare il file di indice.

   Per step-by-step istruzioni, consulta[Caricamento degli oggetti](upload-objects.md).

# Impostazione delle autorizzazioni per l'accesso al sito Web
<a name="WebsiteAccessPermissionsReqd"></a>

Quando si configura un bucket come sito Web statico, se si desidera che il sito Web sia pubblico, è possibile concedere l'accesso per la lettura pubblica. Per consentire la lettura pubblica del bucket, occorre disabilitare le impostazioni di blocco dell'accesso pubblico al bucket e scrivere una policy del bucket che conceda l'accesso per la lettura pubblica. Se il bucket contiene oggetti che non appartengono al proprietario del bucket, potrebbe essere necessario aggiungere anche una lista di controllo degli accessi (ACL) dell'oggetto che concede a tutti l'accesso in lettura.

Se non vuoi disabilitare le impostazioni di blocco dell'accesso pubblico per il tuo bucket ma vuoi comunque che il tuo sito web sia pubblico, puoi creare una CloudFront distribuzione Amazon per servire il tuo sito web statico. Per ulteriori informazioni, consulta [Velocizza il tuo sito Web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md) o [Usa una CloudFront distribuzione Amazon per servire un sito Web statico](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started-cloudfront-overview.html) nella *Amazon Route 53 Developer Guide*.

**Nota**  
Nell'endpoint del sito web, se un utente richiede un oggetto che non esiste, Amazon S3 restituisce un codice di risposta HTTP `404 (Not Found)`. Se l'oggetto esiste ma la relativa autorizzazione di lettura non è stata concessa, l'endpoint del sito Web restituisce un codice di risposta HTTP `403 (Access Denied)`. L'utente può utilizzare il codice di risposta per capire se esiste un oggetto specifico. Per evitare questo tipo di comportamento, il supporto di siti Web per il bucket non deve essere abilitato. 

**Topics**
+ [Fase 1: modifica delle impostazioni dell'accesso pubblico ai blocchi Amazon S3](#block-public-access-static-site)
+ [Fase 2: aggiunta di una policy del bucket](#bucket-policy-static-site)
+ [Liste di controllo accessi dell'oggetto](#object-acl)

## Fase 1: modifica delle impostazioni dell'accesso pubblico ai blocchi Amazon S3
<a name="block-public-access-static-site"></a>

Per configurare un bucket esistente come sito web statico con accesso pubblico, devi modificare le impostazioni di blocco dell'accesso pubblico per il bucket. Potrebbe anche essere necessario modificare le impostazioni di blocca dell'accesso pubblico a livello di account. Amazon S3 applica la combinazione più restrittiva di impostazioni blocco di accesso pubblico a livello di account e a livello di bucket.

Ad esempio, se consenti l'accesso pubblico per un bucket ma lo blocchi a livello dell'account, Amazon S3 continuerà a bloccare l'accesso pubblico al bucket. In questo scenario, sarà necessario modificare le impostazioni di blocco dell'accesso pubblico a livello di bucket e di account. Per ulteriori informazioni, consulta [Blocco dell'accesso pubblico allo storage Amazon S3](access-control-block-public-access.md).

Per impostazione predefinita, Amazon S3 blocca l'accesso pubblico all'account e ai bucket. Per utilizzare un bucket per ospitare un sito Web statico, puoi seguire questa procedura per modificare le impostazioni di blocco dell'accesso pubblico: 

**avvertimento**  
Prima di completare questi passaggi, consulta [Blocco dell'accesso pubblico allo storage Amazon S3](access-control-block-public-access.md) per assicurarsi di aver compreso e accettato i rischi connessi alla concessione dell'accesso pubblico. Quando si disattivano le impostazioni di blocco dell'accesso pubblico per rendere pubblico il bucket, chiunque su Internet può accedere al bucket. Consigliamo di bloccare tutti gli accessi pubblici ai bucket.

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Seleziona il nome del bucket configurato come sito Web statico.

1. Seleziona **Autorizzazioni**.

1. In **Blocca accesso pubblico (impostazioni bucket)**, seleziona **Modifica**.

1. Deseleziona **Blocca *tutto* l'accesso pubblico**, quindi seleziona **Salva modifiche**.  
![\[Console Amazon S3 in cui vengono mostrate le impostazioni di blocco dell'accesso pubblico a un bucket.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   Amazon S3 disattiva le impostazioni di blocco dell'accesso pubblico per il bucket. Per creare un sito web pubblico statico, potrebbe essere necessario [modificare anche le impostazioni di blocco dell'accesso pubblico](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) per l'account prima di aggiungere una policy del bucket. Se le impostazioni dell'account per il blocco dell'accesso pubblico sono attualmente attivate, verrà visualizzata una nota in **Blocca accesso pubblico (impostazioni bucket)**.

## Fase 2: aggiunta di una policy del bucket
<a name="bucket-policy-static-site"></a>

Per rendere gli oggetti nel bucket pubblicamente leggibili, devi scrivere una policy del bucket che conceda a tutti l'autorizzazione `s3:GetObject`. 

Dopo aver modificato le impostazioni di blocco dell'accesso pubblico S3, è possibile aggiungere una policy del bucket per concedere l'accesso pubblico in lettura al bucket. Quando concedi l'accesso pubblico in lettura, chiunque su Internet può accedere al bucket.

**Importante**  
La policy seguente è solo un esempio e consente l'accesso completo ai contenuti del bucket. Prima di continuare con questa fase, esamina l'argomento relativo a [come proteggere i file nel bucket Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) per assicurarti di comprendere le best practice per la protezione dei file nel bucket S3 e i rischi connessi alla concessione dell'accesso pubblico .

1. In **Bucket**, scegli il nome del bucket.

1. Seleziona **Autorizzazioni**.

1. In **Policy del bucket**, seleziona **Modifica**.

1. Per concedere l'accesso in lettura pubblico al sito Web, copiare la policy del bucket seguente e incollarla in **Editor della policy del bucket**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. Aggiorna `Resource` al tuo nome bucket.

   Nell'esempio precedente, bucket policy, *Bucket-Name* è un segnaposto per il nome del bucket. Per utilizzare questa policy di bucket con il proprio bucket, è necessario aggiornare il nome in modo che corrisponda al bucket.

1. Seleziona **Salva modifiche**.

   Viene visualizzato un messaggio che indica che la policy del bucket è stata aggiunta correttamente.

   Se viene visualizzato l'errore `Policy has invalid resource`, conferma che il nome del bucket nella policy di bucket corrisponde al nome del bucket. Per informazioni sull'aggiunta di una policy del bucket, consulta [In che modo aggiungere una policy del bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   Se viene visualizzato un messaggio di errore e non è possibile salvare la policy di bucket, controlla le impostazioni di blocco dell'accesso pubblico all'account e al bucket per confermare che consenti l'accesso pubblico al bucket.

## Liste di controllo accessi dell'oggetto
<a name="object-acl"></a>

Puoi utilizzare una policy del bucket per concedere l'autorizzazione in lettura pubblica per gli oggetti. Tuttavia, la policy del bucket si applica solo agli oggetti appartenenti al proprietario del bucket. Se il bucket contiene oggetti che non appartengono al proprietario del bucket, quest'ultimo deve utilizzare la lista di controllo degli accessi (ACL) per concedere l'autorizzazione READ pubblica per tali oggetti.

S3 Object Ownership è un'impostazione a livello di bucket di Amazon S3 che puoi utilizzare sia per controllare la proprietà degli oggetti caricati nel tuo bucket sia per disabilitarli o abilitarli. ACLs Per impostazione predefinita, Object Ownership è impostata sull'impostazione imposta dal proprietario del Bucket e tutti sono disabilitati. ACLs Quando ACLs sono disabilitati, il proprietario del bucket possiede tutti gli oggetti nel bucket e ne gestisce l'accesso esclusivamente utilizzando le politiche di gestione degli accessi.

 La maggior parte dei casi d'uso moderni in Amazon S3 non richiede più l'uso di. ACLs Ti consigliamo di rimanere ACLs disabilitato, tranne nei casi in cui devi controllare l'accesso per ogni oggetto singolarmente. ACLs Disabilitando, puoi utilizzare le policy per controllare l'accesso a tutti gli oggetti nel tuo bucket, indipendentemente da chi ha caricato gli oggetti nel tuo bucket. Per ulteriori informazioni, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).

**Importante**  
Se il bucket per uso generico utilizza l’impostazione Proprietario del bucket applicato per Proprietà dell’oggetto S3, è necessario utilizzare le policy per fornire l’accesso al bucket per uso generico e agli oggetti in esso contenuti. Con l'impostazione forzata del proprietario del Bucket abilitata, le richieste di impostazione degli elenchi di controllo degli accessi (ACLs) o di aggiornamento hanno ACLs esito negativo e restituiscono il codice di errore. `AccessControlListNotSupported` Le richieste di lettura ACLs sono ancora supportate.

Per rendere un oggetto pubblicamente leggibile mediante un ACL, occorre concedere l'autorizzazione READ al gruppo `AllUsers`, come illustrato nel seguente elemento "grant". Aggiungere questo elemento "grant" all'ACL dell'oggetto. Per informazioni sulla gestione ACLs, vedere[Panoramica delle liste di controllo accessi (ACL)](acl-overview.md).

```
1. <Grant>
2.   <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.           xsi:type="Group">
4.     <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
5.   </Grantee>
6.   <Permission>READ</Permission>
7. </Grant>
```

# (Facoltativo) Registrazione del traffico Web
<a name="LoggingWebsiteTraffic"></a>

Facoltativamente puoi abilitare la registrazione dell'accesso al server Amazon S3 per un bucket configurato come sito web statico. La registrazione degli accessi al server fornisce record dettagliati per le richieste che sono effettuate al bucket. Per ulteriori informazioni, consulta [Registrazione delle richieste con registrazione dell'accesso al server](ServerLogs.md). Se prevedi di utilizzare Amazon CloudFront per [velocizzare il tuo sito Web](website-hosting-cloudfront-walkthrough.md), puoi anche utilizzare CloudFront la registrazione. Per ulteriori informazioni, consulta [Configurazione e utilizzo dei log di accesso](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) nella *Amazon CloudFront Developer Guide*.

**Per abilitare la registrazione dell'accesso al server per il bucket del sito Web statico**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nella stessa Regione in cui è stato creato il bucket configurato come sito web statico, crea un bucket per uso generico per la registrazione di log, ad esempio `logs.example.com`.

1. Creare una cartella per i file di registrazione degli accessi al server (ad esempio, `logs`).

1. (Facoltativo) Se desideri utilizzarla CloudFront per migliorare le prestazioni del tuo sito Web, crea una cartella per i file di CloudFront registro (ad esempio,`cdn`).

   Per ulteriori informazioni, consulta [Velocizza il tuo sito Web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

1. Nell'elenco **Bucket**, seleziona il nome del bucket.

1. Scegliere **Properties (Proprietà)**.

1. In **Registrazione accesso server**, seleziona **Modifica**.

1. Scegli **Enable** (Abilita).

1. In **Bucket di destinazione**, seleziona la destinazione del bucket e della cartella per i log di accesso al server:
   + Individua la cartella e il percorso del bucket:

     1. Seleziona **Sfoglia S3**.

     1. Scegli il nome del bucket, quindi seleziona la cartella dei log. 

     1. Seleziona **Scegli percorso**.
   + Specifica il percorso del bucket S3, ad esempio, **s3://logs.example.com/logs/**.

1. Seleziona **Salva modifiche**.

   Nel bucket di log, ora puoi accedere ai tuoi log. Amazon S3 scrive i log di accesso del sito web nel bucket log ogni due ore.

# (Facoltativo) Configurazione del reindirizzamento di una pagina Web
<a name="how-to-page-redirect"></a>

Se il bucket Amazon S3 è configurato per l'hosting di siti Web statici, è possibile configurare i reindirizzamenti per il bucket o gli oggetti in esso contenuti. Per configurare il reindirizzamento sono disponibili le opzioni riportate di seguito.

**Topics**
+ [Reindirizzamento delle richieste per l'endpoint del sito Web del bucket a un altro bucket o dominio](#redirect-endpoint-host)
+ [Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati](#advanced-conditional-redirects)
+ [Reindirizzamento delle richieste per un oggetto](#redirect-requests-object-metadata)

## Reindirizzamento delle richieste per l'endpoint del sito Web del bucket a un altro bucket o dominio
<a name="redirect-endpoint-host"></a>

È possibile reindirizzare tutte le richieste a un endpoint di sito Web per un bucket a un altro bucket o a un dominio. Se vengono reindirizzate tutte le richieste, qualsiasi richiesta effettuata all'endpoint del sito Web viene reindirizzata al bucket o al dominio specificato. 

Ad esempio, se il dominio root è `example.com` e desideri servire richieste sia per `http://example.com` che per `http://www.example.com`, puoi creare due bucket denominati `example.com` e `www.example.com`. Successivamente, mantenere il contenuto nel bucket `example.com` e configurare l'altro bucket `www.example.com` per reindirizzare tutte le richieste al bucket `example.com`. Per ulteriori informazioni, consulta [Configurazione di un sito Web statico utilizzando un nome di dominio personalizzato](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html).

**Per reindirizzare le richieste per un endpoint di un sito Web bucket**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. In **Bucket** seleziona il nome del bucket da cui desideri reindirizzare le richieste (ad esempio, `www.example.com`).

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Seleziona **Reindirizza richieste per un oggetto**. 

1. Nella casella **Nome host** specifica l'endpoint del sito Web per il bucket o il dominio personalizzato.

   Ad esempio, se il reindirizzamento è effettuato verso un indirizzo di dominio root, digita **example.com**.

1. Per **Protocollo**, seleziona il protocollo per le richieste reindirizzate (**nessuno**,**http** o **https**).

   Se non si specifica un protocollo, l'opzione predefinita è **nessuno**.

1. Seleziona **Salva modifiche**.

## Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati
<a name="advanced-conditional-redirects"></a>

Con le regole di reindirizzamento avanzato, è possibile instradare le richieste in modo condizionale in base ai nomi delle chiavi degli oggetti specifici, ai prefissi nella richiesta o ai codici di risposta. Si supponga ad esempio di eliminare o rinominare un oggetto nel bucket. È possibile aggiungere una regola di routing che reindirizza la richiesta a un altro oggetto. Se si desidera rendere una cartella non disponibile, è possibile aggiungere una regola di routing per reindirizzare la richiesta a un'altra pagina Web. Inoltre, è possibile aggiungere una regola di routing per gestire le condizioni di errore instradando le richieste che restituiscono l'errore a un altro dominio dove viene elaborato l'errore.

Quando abiliti l'hosting di siti Web statici per il tuo bucket, puoi specificare facoltativamente regole di reindirizzamento avanzate. Amazon S3 ha un limite di 50 regole di routing per configurazione di sito web. Se sono necessarie più di 50 regole di routing, è possibile utilizzare l'instradamento degli oggetti. Per ulteriori informazioni, consulta [Utilizzo della console S3](#page-redirect-using-console).

Per ulteriori informazioni sulla configurazione delle regole di routing utilizzando l'API REST, consulta [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html)*Amazon Simple Storage Service API* Reference.

**Importante**  
Per creare regole di reindirizzamento nella nuova console Amazon S3, è necessario utilizzare JSON. Per gli esempi JSON, consulta [Esempi regole di reindirizzamento](#redirect-rule-examples).

**Per configurare le regole di reindirizzamento per un sito Web statico**

Per aggiungere le regole di reindirizzamento per un bucket che ha già abilitato l'hosting di siti Web statici, attieniti alla seguente procedura.

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket scegli il nome di un bucket configurato come sito web statico.

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Nella casella **Redirection rules (Regole di reindirizzamento)**, immettere le regole di reindirizzamento in JSON. 

   Nella console S3 descrivi le regole utilizzando JSON. Per gli esempi JSON, consulta [Esempi regole di reindirizzamento](#redirect-rule-examples). Amazon S3 ha un limite di 50 regole di routing per configurazione di sito web.

1. Seleziona **Salva modifiche**.

### Elementi regola instradamento
<a name="configure-bucket-as-website-routing-rule-syntax"></a>

Di seguito è riportata la sintassi generale per definire le regole di routing in una configurazione di un sito Web in XML. Per configurare le regole di reindirizzamento nella nuova console S3, è necessario utilizzare JSON. Per gli esempi JSON, consulta [Esempi regole di reindirizzamento](#redirect-rule-examples).

------
#### [ JSON ]

```
[
    {
      "Condition": {
        "HttpErrorCodeReturnedEquals": "string",
        "KeyPrefixEquals": "string"
      },
      "Redirect": {
        "HostName": "string",
        "HttpRedirectCode": "string",
        "Protocol": "http"|"https",
        "ReplaceKeyPrefixWith": "string",
        "ReplaceKeyWith": "string"
      }
    }
  ]
 
Note: Redirect must each have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------
#### [ XML ]

```
<RoutingRules> =
    <RoutingRules>
         <RoutingRule>...</RoutingRule>
         [<RoutingRule>...</RoutingRule>   
         ...]
    </RoutingRules>

<RoutingRule> =
   <RoutingRule>
      [ <Condition>...</Condition> ]
      <Redirect>...</Redirect>
   </RoutingRule>

<Condition> =
   <Condition> 
      [ <KeyPrefixEquals>...</KeyPrefixEquals> ]
      [ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ]
   </Condition>
    Note: <Condition> must have at least one child element.

<Redirect> =
   <Redirect> 
      [ <HostName>...</HostName> ]
      [ <Protocol>...</Protocol> ]
      [ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith>  ]
      [ <ReplaceKeyWith>...</ReplaceKeyWith> ]
      [ <HttpRedirectCode>...</HttpRedirectCode> ]
   </Redirect>

Note: <Redirect> must have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------

Nella seguente tabella sono descritti gli elementi della regola di routing.


|  Nome  |  Descrizione  | 
| --- | --- | 
| RoutingRules |  Container per una raccolta di elementi RoutingRule.  | 
| RoutingRule |  Una regola che stabilisce una condizione e il reindirizzamento che viene applicato quando la condizione è soddisfatta.  Condizione: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/how-to-page-redirect.html)  | 
| Condition |  Container per descrivere una condizione che deve essere soddisfatta per l'applicazione del reindirizzamento specificato. Se la regola di routing non include una condizione, la regola viene applicata a tutte le richieste.  | 
| KeyPrefixEquals |  Il prefisso del nome della chiave dell'oggetto da cui vengono reindirizzate le richieste.  `KeyPrefixEquals` è obbligatorio se `HttpErrorCodeReturnedEquals` non è specificato. Se `KeyPrefixEquals` e `HttpErrorCodeReturnedEquals` sono specificati, devono essere entrambi veri perché la condizione sia soddisfatta.  | 
| HttpErrorCodeReturnedEquals |  Il codice di errore HTTP che deve corrispondere perché il reindirizzamento venga applicato. Se si verifica un errore e se il codice di errore corrisponde a questo valore, il reindirizzamento specificato viene applicato. `HttpErrorCodeReturnedEquals` è obbligatorio se `KeyPrefixEquals` non è specificato. Se `KeyPrefixEquals` e `HttpErrorCodeReturnedEquals` sono specificati, devono essere entrambi veri perché la condizione sia soddisfatta.  | 
| Redirect |  Elemento del container che fornisce istruzioni per il reindirizzamento della richiesta. È possibile reindirizzare le richieste a un altro host o a un'altra pagina oppure specificare un altro protocollo da utilizzare. Un `RoutingRule` deve avere un elemento `Redirect`. Un elemento `Redirect` deve contenere almeno uno dei seguenti elementi di pari livello: `Protocol`, `HostName`, `ReplaceKeyPrefixWith`, `ReplaceKeyWith` o `HttpRedirectCode`.  | 
| Protocol |  Il protocollo, `http` o `https`, da utilizzare nell'intestazione `Location` che viene restituita nella risposta.  Se viene fornito uno degli elementi di pari livello, `Protocol` non è necessario.  | 
| HostName |  Il nome dell'host da utilizzare nell'intestazione `Location` che viene restituita nella risposta. Se viene fornito uno degli elementi di pari livello, `HostName` non è necessario.  | 
| ReplaceKeyPrefixWith |  Il prefisso del nome della chiave dell'oggetto che sostituisce il valore di `KeyPrefixEquals` nella richiesta di reindirizzamento.  Se viene fornito uno degli elementi di pari livello, `ReplaceKeyPrefixWith` non è necessario. Può essere fornito solo se `ReplaceKeyWith` non è fornito.  | 
| ReplaceKeyWith |  La chiave dell'oggetto da utilizzare nell'intestazione `Location` che viene restituita nella risposta.  Se viene fornito uno degli elementi di pari livello, `ReplaceKeyWith` non è necessario. Può essere fornito solo se `ReplaceKeyPrefixWith` non è fornito.  | 
| HttpRedirectCode |  Il codice di reindirizzamento HTTP da utilizzare nell'intestazione `Location` che viene restituita nella risposta. Se viene fornito uno degli elementi di pari livello, `HttpRedirectCode` non è necessario.  | 

#### Esempi regole di reindirizzamento
<a name="redirect-rule-examples"></a>

Gli esempi seguenti illustrano le comuni attività di reindirizzamento:

**Importante**  
Per creare regole di reindirizzamento nella nuova console Amazon S3, è necessario utilizzare JSON.

**Example 1: reindirizzamento dopo la ridenominazione del prefisso di una chiave**  
Si supponga che il bucket contenga i seguenti oggetti:  
+ index.html
+ docs/article1.html
+ docs/article2.html
Si decide di rinominare la cartella da `docs/` a `documents/`. Dopo aver apportato questa modifica, occorre reindirizzare le richieste del prefisso `docs/` verso `documents/`. Ad esempio, la richiesta di `docs/article1.html` sarà reindirizzata a `documents/article1.html`.  
In questo caso, si aggiunge la seguente regola di routing alla configurazione del sito Web.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "docs/"
        },
        "Redirect": {
            "ReplaceKeyPrefixWith": "documents/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>docs/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 2: reindirizzamento delle richieste di una cartella eliminata verso una pagina**  
Si supponga l'eliminazione della cartella `images/` (ovvero, l'eliminazione di tutti gli oggetti con prefisso della chiave `images/`). È possibile aggiungere una regola di routing che reindirizza le richieste di qualsiasi oggetto con prefisso della chiave `images/` verso una pagina denominata `folderdeleted.html`.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "images/"
        },
        "Redirect": {
            "ReplaceKeyWith": "folderdeleted.html"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
       <KeyPrefixEquals>images/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 3: reindirizzamento a un altro dominio con un percorso specifico**  
Si supponga di voler reindirizzare le richieste con un percorso specifico a un altro dominio. Ad esempio, si desidera reindirizzare le richieste con `/redirect/me` a `https://example.com/new/path`.  
Quando si utilizzano insieme `HostName` e `ReplaceKeyWith`, Amazon S3 crea l’URL di reindirizzamento concatenando il nome host e la chiave di sostituzione con una barra tra loro. Pertanto, non si deve includere una barra iniziale nel valore `ReplaceKeyWith`. Amazon S3 aggiunge automaticamente la barra tra il nome host e la chiave di sostituzione.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "redirect/me"
        },
        "Redirect": {
            "HostName": "example.com",
            "ReplaceKeyWith": "new/path"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>redirect/me</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>example.com</HostName>
      <ReplaceKeyWith>new/path</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```
Questa configurazione reindirizza una richiesta con `https://yourbucket.s3-website-region.amazonaws.com/redirect/me` a `https://example.com/new/path`. Si noti che `ReplaceKeyWith` è impostato su `new/path` senza barra iniziale.

**Example 4: Reindirizzamento per un errore HTTP**  
Si supponga che quando non viene trovato un oggetto richiesto, si desidera reindirizzare le richieste a un'istanza Amazon Elastic Compute Cloud (Amazon EC2). Aggiungere una regola di reindirizzamento in modo tale che, quando viene restituito un codice di stato HTTP 404 (Non trovato), il visitatore del sito venga reindirizzato a un'istanza Amazon EC2 che gestisca la richiesta.   
Il seguente esempio riporta nel reindirizzamento anche il prefisso della chiave dell'oggetto `report-404/`. Ad esempio, se la richiesta di una pagina `ExamplePage.html` restituisce un errore HTTP 404, la richiesta viene reindirizzata a una pagina `report-404/ExamplePage.html` sull'istanza Amazon EC2 specificata. Se non sono presenti regole di routing e si verifica l'errore HTTP 404, viene restituito il documento di errore specificato nella configurazione.  

```
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com",
            "ReplaceKeyPrefixWith": "report-404/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
    </Condition>
    <Redirect>
      <HostName>ec2-11-22-333-44.compute-1.amazonaws.com</HostName>
      <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

## Reindirizzamento delle richieste per un oggetto
<a name="redirect-requests-object-metadata"></a>

Puoi reindirizzare le richieste di un oggetto a un altro oggetto o URL impostando la posizione di reindirizzamento del sito Web nei metadati dell'oggetto. Si imposta il reindirizzamento aggiungendo la proprietà `x-amz-website-redirect-location` ai metadata dell'oggetto. Nella console Nella console Amazon S3, la **Posizione di reindirizzamento del sito Web** si imposta nei metadati dell'oggetto. Se utilizzi l'[API Amazon S3](#page-redirect-using-rest-api), hai impostato `x-amz-website-redirect-location`. Il sito Web interpreta quindi l'oggetto come reindirizzamento 301. 

Per reindirizzare una richiesta a un altro oggetto, si imposta la posizione di reindirizzamento sulla chiave dell'oggetto di destinazione. Per reindirizzare una richiesta a un URL esterno, si imposta la posizione di reindirizzamento sull'URL desiderato. Per ulteriori informazioni sui metadati degli oggetti, consulta [Metadata di oggetti definiti dal sistema](UsingMetadata.md#SysMetadata).

Quando si imposta il reindirizzamento di una pagina, è possibile mantenere o eliminare il contenuto dell'oggetto di origine. Ad esempio, se nel bucket è presente un oggetto `page1.html`, è possibile reindirizzare qualsiasi richiesta per questa pagina a un altro oggetto `page2.html`. Sono disponibili due opzioni:
+ Mantenere il contenuto dell'oggetto `page1.html` e reindirizzare le richieste per la pagina.
+ Eliminare il contenuto di `page1.html` e caricare un oggetto a zero byte denominato `page1.html` per sostituire l'oggetto esistente e reindirizzare le richieste per la pagina. 

### Utilizzo della console S3
<a name="page-redirect-using-console"></a>

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nell'elenco **Bucket**, seleziona il nome di un bucket configurato come sito Web statico (ad esempio, `example.com`).

1. In **Oggetti**, seleziona l'oggetto.

1. Seleziona **Operazioni**, quindi **Modifica metadati**.

1. Seleziona **Metadati**.

1. Seleziona **Aggiungi metadati**.

1. In **Tipo**, seleziona **Definito dal sistema**.

1. In **Key**, scegli **x-amz-website-redirect-location**.

1. In **Valore**, immettere il nome della chiave dell'oggetto a cui si desidera reindirizzare, ad esempio `/page2.html`.

   Per un altro oggetto nello stesso bucket, il prefisso `/` nel valore è obbligatorio. È possibile inoltre impostare il valore su un URL esterno, ad esempi, `http://www.example.com`.

1. Seleziona **Modifica metadati**.

### Utilizzo di REST API
<a name="page-redirect-using-rest-api"></a>

Le seguenti operazioni API Amazon S3 supportano l'intestazione `x-amz-website-redirect-location` nella richiesta. Amazon S3 archivia il valore dell'intestazione nei metadati dell'oggetto come `x-amz-website-redirect-location`. 
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [Avvio del caricamento in più parti](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)

Un bucket configurato per l'hosting di siti Web presenta sia l'endpoint del sito Web che l'endpoint REST. La richiesta di una pagina configurata come reindirizzamento 301 può generare i seguenti risultati, a seconda dell'endpoint della richiesta:
+ **Endpoint del sito web specifico per regione:** Amazon S3 reindirizza la richiesta della pagina in base al valore della proprietà `x-amz-website-redirect-location`. 
+ **Endpoint REST:** Amazon S3 non reindirizza la richiesta della pagina. Restituisce l'oggetto richiesto.

Per ulteriori informazioni sugli endpoint, consulta [Differenze chiave tra un endpoint del sito Web e un endpoint REST API](WebsiteEndpoints.md#WebsiteRestEndpointDiff).

Quando si imposta il reindirizzamento di una pagina, è possibile mantenere o eliminare il contenuto dell'oggetto. Supponi, ad esempio, di avere un oggetto `page1.html` nel bucket.
+ Per mantenere il contenuto di `page1.html` e reindirizzare solo le richieste della pagina, è possibile inviare una richiesta [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) per creare un nuovo oggetto `page1.html` che utilizzi l'oggetto `page1.html` esistente come origine. Nella richiesta, si imposta l'intestazione `x-amz-website-redirect-location`. Al completamento della richiesta, si ottiene la pagina originale con contenuto invariato, ma Amazon S3 reindirizza qualsiasi richiesta della pagina alla posizione di reindirizzamento specificata.
+ Per eliminare il contenuto dell'oggetto `page1.html` e reindirizzare le richieste della pagina, è possibile inviare una richiesta PUT Object per caricare un oggetto da zero byte con la stessa chiave dell'oggetto: `page1.html`. Nella richiesta PUT, si imposta `x-amz-website-redirect-location` per `page1.html` sul nuovo oggetto. Al completamento della richiesta, `page1.html` non ha contenuto e le richieste vengono reindirizzate alla posizione specificata da `x-amz-website-redirect-location`.

Quando si recupera l'oggetto tramite l'operazione [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html), insieme ad altri metadati dell'oggetto, Amazon S3 restituisce nella risposta l'intestazione `x-amz-website-redirect-location`.

# Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS)
<a name="cors"></a>

La funzionalità CORS (Cross-Origin Resource Sharing, condivisione delle risorse multiorigine) definisce un metodo con cui le applicazioni Web dei clienti caricate in un dominio possono interagire con le risorse situate in un dominio differente. Con il supporto della funzionalità CORS, è possibile creare applicazioni Web lato client complete con Amazon S3 e concedere l'accesso multiorigine alle risorse di Amazon S3 in modo selettivo. 

In questa sezione viene fornita una panoramica della funzionalità CORS. I sottoargomenti descrivono come abilitare CORS utilizzando la console Amazon S3 o a livello di codice utilizzando l'API REST di Amazon S3 e il. AWS SDKs 

## Cross Origin Resource Sharing (CORS): scenari dei casi d'uso
<a name="example-scenarios-cors"></a>

Di seguito sono riportati alcuni scenari di esempio per l'uso della funzionalità CORS.

**Scenario 1**  
Si supponga di ospitare un sito Web in un bucket Amazon S3 denominato `website`, come descritto in [Hosting di un sito Web statico tramite Amazon S3](WebsiteHosting.md). Gli utenti caricano l'endpoint del sito Web:

```
http://website.s3-website.us-east-1.amazonaws.com
```

Ora vuoi utilizzarlo JavaScript sulle pagine Web archiviate in questo bucket per poter effettuare richieste GET e PUT autenticate sullo stesso bucket utilizzando l'endpoint dell'API Amazon S3 per il bucket,. `website.s3.us-east-1.amazonaws.com` Normalmente un browser JavaScript impedirebbe l'autorizzazione di tali richieste, ma con CORS puoi configurare il tuo bucket per abilitare esplicitamente le richieste provenienti da più origini. `website.s3-website.us-east-1.amazonaws.com` 

**Scenario 2**  
Si supponga di voler ospitare un font Web dal bucket S3. Anche in questo caso, i browser richiedono un controllo della funzionalità CORS (anche denominato "controllo preliminare") per il caricamento dei font Web. È necessario configurare il bucket che ospita il font Web in modo da consentire a qualsiasi origine di eseguire queste richieste.

## In che modo Amazon S3 valuta la configurazione CORS in un bucket?
<a name="cors-eval-criteria"></a>

Quando Amazon S3 riceve una richiesta preliminare da un browser, valuta la configurazione CORS per il bucket e utilizza la prima regola `CORSRule` corrispondente alla richiesta del browser in entrata per abilitare una richiesta multiorigine. Per garantire la corrispondenza tra la regola e la richiesta, è necessario che siano soddisfatte le condizioni elencate di seguito.
+ L'intestazione `Origin` di una richiesta CORS al bucket deve corrispondere alle origini dell'elemento `AllowedOrigins` nella configurazione CORS.
+ I metodi HTTP specificati in `Access-Control-Request-Method` in una richiesta CORS al bucket devono corrispondere al metodo o ai metodi elencati nell'elemento `AllowedMethods` della configurazione CORS. 
+ Le intestazioni elencate nell'intestazione `Access-Control-Request-Headers` di una richiesta di verifica devono corrispondere alle intestazioni dell'elemento `AllowedHeaders` nella configurazione CORS. 

**Nota**  
Le policy ACLs and continuano ad essere applicate quando abiliti CORS sul tuo bucket.

## In che modo Punto di accesso per le espressioni Lambda dell'oggetto supporta CORS
<a name="cors-olap-cors"></a>

Quando Lambda per oggetti Amazon S3 riceve una richiesta da un browser o la richiesta include un'intestazione `Origin`, Lambda per oggetti Amazon S3 aggiunge sempre un campo di intestazione `"AllowedOrigins":"*"`.

Per ulteriori informazioni sull'uso di CORS, consulta gli argomenti riportati di seguito.

**Topics**
+ [Cross Origin Resource Sharing (CORS): scenari dei casi d'uso](#example-scenarios-cors)
+ [In che modo Amazon S3 valuta la configurazione CORS in un bucket?](#cors-eval-criteria)
+ [In che modo Punto di accesso per le espressioni Lambda dell'oggetto supporta CORS](#cors-olap-cors)
+ [Elementi di una configurazione CORS](ManageCorsUsing.md)
+ [Configurazione della funzionalità Cross-Origin Resource Sharing (CORS)](enabling-cors-examples.md)
+ [Test di CORS](testing-cors.md)
+ [Risoluzione dei problemi di CORS](cors-troubleshooting.md)

# Elementi di una configurazione CORS
<a name="ManageCorsUsing"></a>

Per configurare il bucket in modo da consentire le richieste multiorigine, si crea una configurazione CORS. La configurazione CORS è un documento con elementi che identificano le origini che potranno accedere al bucket, le operazioni (metodi HTTP) supportate per ogni origine e altre informazioni specifiche dell'operazione. È possibile aggiungere fino a 100 regole alla configurazione. È possibile aggiungere la configurazione CORS come risorsa secondaria `cors` al bucket.

Se configura CORS nella console S3, è necessario utilizzare JSON per creare una configurazione CORS. La nuova console S3 supporta solo configurazioni JSON CORS. 

Per ulteriori informazioni sulla configurazione CORS e sugli elementi in essa contenuti, consulta gli argomenti riportati di seguito. Per istruzioni su come aggiungere una configurazione CORS, consulta [Configurazione della funzionalità Cross-Origin Resource Sharing (CORS)](enabling-cors-examples.md).

**Importante**  
Nella console S3, la configurazione CORS deve essere JSON. 

**Topics**
+ [Elemento `AllowedMethods`](#cors-allowed-methods)
+ [Elemento `AllowedOrigins`](#cors-allowed-origin)
+ [Elemento `AllowedHeaders`](#cors-allowed-headers)
+ [Elemento `ExposeHeaders`](#cors-expose-headers)
+ [Elemento `MaxAgeSeconds`](#cors-max-age)
+ [Esempi di configurazioni CORS](#cors-example-1)

## Elemento `AllowedMethods`
<a name="cors-allowed-methods"></a>

Nella configurazione CORS è possibile specificare i valori indicati di seguito per l'elemento `AllowedMethods`.
+ GET
+ PUT
+ POST
+ DELETE
+ HEAD

## Elemento `AllowedOrigins`
<a name="cors-allowed-origin"></a>

Nell'elemento `AllowedOrigins`, è possibile specificare le origini da cui si desiderano consentire le richieste multidominio, ad esempio` http://www.example.com`. La stringa di origine può contenere solamente un carattere jolly `*`, ad esempio `http://*.example.com`. Se si desidera, è possibile specificare `*` come origine per consentire a tutte le origini di inviare richieste multiorigine. È anche possibile specificare `https` per abilitare solo le origini sicure.

## Elemento `AllowedHeaders`
<a name="cors-allowed-headers"></a>

L'elemento `AllowedHeaders` specifica le intestazioni consentite in una richiesta preliminare tramite l'intestazione `Access-Control-Request-Headers`. Ogni nome di intestazione in `Access-Control-Request-Headers` deve corrispondere a una voce nell'elemento. Tra le intestazioni richieste, Amazon S3 invierà nella risposta solo quelle consentite. Per un esempio di elenco di intestazioni che possono essere utilizzate nelle richieste ad Amazon S3, consulta l'argomento relativo alle [intestazioni di richiesta comuni](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html) nella *Documentazione di riferimento delle API di Amazon Simple Storage Service*.

Ogni AllowedHeaders stringa nella configurazione può contenere al massimo un carattere jolly (\$1). Ad esempio, `<AllowedHeader>x-amz-*</AllowedHeader>` abiliterà tutte le intestazioni specifiche di Amazon.

## Elemento `ExposeHeaders`
<a name="cors-expose-headers"></a>

Ogni `ExposeHeader` elemento identifica un'intestazione nella risposta a cui desideri che i clienti possano accedere dalle loro applicazioni (ad esempio, da un JavaScript `XMLHttpRequest` oggetto). Per un elenco delle intestazioni di risposta più comuni di Amazon S3, consulta l'argomento relativo alle [intestazioni di richiesta comuni](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html) nella *Documentazione di riferimento delle API di Amazon Simple Storage Service*.

## Elemento `MaxAgeSeconds`
<a name="cors-max-age"></a>

L'elemento `MaxAgeSeconds` specifica l'intervallo di tempo in secondi durante il quale il browser può memorizzare nella cache la risposta a una richiesta preliminare identificata in base a risorsa, metodo HTTP e origine.

## Esempi di configurazioni CORS
<a name="cors-example-1"></a>

Anziché accedere a un sito Web utilizzando un endpoint del sito Web Amazon S3, è possibile utilizzare il proprio dominio, come `example1.com`, per consegnare il contenuto. Per informazioni sull'uso del proprio dominio, consulta [Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53](website-hosting-custom-domain-walkthrough.md). 

La configurazione CORS di esempio riportata di seguito include tre regole, specificate come elementi `CORSRule`:
+ La prima regola consente le richieste multiorigine PUT, POST e DELETE provenienti dall'origine `http://www.example1.com` La regole consente inoltre tutte le intestazioni in una richiesta OPTIONS preliminare tramite l'intestazione `Access-Control-Request-Headers`. In risposta alle richieste OPTIONS preliminari, Amazon S3 restituisce le intestazioni richieste.
+ La seconda regola consente le stesse richieste multiorigine della prima regola, ma si applica a un'altra origine, `http://www.example2.com`. 
+ La terza regola consente le richieste multiorigine GET provenienti da tutte le origini. Il carattere jolly `*` si riferisce a tutte le origini. 

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example1.com"
        ],
        "ExposeHeaders": []
    },
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example2.com"
        ],
        "ExposeHeaders": []
    },
    {
        "AllowedHeaders": [],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
```

------
#### [ XML ]

```
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example1.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>http://www.example2.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
```

------

La configurazione CORS supporta anche i parametri di configurazione opzionali, come illustrato nella seguente configurazione CORS. In questo esempio la configurazione CORS consente le richieste multiorigine PUT, POST e DELETE provenienti dall'origine `http://www.example.com`.

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example.com"
        ],
        "ExposeHeaders": [
            "x-amz-server-side-encryption",
            "x-amz-request-id",
            "x-amz-id-2"
        ],
        "MaxAgeSeconds": 3000
    }
]
```

------
#### [ XML ]

```
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example.com</AllowedOrigin>
   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
  <MaxAgeSeconds>3000</MaxAgeSeconds>
  <ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
  <ExposeHeader>x-amz-request-id</ExposeHeader>
  <ExposeHeader>x-amz-id-2</ExposeHeader>
 </CORSRule>
</CORSConfiguration>
```

------

L'elemento `CORSRule` nella configurazione precedente include gli elementi opzionali riportati di seguito.
+ `MaxAgeSeconds` – Specifica l'intervallo di tempo in secondi (in questo esempio, 3000) durante il quale il browser memorizza nella cache una risposta Amazon S3 a una richiesta OPTIONS preliminare per la risorsa specificata. La memorizzazione nella cache della risposta consente al browser di non inviare richieste preliminari ad Amazon S3 se la richiesta originale viene ripetuta. 
+ `ExposeHeaders`—Identifica le intestazioni di risposta (in questo esempio, `x-amz-server-side-encryption``x-amz-request-id`, e`x-amz-id-2`) a cui i clienti possono accedere dalle loro applicazioni (ad esempio, da un oggetto). JavaScript `XMLHttpRequest`

# Configurazione della funzionalità Cross-Origin Resource Sharing (CORS)
<a name="enabling-cors-examples"></a>

La funzionalità CORS (Cross-Origin Resource Sharing, condivisione delle risorse multiorigine) definisce un metodo con cui le applicazioni Web dei clienti caricate in un dominio possono interagire con le risorse situate in un dominio differente. Con il supporto della funzionalità CORS, è possibile creare applicazioni Web lato client complete con Amazon S3 e concedere l'accesso multiorigine alle risorse di Amazon S3 in modo selettivo. 

Questa sezione mostra come abilitare CORS utilizzando la console Amazon S3, l'API REST di Amazon S3 e il. AWS SDKs Per configurare il bucket in modo da consentire richieste tra più origini, è necessario aggiungere una configurazione CORS al bucket. La configurazione CORS è un documento in cui sono definite regole che identificano le origini che potranno accedere al bucket, le operazioni (metodi HTTP) supportate per ogni origine e altre informazioni specifiche dell'operazione. Nella console S3, la configurazione CORS deve essere un documento JSON.

Per esempi di configurazioni CORS in JSON e XML, consulta [Elementi di una configurazione CORS](ManageCorsUsing.md).

## Utilizzo della console S3
<a name="add-cors-configuration"></a>

In questa sezione viene descritto come utilizzare la console di Amazon S3 per aggiungere una configurazione CORS (Cross-Origin Resource Sharing, condivisione delle risorse multiorigine) a un bucket S3. 

Quando abiliti CORS nel bucket, le liste di controllo degli accessi (ACLs) e le altre politiche di autorizzazione all'accesso continuano ad essere applicate.

**Importante**  
Nella console S3, la configurazione CORS deve essere JSON. Per esempi di configurazioni CORS in JSON e XML, consulta [Elementi di una configurazione CORS](ManageCorsUsing.md).

**Per aggiungere una configurazione CORS a un bucket S3**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket per il quale desideri creare una policy di bucket.

1. Seleziona **Autorizzazioni**.

1. Nella sezione **Cross-Origin Resource Sharing (CORS)** scegliere **Edit (Modifica)**.

1. Nella casella di testo **CORS configuration editor (Editor configurazione CORS)**, digitare o copiare e incollare una nuova configurazione CORS oppure modificare una configurazione esistente.

   La configurazione CORS è un file JSON. Il testo digitato nell'editor deve essere in formato JSON valido. Per ulteriori informazioni, consulta [Elementi di una configurazione CORS](ManageCorsUsing.md).

1. Seleziona **Salva modifiche**.
**Nota**  
Amazon S3 visualizza l'Amazon Resource Name (ARN) per il bucket accanto al titolo **CORS configuration editor (Editor configurazione CORS)**. Per ulteriori informazioni su ARNs, consulta [Amazon Resource Names (ARNs) e AWS Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) nel. *Riferimenti generali di Amazon Web Services*

## Usando il AWS SDKs
<a name="ManageCorsUsingSDK"></a>

È possibile utilizzare l' AWS SDK per gestire la condivisione di risorse tra origini diverse (CORS) per un bucket. Per ulteriori informazioni sulla funzionalità CORS, consulta [Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS)](cors.md).

 Gli esempi seguenti:
+ Crea una configurazione CORS e imposta la configurazione su un bucket
+ Recupera la configurazione e la modifica aggiungendo una regola
+ Aggiunge la configurazione modificata al bucket
+ Elimina la configurazione

------
#### [ Java ]

**Example**  

**Example**  
 Per istruzioni su come creare e testare un esempio funzionante, consulta [Getting Started nella Developer Guide](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html). AWS SDK per Java   

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.BucketCrossOriginConfiguration;
import com.amazonaws.services.s3.model.CORSRule;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CORS {

    public static void main(String[] args) throws IOException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";

        // Create two CORS rules.
        List<CORSRule.AllowedMethods> rule1AM = new ArrayList<CORSRule.AllowedMethods>();
        rule1AM.add(CORSRule.AllowedMethods.PUT);
        rule1AM.add(CORSRule.AllowedMethods.POST);
        rule1AM.add(CORSRule.AllowedMethods.DELETE);
        CORSRule rule1 = new CORSRule().withId("CORSRule1").withAllowedMethods(rule1AM)
                .withAllowedOrigins(Arrays.asList("http://*.example.com"));

        List<CORSRule.AllowedMethods> rule2AM = new ArrayList<CORSRule.AllowedMethods>();
        rule2AM.add(CORSRule.AllowedMethods.GET);
        CORSRule rule2 = new CORSRule().withId("CORSRule2").withAllowedMethods(rule2AM)
                .withAllowedOrigins(Arrays.asList("*")).withMaxAgeSeconds(3000)
                .withExposedHeaders(Arrays.asList("x-amz-server-side-encryption"));

        List<CORSRule> rules = new ArrayList<CORSRule>();
        rules.add(rule1);
        rules.add(rule2);

        // Add the rules to a new CORS configuration.
        BucketCrossOriginConfiguration configuration = new BucketCrossOriginConfiguration();
        configuration.setRules(rules);

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Add the configuration to the bucket.
            s3Client.setBucketCrossOriginConfiguration(bucketName, configuration);

            // Retrieve and display the configuration.
            configuration = s3Client.getBucketCrossOriginConfiguration(bucketName);
            printCORSConfiguration(configuration);

            // Add another new rule.
            List<CORSRule.AllowedMethods> rule3AM = new ArrayList<CORSRule.AllowedMethods>();
            rule3AM.add(CORSRule.AllowedMethods.HEAD);
            CORSRule rule3 = new CORSRule().withId("CORSRule3").withAllowedMethods(rule3AM)
                    .withAllowedOrigins(Arrays.asList("http://www.example.com"));

            rules = configuration.getRules();
            rules.add(rule3);
            configuration.setRules(rules);
            s3Client.setBucketCrossOriginConfiguration(bucketName, configuration);

            // Verify that the new rule was added by checking the number of rules in the
            // configuration.
            configuration = s3Client.getBucketCrossOriginConfiguration(bucketName);
            System.out.println("Expected # of rules = 3, found " + configuration.getRules().size());

            // Delete the configuration.
            s3Client.deleteBucketCrossOriginConfiguration(bucketName);
            System.out.println("Removed CORS configuration.");

            // Retrieve and display the configuration to verify that it was
            // successfully deleted.
            configuration = s3Client.getBucketCrossOriginConfiguration(bucketName);
            printCORSConfiguration(configuration);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void printCORSConfiguration(BucketCrossOriginConfiguration configuration) {
        if (configuration == null) {
            System.out.println("Configuration is null.");
        } else {
            System.out.println("Configuration has " + configuration.getRules().size() + " rules\n");

            for (CORSRule rule : configuration.getRules()) {
                System.out.println("Rule ID: " + rule.getId());
                System.out.println("MaxAgeSeconds: " + rule.getMaxAgeSeconds());
                System.out.println("AllowedMethod: " + rule.getAllowedMethods());
                System.out.println("AllowedOrigins: " + rule.getAllowedOrigins());
                System.out.println("AllowedHeaders: " + rule.getAllowedHeaders());
                System.out.println("ExposeHeader: " + rule.getExposedHeaders());
                System.out.println();
            }
        }
    }
}
```

------
#### [ .NET ]

**Example**  
Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta [Getting Started with the AWS SDK for .NET nella AWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET *Developer Guide*.   

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class CORSTest
    {
        private const string bucketName = "*** bucket name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; 
        private static IAmazonS3 s3Client;

        public static void Main()
        {
            s3Client = new AmazonS3Client(bucketRegion);
            CORSConfigTestAsync().Wait();
        }
        private static async Task CORSConfigTestAsync()
        {
            try
            {
                // Create a new configuration request and add two rules    
                CORSConfiguration configuration = new CORSConfiguration
                {
                    Rules = new System.Collections.Generic.List<CORSRule>
                        {
                          new CORSRule
                          {
                            Id = "CORSRule1",
                            AllowedMethods = new List<string> {"PUT", "POST", "DELETE"},
                            AllowedOrigins = new List<string> {"http://*.example.com"}
                          },
                          new CORSRule
                          {
                            Id = "CORSRule2",
                            AllowedMethods = new List<string> {"GET"},
                            AllowedOrigins = new List<string> {"*"},
                            MaxAgeSeconds = 3000,
                            ExposeHeaders = new List<string> {"x-amz-server-side-encryption"}
                          }
                        }
                };

                // Add the configuration to the bucket. 
                await PutCORSConfigurationAsync(configuration);

                // Retrieve an existing configuration. 
                configuration = await RetrieveCORSConfigurationAsync();

                // Add a new rule.
                configuration.Rules.Add(new CORSRule
                {
                    Id = "CORSRule3",
                    AllowedMethods = new List<string> { "HEAD" },
                    AllowedOrigins = new List<string> { "http://www.example.com" }
                });

                // Add the configuration to the bucket. 
                await PutCORSConfigurationAsync(configuration);

                // Verify that there are now three rules.
                configuration = await RetrieveCORSConfigurationAsync();
                Console.WriteLine();
                Console.WriteLine("Expected # of rulest=3; found:{0}", configuration.Rules.Count);
                Console.WriteLine();
                Console.WriteLine("Pause before configuration delete. To continue, click Enter...");
                Console.ReadKey();

                // Delete the configuration.
                await DeleteCORSConfigurationAsync();

                // Retrieve a nonexistent configuration.
                configuration = await RetrieveCORSConfigurationAsync();
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }

        static async Task PutCORSConfigurationAsync(CORSConfiguration configuration)
        {

            PutCORSConfigurationRequest request = new PutCORSConfigurationRequest
            {
                BucketName = bucketName,
                Configuration = configuration
            };

            var response = await s3Client.PutCORSConfigurationAsync(request);
        }

        static async Task<CORSConfiguration> RetrieveCORSConfigurationAsync()
        {
            GetCORSConfigurationRequest request = new GetCORSConfigurationRequest
            {
                BucketName = bucketName

            };
            var response = await s3Client.GetCORSConfigurationAsync(request);
            var configuration = response.Configuration;
            PrintCORSRules(configuration);
            return configuration;
        }

        static async Task DeleteCORSConfigurationAsync()
        {
            DeleteCORSConfigurationRequest request = new DeleteCORSConfigurationRequest
            {
                BucketName = bucketName
            };
            await s3Client.DeleteCORSConfigurationAsync(request);
        }

        static void PrintCORSRules(CORSConfiguration configuration)
        {
            Console.WriteLine();

            if (configuration == null)
            {
                Console.WriteLine("\nConfiguration is null");
                return;
            }

            Console.WriteLine("Configuration has {0} rules:", configuration.Rules.Count);
            foreach (CORSRule rule in configuration.Rules)
            {
                Console.WriteLine("Rule ID: {0}", rule.Id);
                Console.WriteLine("MaxAgeSeconds: {0}", rule.MaxAgeSeconds);
                Console.WriteLine("AllowedMethod: {0}", string.Join(", ", rule.AllowedMethods.ToArray()));
                Console.WriteLine("AllowedOrigins: {0}", string.Join(", ", rule.AllowedOrigins.ToArray()));
                Console.WriteLine("AllowedHeaders: {0}", string.Join(", ", rule.AllowedHeaders.ToArray()));
                Console.WriteLine("ExposeHeader: {0}", string.Join(", ", rule.ExposeHeaders.ToArray()));
            }
        }
    }
}
```

------

## Utilizzo della REST API
<a name="EnableCorsUsingREST"></a>

Per impostare una configurazione CORS nel bucket, è possibile utilizzare la Console di gestione AWS. Se l'applicazione lo richiede, si può inoltre inviare le richieste REST direttamente. Le sezioni seguenti della *Documentazione d riferimento delle API di Amazon Simple Storage Service* descrivono le operazioni di REST API correlate alla configurazione CORS. 
+ [PutBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTcors.html)
+ [GetBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETcors.html)
+ [DeleteBucketCors](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETEcors.html)
+ [OPTIONS object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html)

# Test di CORS
<a name="testing-cors"></a>

Per testare la configurazione CORS, è possibile inviare una richiesta di verifica CORS con il metodo `OPTIONS` in modo che il server possa rispondere se l'invio della richiesta è accettabile. Quando Amazon S3 riceve una richiesta di verifica, S3 valuta la configurazione CORS per il bucket e utilizza la prima regola `CORSRule` corrispondente alla richiesta in entrata per abilitare una richiesta multiorigine. Per garantire la corrispondenza tra la regola e la richiesta, è necessario che siano soddisfatte le condizioni elencate di seguito. 
+ L'intestazione `Origin` di una richiesta CORS al bucket deve corrispondere alle origini dell'elemento `AllowedOrigins` nella configurazione CORS.
+ I metodi HTTP specificati in `Access-Control-Request-Method` in una richiesta CORS al bucket devono corrispondere al metodo o ai metodi elencati nell'elemento `AllowedMethods` della configurazione CORS.
+ Le intestazioni elencate nell'intestazione `Access-Control-Request-Headers` di una richiesta di verifica devono corrispondere alle intestazioni dell'elemento `AllowedHeaders` nella configurazione CORS. 

Di seguito è riportato un esempio di configurazione CORS. Per creare una configurazione CORS, consulta [Configurazione di CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). Per altri esempi di configurazione CORS, consulta [Elementi di una configurazione CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html). 

Per indicazioni sulla configurazione delle regole CORS e sulla relativa risoluzione dei problemi, consulta [Come faccio a configurare CORS in Amazon S3 e confermare le regole CORS utilizzando cURL?](https://repost.aws/knowledge-center/s3-configure-cors) nel Knowledge Center di AWS re:Post.

------
#### [ JSON ]

```
[
    {
        "AllowedHeaders": [
            "Authorization"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "http://www.example1.com"
        ],
        "ExposeHeaders":  [
             "x-amz-meta-custom-header"
        ]
    
    }
]
```

------

Per testare la configurazione CORS, è possibile inviare un controllo `OPTIONS` di verifica utilizzando il seguente comando CURL. CURL è uno strumento da riga di comando che può essere usato per interagire con S3. Per ulteriori informazioni, consulta [CURL](https://curl.se/). 

```
 curl -v -X OPTIONS \
  -H "Origin: http://www.example1.com" \
  -H "Access-Control-Request-Method: PUT" \
  -H "Access-Control-Request-Headers: Authorization" \
  -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\
     "http://bucket_name.s3.amazonaws.com/object_prefix_name"
```

Nell'esempio precedente, il comando `curl -v -x OPTIONS` viene utilizzato per inviare una richiesta di verifica a S3 per chiedere se S3 consente di inviare una richiesta `PUT` su un oggetto dall'origine incrociata `http://www.example1.com`. Le intestazioni `Access-Control-Request-Headers` e `Access-Control-Expose-Headers` sono opzionali.
+ In risposta all'intestazione `Access-Control-Request-Method` della richiesta `OPTIONS` di verifica, Amazon S3 restituisce l'elenco dei metodi consentiti se i metodi richiesti corrispondono. 
+ In risposta all'intestazione `Access-Control-Request-Headers` della richiesta `OPTIONS` di verifica, Amazon S3 restituisce l'elenco delle intestazioni consentite se le intestazioni richieste corrispondono.
+ In risposta all'intestazione `Access-Control-Expose-Headers` della richiesta `OPTIONS` di verifica, Amazon S3 restituisce un elenco di intestazioni consentite se le intestazioni richieste corrispondono alle intestazioni consentite a cui possono accedere gli script in esecuzione nel browser.

**Nota**  
Quando si invia una richiesta di verifica, se una delle intestazioni della richiesta CORS non è consentita, non viene restituita nessuna delle intestazioni CORS della risposta.

In risposta a questa richiesta `OPTIONS` di verifica, riceverai una risposta `200 OK`. Per i codici di errore più comuni ricevuti durante il test di CORS e per ulteriori informazioni per risolvere i problemi relativi a CORS, consulta [Risoluzione dei problemi di CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors-troubleshooting.html). 

```
< HTTP/1.1 200 OK
< Date: Fri, 12 Jul 2024 00:23:51 GMT
< Access-Control-Allow-Origin: http://www.example1.com
< Access-Control-Allow-Methods: GET, PUT, POST, DELETE 
< Access-Control-Allow-Headers: Authorization
< Access-Control-Expose-Headers: x-amz-meta-custom-header
< Access-Control-Allow-Credentials: true
< Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
< Server: AmazonS3
< Content-Length: 0
```

# Risoluzione dei problemi di CORS
<a name="cors-troubleshooting"></a>

I seguenti argomenti sono utili per risolvere alcuni problemi CORS comuni relativi a S3.

**Topics**
+ [Errore 403 Accesso negato: CORS non è abilitato per questo bucket](#cors-not-enabled)
+ [Errore 403 Accesso negato: questa richiesta CORS non è consentita](#cors-not-enabled)
+ [Intestazioni non trovate nella risposta CORS](#Headers-not-found)
+ [Considerazioni su CORS nelle integrazioni proxy S3](#cors-in-proxy)

## Errore 403 Accesso negato: CORS non è abilitato per questo bucket
<a name="cors-not-enabled"></a>

Il seguente errore `403 Forbidden` si verifica quando viene inviata una richiesta multiorigine ad Amazon S3 ma CORS non è configurato sul bucket S3. 

 Errore: HTTP/1.1 403 Accesso negato Risposta CORS: CORS non è abilitato per questo bucket. 

La configurazione CORS è un documento o una policy con regole che identificano le origini che potranno accedere al bucket, le operazioni (metodi HTTP) supportate per ogni origine e altre informazioni specifiche dell'operazione. Scopri come [configurare CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html) su S3 utilizzando la console AWS SDKs Amazon S3 e l'API REST. Per ulteriori informazioni su CORS ed esempi di configurazione CORS, consulta [Elementi di CORS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ManageCorsUsing.html#cors-example-1).

## Errore 403 Accesso negato: questa richiesta CORS non è consentita
<a name="cors-not-enabled"></a>

Il seguente errore `403 Forbidden` viene ricevuto quando una regola CORS nella configurazione CORS non corrisponde ai dati nella richiesta.

Errore: HTTP/1.1 403 Accesso negato Risposta CORS: questa richiesta CORS non è consentita.

Di conseguenza, questo errore `403 Forbidden` può verificarsi per diversi motivi:
+ L'origine non è consentita.
+ I metodi non sono consentiti.
+ Le intestazione richieste non sono consentite.

Per ogni richiesta ricevuta da Amazon S3, è necessario disporre di una regola CORS nella configurazione CORS che corrisponda ai dati nella richiesta. 

### L'origine non è consentita
<a name="Origin-not-allowed"></a>

 L'intestazione `Origin` di una richiesta CORS al bucket deve corrispondere alle origini dell'elemento `AllowedOrigins` nella configurazione CORS. Un carattere jolly (`"*"`) nell'elemento `AllowedOrigins` corrisponderà a tutti i metodi HTTP. Per ulteriori informazioni su come aggiornare l'elemento `AllowedOrigins`, consulta [Configuring cross-origin resource sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html).

 Ad esempio, se nell'elemento `AllowedOrigins` è incluso solo il dominio `http://www.example1.com`, una richiesta CORS inviata dal dominio `http://www.example2.com` riceverà l'errore `403 Forbidden`. 

L'esempio seguente mostra parte di una configurazione CORS che include il dominio `http://www.example1.com` nell'elemento `AllowedOrigins`. 

```
"AllowedOrigins":[
   "http://www.example1.com"
]
```

Affinché una richiesta CORS inviata dal dominio `http://www.example2.com` abbia esito positivo, il dominio `http://www.example2.com` deve essere incluso nell'elemento `AllowedOrigins` di configurazione CORS. 

```
"AllowedOrigins":[
   "http://www.example1.com"
   "http://www.example2.com"
]
```

### I metodi non sono consentiti
<a name="Methods-not-allowed"></a>

 I metodi HTTP specificati in `Access-Control-Request-Method` in una richiesta CORS al bucket devono corrispondere al metodo o ai metodi elencati nell'elemento `AllowedMethods` della configurazione CORS. Un carattere jolly (`"*"`) in `AllowedMethods` corrisponderà a tutti i metodi HTTP. Per ulteriori informazioni su come aggiornare l'elemento `AllowedOrigins`, consulta [Configuring cross-origin resource sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). 

Nella configurazione CORS è possibile specificare i metodi seguenti nell'elemento `AllowedMethods`:
+ `GET`
+ `PUT`
+ `POST`
+ `DELETE`
+ `HEAD`

L'esempio seguente mostra parte di una configurazione CORS che include il metodo `GET` nell'elemento `AllowedMethods`. Solo le richieste che includono il metodo `GET` avranno esito positivo. 

```
"AllowedMethods":[
   "GET"
]
```

 Se un metodo HTTP (ad esempio, `PUT`) è stato utilizzato in una richiesta CORS o incluso in una richiesta di verifica CORS al bucket ma il metodo non è presente nella configurazione CORS, la richiesta genererà un errore `403 Forbidden`. Per consentire questa richiesta CORS o richiesta di verifica CORS, il metodo `PUT` deve essere aggiunto alla configurazione CORS. 

```
"AllowedMethods":[
   "GET"
   "PUT"
]
```

### Le intestazione richieste non sono consentite
<a name="Headers-not-allowed"></a>

 Le intestazioni elencate nell'intestazione `Access-Control-Request-Headers` di una richiesta di verifica devono corrispondere alle intestazioni dell'elemento `AllowedHeaders` nella configurazione CORS. Per un elenco di intestazioni comuni che possono essere utilizzate nelle richieste ad Amazon S3, consulta [Common Request Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). Per ulteriori informazioni su come aggiornare l'elemento `AllowedHeaders`, consulta [Configuring cross-origin resource sharing (CORS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html). 

L'esempio seguente mostra parte di una configurazione CORS che include l'intestazione `Authorization` nell'elemento `AllowedHeaders`. Solo le richieste per l'intestazione `Authorization` avranno esito positivo. 

```
"AllowedHeaders":  [
    "Authorization"
]
```

 Se un'intestazione (ad esempio, `Content-MD5`) è stata inclusa in una richiesta CORS ma l'intestazione non è presente nella configurazione CORS, la richiesta genererà un errore `403 Forbidden`. Per consentire questa richiesta CORS, l'intestazione `Content-MD5` deve essere aggiunta alla configurazione CORS. Se si desidera passare entrambe le intestazioni `Authorization` e `Content-MD5` in una richiesta CORS al bucket, verificare che entrambe le intestazioni siano incluse nell'elemento `AllowedHeaders` della configurazione CORS. 

```
"AllowedHeaders":  [
    "Authorization"
    "Content-MD5"
]
```

## Intestazioni non trovate nella risposta CORS
<a name="Headers-not-found"></a>

 L'elemento `ExposeHeaders` nella configurazione CORS identifica le intestazioni di risposta che si desidera rendere accessibili agli script e alle applicazioni in esecuzione nei browser, in risposta a una richiesta CORS.

Se gli oggetti archiviati nel bucket S3 contengono metadati definiti dall'utente (ad esempio`x-amz-meta-custom-header`) oltre ai dati di risposta, questa intestazione personalizzata potrebbe contenere metadati o informazioni aggiuntivi a cui desideri accedere dal codice lato client. JavaScript Tuttavia, per impostazione predefinita, i browser bloccano l'accesso alle intestazioni personalizzate per motivi di sicurezza. Per consentire al lato client di accedere alle intestazioni personalizzate, JavaScript è necessario includere l'intestazione nella configurazione CORS.

 Nell'esempio seguente, l'intestazione `x-amz-meta-custom-header1` è inclusa nell'elemento `ExposeHeaders`. `x-amz-meta-custom-header2` non è incluso nell'elemento `ExposeHeaders` e manca nella configurazione CORS. Nella risposta, verranno restituiti solo i valori inclusi nell'elemento`ExposeHeaders`. Se la richiesta includesse l'intestazione `x-amz-meta-custom-header2` nell'intestazione `Access-Control-Expose-Headers`, la risposta restituirebbe comunque `200 OK`. Tuttavia, solo l'intestazione consentita, ad esempio `x-amz-meta-custom-header`, verrà restituita e mostrata nella risposta. 

```
"ExposeHeaders":  [
    "x-amz-meta-custom-header1"
]
```

 Per garantire che tutte le intestazioni vengano visualizzate nella risposta, aggiungi tutte le intestazioni consentite all'elemento `ExposeHeaders` nella configurazione CORS come mostrato di seguito. 

```
"ExposeHeaders":  [
    "x-amz-meta-custom-header1",
    "x-amz-meta-custom-header2"
]
```

## Considerazioni su CORS nelle integrazioni proxy S3
<a name="cors-in-proxy"></a>

Se riscontrate errori e avete già controllato la configurazione CORS sul vostro bucket S3 e la richiesta multiorigine viene inviata a proxy come, provate quanto segue: AWS CloudFront
+ Configurare le impostazioni per consentire il metodo `OPTIONS` per le richieste HTTP.
+ Configurare il proxy per inoltrare le seguenti intestazioni: `Origin`, `Access-Control-Request-Headers` e `Access-Control-Request-Method`.
+ Configurare le impostazioni del proxy in modo da includere l’intestazione di origine nella relativa chiave di cache. Questo è importante perché i proxy di caching che non includono l’intestazione di origine nella loro chiave di cache potrebbero restituire risposte memorizzate che non contengono le intestazioni CORS appropriate per le diverse origini.

Alcuni proxy forniscono funzionalità predefinite per le richieste CORS. Ad esempio, in CloudFront, puoi configurare una politica che includa le intestazioni 

 che abilitano le richieste CORS (Cross-Origin Resource Sharing) quando l'origine è un bucket Amazon S3.

 Questa policy ha le seguenti impostazioni: 
+ Intestazioni incluse nelle richieste di origine:

   `Origin`

   `Access-Control-Request-Headers`

   `Access-Control-Request-Method`
+ **Cookie inclusi nelle richieste di origine:** Nessuno
+ Stringhe di query incluse nelle richieste di origine: Nessuna

Per ulteriori informazioni, consulta [Controllare le richieste di origine con una policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.htm) e [Use managed Origin Request Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html#managed-origin-request-policy-cors-s3) nella *CloudFront Developer Guide*. 

# Tutorial per siti web statici
<a name="static-website-tutorials"></a>

I seguenti tutorial o procedure dettagliate presentano procedure complete su come creare e configurare un bucket Amazon S3 per uso generico per l'hosting di siti web statici e l'hosting di streaming video on demand. Lo scopo di questi tutorial è di fornire linee guida generali. I tutorial presentati sono solo esempi con nomi di bucket e utenti destinati a essere usati in un ambiente di laboratorio. Non devono essere utilizzati direttamente nell'ambiente di produzione, senza un'accurata opera di revisione e adattamento alle necessità esclusive del tuo ambiente lavorativo. 
+ [Hosting di video in streaming su richiesta con Amazon S3, CloudFront Amazon e Amazon Route](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tutorial-s3-cloudfront-route53-video-streaming) 53: puoi utilizzare Amazon S3 con CloudFront Amazon per ospitare video per la visualizzazione su richiesta in modo sicuro e scalabile. Una volta che il video è stato confezionato nei formati giusti, puoi archiviarlo su un server o in un bucket generico S3 e poi distribuirlo quando gli spettatori lo richiedono. CloudFront In questo tutorial, imparerai come configurare il tuo bucket generico per ospitare lo streaming video su richiesta utilizzando CloudFront for delivery e Amazon Route 53 per Domain Name System (DNS) e la gestione personalizzata del dominio. CloudFront serve il video dalla sua cache, recuperandolo dal tuo bucket generico solo se non è già memorizzato nella cache. Ciò accelera la distribuzione dei video agli spettatori a livello globale con bassa latenza e velocità effettiva e velocità di trasferimento elevate. Per ulteriori informazioni sulla gestione della CloudFront cache, consulta [Optimizing caching and availability](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html) nella *Amazon CloudFront * Developer Guide.
+ [Configurazione di un sito web statico](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html): è possibile configurare un bucket per uso generico in modo da funzionare come un sito web. Questo tutorial illustra i passaggi per ospitare un sito web su Amazon S3, tra cui la creazione di un bucket, l'abilitazione dell'hosting di siti web statici nella console S3, la creazione di un documento indice e la creazione di un documento di errore. Per ulteriori informazioni, consulta [Hosting di un sito web statico tramite Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html).
+ [Configurazione di un sito web statico utilizzando un dominio personalizzato registrato con Route 53](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html): è possibile creare e configurare un bucket per uso generico per ospitare un sito web statico e creare reindirizzamenti su S3 per un sito web con un nome di dominio personalizzato registrato con Amazon Route 53. Route 53 viene utilizzato per registrare domini e definire dove instradare il traffico Internet per il dominio. Questo tutorial illustra come creare record di alias Route 53 che instradano il traffico per un dominio e un sottodominio a un bucket per uso generico contenente un file HTML. Per ulteriori informazioni, consulta [Utilizzo del proprio dominio per un sito web statico in un bucket Amazon S3](https://docs.aws.amazon.com//Route53/latest/DeveloperGuide/getting-started-s3.html) nella *Guida per gli sviluppatori di Amazon Route 53*. Dopo aver completato questo tutorial, puoi opzionalmente utilizzarlo CloudFront per migliorare le prestazioni del tuo sito Web. Per ulteriori informazioni, consulta [Velocizzare il tuo sito Web con Amazon CloudFront](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-cloudfront-walkthrough.html). 
+ [Implementazione di un sito Web statico su AWS Amplify Hosting da un bucket generico S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify): ti consigliamo di utilizzare [AWS Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) Hosting per ospitare contenuti di siti Web statici archiviati su S3. Amplify Hosting è un servizio completamente gestito che semplifica la distribuzione dei siti Web su una rete di distribuzione dei contenuti (CDN) disponibile a livello globale alimentata da CloudFront Amazon, consentendo l'hosting sicuro di siti Web statici senza una configurazione estesa. Con AWS Amplify Hosting, puoi selezionare la posizione dei tuoi oggetti all'interno del tuo bucket generico, distribuire i tuoi contenuti su un CDN gestito e generare un URL HTTPS pubblico per rendere il tuo sito web accessibile ovunque. Per ulteriori informazioni, consulta [Implementazione di un sito web statico da S3 utilizzando la console Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) nella *Guida per l'utente di Hosting AWS Amplify*.

# Tutorial: hosting di video in streaming su richiesta con Amazon S3, Amazon e CloudFront Amazon Route 53
<a name="tutorial-s3-cloudfront-route53-video-streaming"></a>

Puoi usare Amazon S3 con Amazon CloudFront per ospitare video per la visualizzazione su richiesta in modo sicuro e scalabile. Nello streaming di video on demand (VOD), i contenuti video vengono archiviati su un server e gli spettatori possono guardarli in qualsiasi momento.

CloudFront è un servizio di rete per la distribuzione di contenuti (CDN) veloce, altamente sicuro e programmabile. CloudFront può distribuire i tuoi contenuti in modo sicuro tramite HTTPS da tutte le CloudFront edge location in tutto il mondo. Per ulteriori informazioni su CloudFront, consulta [What is Amazon CloudFront?](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) nella *Amazon CloudFront Developer Guide*.

CloudFront la memorizzazione nella cache riduce il numero di richieste a cui il server di origine deve rispondere direttamente. Quando uno spettatore  (utente finale) richiede un video con cui servite CloudFront, la richiesta viene indirizzata a una location periferica più vicina a dove si trova lo spettatore. CloudFront serve il video dalla sua cache, recuperandolo dal bucket S3 solo se non è già memorizzato nella cache. Ciò accelera la distribuzione dei video agli spettatori a livello globale con bassa latenza e velocità effettiva e velocità di trasferimento elevate. Per ulteriori informazioni sulla gestione della CloudFront cache, consulta [Optimizing caching and availability](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html) nella *Amazon CloudFront * Developer Guide.

![\[Diagramma che mostra come funziona il meccanismo di memorizzazione nella cache. CloudFront\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/cf-example-image-global.png)


**Obiettivo**  
In questo tutorial, configurerai un bucket S3 per ospitare lo streaming video su richiesta utilizzando CloudFront for delivery e Amazon Route 53 per Domain Name System (DNS) e la gestione personalizzata del dominio.

**Topics**
+ [Prerequisiti: registrazione e configurazione di un dominio personalizzato con Route 53](#cf-s3-prerequisites)
+ [Fase 1: Creazione di un bucket S3](#cf-s3-step1)
+ [Fase 2: Caricamento di un video nel bucket S3](#cf-s3-step2)
+ [Fase 3: Creare un'identità di accesso all' CloudFront origine](#cf-s3-step3)
+ [Fase 4: Creare una CloudFront distribuzione](#cf-s3-step4)
+ [Passaggio 5: Accedi al video tramite la distribuzione CloudFront](#cf-s3-step5)
+ [Passaggio 6: configura la CloudFront distribuzione per utilizzare il nome di dominio personalizzato](#cf-s3-step6)
+ [Passaggio 7: accedi al video S3 tramite la CloudFront distribuzione con il nome di dominio personalizzato](#cf-s3-step7)
+ [(Facoltativo) Passaggio 8: Visualizza i dati sulle richieste ricevute dalla tua CloudFront distribuzione](#cf-s3-step8)
+ [Fase 9: Pulizia](#cf-s3-step9)
+ [Fasi successive](#cf-s3-next-steps)

## Prerequisiti: registrazione e configurazione di un dominio personalizzato con Route 53
<a name="cf-s3-prerequisites"></a>

Prima di iniziare questo tutorial, devi registrare e configurare un dominio personalizzato (ad esempio,**example.com**) con Route 53 in modo da poter configurare la CloudFront distribuzione per utilizzare un nome di dominio personalizzato in un secondo momento. 

Senza un nome di dominio personalizzato, il tuo video S3 è accessibile pubblicamente e ospitato tramite CloudFront un URL simile al seguente: 

```
https://CloudFront distribution domain name/Path to an S3 video
```

Ad esempio, **https://d111111abcdef8.cloudfront.net/sample.mp4**.

Dopo aver configurato la CloudFront distribuzione per utilizzare un nome di dominio personalizzato configurato con Route 53, il video S3 è accessibile pubblicamente e ospitato tramite CloudFront un URL simile al seguente: 

```
https://CloudFront distribution alternate domain name/Path to an S3 video
```

Ad esempio, **https://www.example.com/sample.mp4**. Un nome di dominio personalizzato è più semplice e intuitivo da usare per gli spettatori.

****  
Per registrare un nome di dominio, consulta [Registrazione dei nomi di dominio utilizzando Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) nella *Guida per gli sviluppatori di Amazon Route 53*.

Quando registri un nome di dominio con Route 53, Route 53 crea automaticamente la zona ospitata, che utilizzerai più avanti in questo tutorial. Questa zona ospitata è il luogo in cui memorizzi le informazioni su come indirizzare il traffico per il tuo dominio, ad esempio, verso un'istanza o una CloudFront distribuzione Amazon EC2. 

Sono previste tariffe associate alla registrazione del dominio, alla tua zona ospitata e alle query DNS ricevute dal tuo dominio. Per ulteriori informazioni, consulta la [pagina dei Prezzi Amazon Route 53](https://aws.amazon.com/route53/pricing/). 

**Nota**  
Quando registri un dominio, il costo è immediato ed è irreversibile. Puoi scegliere di non rinnovare automaticamente il dominio, ma il pagamento è anticipato e resti proprietario per un anno. Per maggiori informazioni, consulta [Registrazione di un nuovo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) nella *Guida per gli sviluppatori di Amazon Route 53*.

## Fase 1: Creazione di un bucket S3
<a name="cf-s3-step1"></a>

Devi creare un bucket per archiviare il video originale che intendi riprodurre in streaming.

**Per creare un bucket**

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nella barra di navigazione nella parte superiore della pagina, scegli il nome del file attualmente visualizzato Regione AWS. Quindi, scegli la Regione in cui creare un bucket. 
**Nota**  
Scegli una regione nelle tue vicinanze per ridurre al minimo la latenza e i costi o essere conforme ai requisiti normativi. Gli oggetti archiviati in una regione non la lasciano mai a meno che non vengano trasferiti esplicitamente in un'altra regione. Per un elenco di Amazon S3 Regioni AWS, consulta gli [Servizio AWS endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in. *Riferimenti generali di Amazon Web Services*

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Scegliere **Create bucket (Crea bucket)**. Viene visualizzata la pagina **Create bucket (Crea bucket)**.

1. Per **Nome bucket**, immetti un nome per il bucket, ad esempio **tutorial-bucket**. 

   Per ulteriori informazioni sulle regole di denominazione del bucket in Amazon S3, consulta [Regole di denominazione dei bucket per uso generico](bucketnamingrules.md).

1. Per **Regione**, scegli Regione AWS dove vuoi che risieda il bucket. 

   Se possibile, dovresti scegliere la località della regione che probabilmente sarà più vicina alla maggior parte dei tuoi spettatori. Per ulteriori informazioni sulla Regione del bucket, consulta [Panoramica dei bucket per uso generico](UsingBucket.md).

1. In **Block Public Access settings for this bucket** (Blocca le impostazioni di accesso pubblico per questo bucket), mantieni le impostazioni predefinite (è abilitato **Block *all *public access** (Blocca tutto l'accesso pubblico). 

   Anche se l'opzione **Blocca *tutti gli accessi* pubblici** è abilitata, gli spettatori possono comunque accedere al video caricato tramite. CloudFront Questa funzionalità è uno dei principali vantaggi dell'utilizzo CloudFront per ospitare un video archiviato in S3.

   È consigliabile di lasciare tutte le impostazioni abilitate, a meno che non abbia bisogno di disattivarne una o più per il caso d'uso. Per ulteriori informazioni sul blocco dell'accesso pubblico, consulta [Blocco dell'accesso pubblico allo storage Amazon S3](access-control-block-public-access.md).

1. Mantieni le impostazioni rimanenti impostate sui valori di default. 

   (Facoltativo) Se desideri configurare ulteriori impostazioni del bucket per il tuo caso d'uso specifico, consulta [Creazione di un bucket per uso generico](create-bucket-overview.md).

1. Seleziona **Crea bucket**.

## Fase 2: Caricamento di un video nel bucket S3
<a name="cf-s3-step2"></a>

La procedura riportata di seguito illustra come caricare un file video in un bucket S3 utilizzando la console. Quando carichi un video in S3, puoi anche possibile utilizzare [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) per configurare trasferimenti di file veloci e sicuri. Transfer Acceleration può velocizzare il caricamento dei video nel bucket S3 per il trasferimento a lunga distanza di video di grandi dimensioni. Per ulteriori informazioni, consulta [Configurazione di trasferimenti veloci e sicuri di file con Amazon S3 Transfer Acceleration](transfer-acceleration.md). 

**Per caricare un file nel bucket**

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco **Bucket per uso generico**, seleziona il nome del bucket che hai creato nella [Fase 1](#cf-s3-step1) (ad es. **tutorial-bucket**) in cui caricare il file.

1. Nella scheda **Oggetti** del bucket seleziona **Carica**.

1. Nella pagina **Upload** (Caricamento), sotto **Files and Folders** (File e cartelle) scegli **Add Files** (Aggiungi file).

1. Seleziona un file da caricare, quindi scegli **Apri**.

   Ad esempio, puoi caricare un file video denominato `sample.mp4`.

1. Scegli **Carica**.

## Fase 3: Creare un'identità di accesso all' CloudFront origine
<a name="cf-s3-step3"></a>

Per limitare l'accesso diretto al video dal tuo bucket S3, crea un CloudFront utente speciale chiamato Origin Access Identity (OAI). In questo tutorial, assocerai l'OAI alla distribuzione. Utilizzando un OAI, ti assicuri che gli spettatori non possano ignorarlo CloudFront e ricevere il video direttamente dal bucket S3. Solo l' CloudFront OAI può accedere al file nel bucket S3. Per ulteriori informazioni, consulta [Limitare l'accesso a un'origine Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) nella *Amazon CloudFront Developer* Guide.



**Importante**  
Se il bucket che utilizzi per ospitare il tuo sito Web statico è stato crittografato utilizzando la crittografia lato server con AWS Key Management Service (AWS KMS) chiavi (SSE-KMS), devi utilizzare Origin Access Control (OAC) anziché Origin Access Identity (OAI) per proteggere l'origine. L’identità OAI non supporta SSE-KMS, quindi è necessario utilizzare il controllo OAC. Per ulteriori informazioni su OAC, consulta [Limitare l'accesso a un'origine Amazon S3](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) nella * CloudFront Amazon Developer Guide*.

**Per creare un OAI CloudFront**

1. Accedi a Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel pannello di navigazione sulla sinistra, nella sezione **Sicurezza**, scegli **Accesso origine**.

1. Nella scheda **Identità**, scegli **Crea identità di accesso origine**.

1. ImmInserisci un nome (ad esempio, **S3-OAI**) come nuova identità di accesso origine.

1. Scegli **Create** (Crea).

## Fase 4: Creare una CloudFront distribuzione
<a name="cf-s3-step4"></a>

Per CloudFront utilizzarlo per servire e distribuire il video nel tuo bucket S3, devi creare una CloudFront distribuzione. 

**Topics**
+ [Crea una distribuzione CloudFront](#cf-s3-step4-create-cloudfront)
+ [Revisione della policy del bucket](#cf-s3-step4-review-bucket-policy)

### Crea una distribuzione CloudFront
<a name="cf-s3-step4-create-cloudfront"></a>

1. Accedi a Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

1. Scegli **Create Distribution** (Crea distribuzione).

1. Nella sezione **Origine**, per **Dominio origine** scegli il nome di dominio dell'origine S3, che inizia con il nome del bucket S3 creato nella [Fase 1](#cf-s3-step1) (ad esempio, **tutorial-bucket**).

1. Per **Accesso origine**, seleziona **Identità di accesso legacy**.

1. In **Identità di accesso origine**, scegli l'identità di accesso all'origine esistente creata nella [Fase 3](#cf-s3-step3) (ad esempio, **S3-OAI**).

1. In **Bucket policy** (Policy del bucket), scegli **Yes, update the bucket policy** (Sì, aggiorna la policy del bucket). 

1. In **Funzionamento cache predefinito**, nella sezione **Policy protocollo visualizzatore**, scegli **Reindirizza HTTP a HTTPS**. 

   Questo significa che le richieste HTTP vengono reindirizzate automaticamente a HTTPS per proteggere il tuo sito Web e proteggere i dati degli spettatori. 

1. Per le altre impostazioni nella sezione **Default Cache Behavior Settings (Modifica impostazioni comportamento cache)**, accettare i valori predefiniti.

   (Facoltativo) Puoi controllare per quanto tempo il file rimane nella CloudFront cache prima di CloudFront inoltrare un'altra richiesta all'origine. Riducendo la durata, puoi distribuire contenuti dinamici. Aumentando la durata, i visualizzatori otterranno prestazioni migliori, poiché è più probabile che i file vengano distribuiti direttamente dalla cache edge. Una durata maggiore riduce anche il carico sul server di origine. Per ulteriori informazioni, consulta [Gestione della durata della permanenza dei contenuti nella cache (scadenza)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) nella *Amazon CloudFront Developer Guide*.

1. Per le altre sezioni, mantieni le impostazioni rimanenti impostate sui valori predefiniti. 

   Per ulteriori informazioni sulle diverse opzioni di impostazione, consulta [Valori che specifichi quando crei o aggiorni una distribuzione](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html) nella *Amazon CloudFront Developer Guide*. 

1. Nella parte inferiore della pagina, scegli **Create distribution** (Crea distribuzione). 

1. Nella scheda **Generale** della tua CloudFront distribuzione, in **Dettagli**, il valore della colonna **Ultima modifica** per la tua distribuzione cambia da **Distribuzione** al timestamp dell'ultima modifica della distribuzione. In genere sono necessari pochi minuti. 

### Revisione della policy del bucket
<a name="cf-s3-step4-review-bucket-policy"></a>

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco dei **bucket**, scegli il nome del bucket che hai usato in precedenza come origine della tua CloudFront distribuzione (ad esempio,). **tutorial-bucket**

1. Scegli la scheda **Autorizzazioni**.

1. Nella casella di testo **Bucket policy** (Policy del bucket) conferma di visualizzare una formulazione simile alla seguente: 

   ```
   {
       "Version": "2008-10-17",		 	 	 
       "Id": "PolicyForCloudFrontPrivateContent",
       "Statement": [
           {
               "Sid": "1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
               },
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::tutorial-bucket/*"
           }
       ]
   }
   ```

   Questa è l'affermazione che la tua CloudFront distribuzione ha aggiunto alla tua policy sui bucket quando hai scelto **Sì, aggiorna prima la policy del bucket**.

   Questo aggiornamento della policy sui bucket indica che hai configurato correttamente la CloudFront distribuzione per limitare l'accesso al bucket S3. A causa di questa restrizione, è possibile accedere agli oggetti nel bucket solo tramite la tua distribuzione. CloudFront 

## Passaggio 5: Accedi al video tramite la distribuzione CloudFront
<a name="cf-s3-step5"></a>

Ora CloudFront puoi servire il video memorizzato nel tuo bucket S3. Per accedere al video tramite CloudFront, devi combinare il nome del dominio di CloudFront distribuzione con il percorso del video nel bucket S3.

**Per creare un URL per il video S3 utilizzando il nome del CloudFront dominio di distribuzione**

1. Accedi a Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

1. Per ottenere il nome di dominio della distribuzione, procedi come indicato di seguito:

   1. Nella colonna **Origins**, trova la CloudFront distribuzione corretta cercando il nome di origine, che inizia con il bucket S3 che hai creato nel [passaggio 1](#cf-s3-step1) (ad esempio,**tutorial-bucket**). 

   1. Dopo aver trovato la distribuzione nell'elenco, amplia la colonna **Nome di dominio per copiare il valore del nome** di dominio per la tua distribuzione. CloudFront

1. In una nuova scheda del browser, incolla il nome di dominio della distribuzione copiato in precedenza. 

1. Torna alla scheda precedente del browser e apri la console S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco **Buckets** (Bucket) scegli il nome del bucket creato nella [Fase 1](#cf-s3-step1) (ad esempio, **tutorial-bucket**). 

1. Nell'elenco **Objects** (Oggetti) scegli il nome del video che hai caricato nella [Fase 2](#cf-s3-step2) ai fini dello streaming (ad esempio, `sample.mp4`). 

1. Nella pagina prodotto dell'oggetto, nella**Panoramica dell'oggetto**sezione, copiare il valore della **Chiave**. Questo valore è il percorso dell'oggetto video caricato nel bucket S3. 

1. Torna alla scheda del browser in cui hai precedentemente incollato il nome del dominio di distribuzione, inserisci una barra di inoltro (**/**) dopo il nome del dominio di distribuzione, quindi incolla il percorso al video copiato in precedenza (ad esempio,`sample.mp4`). 

   Ora, il tuo video S3 è accessibile CloudFront al pubblico e ospitato tramite un URL simile al seguente: 

   ```
   https://CloudFront distribution domain name/Path to the S3 video
   ```

   Sostituisci *CloudFront distribution domain name* e *Path to the S3 video* con i valori appropriati. Un esempio di URL è **https://d111111abcdef8.cloudfront.net/sample.mp4**.

## Passaggio 6: configura la CloudFront distribuzione per utilizzare il nome di dominio personalizzato
<a name="cf-s3-step6"></a>

Per utilizzare il tuo nome di dominio anziché il nome di CloudFront dominio nell'URL per accedere al video S3, aggiungi un nome di dominio alternativo alla tua CloudFront distribuzione. 

**Topics**
+ [Richiesta di un certificato SSL](#cf-s3-step6-create-SSL)
+ [Aggiungi il nome di dominio alternativo alla tua distribuzione CloudFront](#cf-s3-step6-custom-domain)
+ [Crea un record DNS per indirizzare il traffico dal tuo nome di dominio alternativo al nome di dominio della tua distribuzione CloudFront](#cf-s3-step6-DNS-record)
+ [Verifica se IPv6 è abilitato per la tua distribuzione e, se necessario, crea un altro record DNS](#s3-step6-ipv6)

### Richiesta di un certificato SSL
<a name="cf-s3-step6-create-SSL"></a>

Per consentire ai tuoi spettatori di utilizzare HTTPS e il tuo nome di dominio personalizzato nell'URL per lo streaming video, utilizza AWS Certificate Manager (ACM) per richiedere un certificato Secure Sockets Layer (SSL). Il certificato SSL stabilisce una connessione di rete crittografata al sito Web. 

1. Accedi Console di gestione AWS e apri la console ACM all'indirizzo. [https://console.aws.amazon.com/acm/](https://console.aws.amazon.com/acm/)

1. Se viene visualizzata la pagina introduttiva, in **Provision certificates** (Fornisci certificati), scegli **Get Started** (Inizia).

1. Nella pagina **Richiedi un certificato** scegli **Richiedi un certificato pubblico** e poi di nuovo **Richiedi un certificato**.

1. Nella pagina **Aggiungi nomi di dominio**, inserisci il nome di dominio completo (FQDN) del sito che desideri proteggere con un certificato. SSL/TLS Utilizza un asterisco (`*`) per richiedere un certificato jolly che protegge diversi nomi di siti nello stesso dominio. In questo tutorial, digita **\$1** e il nome di dominio personalizzato configurato in [Prerequisiti](#cf-s3-prerequisites). Ad esempio, immettere**\$1.example.com**e quindi scegliere**Successivo**. 

   Per ulteriori informazioni, consulta [Per richiedere un certificato pubblico ACM (console)](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console) nella *Guida per l'utente di AWS Certificate Manager *.

1. Nella pagina **Select validation method** (Seleziona metodo di convalida), scegli **DNS validation** (Convalida DNS). Quindi, seleziona **Successivo**. 

   Se si è in grado di modificare la configurazione DNS, si consiglia di utilizzare la convalida del dominio DNS anziché la convalida email. La convalida del DNS offre diversi vantaggi rispetto alla convalida dell'email. Per ulteriori informazioni, consulta[Opzione 1: convalida DNS](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)nella*AWS Certificate Manager Guida per l'utente di*. 

1. (Facoltativo) Nella pagina **Aggiungi tag** puoi contrassegnare facoltativamente il certificato con metadati.

1. Scegli **Rivedi**. 

1. Nella pagina **Revisione**, verifica che le informazioni presenti in **Nome dominio** e **Metodo di convalida** siano corrette. Dopodiché, seleziona **Confirm and request **(Conferma e richiedi). 

   La pagina **Convalida** mostra che la richiesta è in fase di elaborazione e che il dominio certificato viene convalidato. I certificati in attesa di convalida hanno lo stato **Pending validation** (Convalida in attesa). 

1. Nella pagina **Convalida**, scegli la freccia verso il basso a sinistra del nome di dominio personalizzato e seleziona **Crea registro in Route 53** per convalidare la proprietà del dominio tramite DNS.

   In questo modo viene aggiunto un record CNAME fornito da AWS Certificate Manager alla configurazione DNS.

1. Nella casella di dialogo **Create record in Route 53** (Crea registro in Route 53), scegli **Create** (Crea).

   La pagina **Convalida** dovrebbe ora visualizzare la notifica di stato **Riuscito** in basso.

1. Scegli **Continue** (Continua) per visualizzare la pagina elenco **Certificates** (Certificati). 

   Lo **Stato** del nuovo certificato passerà da **Convalida in attesa** a **Emesso** entro 30 minuti.

### Aggiungi il nome di dominio alternativo alla tua distribuzione CloudFront
<a name="cf-s3-step6-custom-domain"></a>

1. Accedi a Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

1. Scegli l'ID della distribuzione creata nella [Fase 4](#cf-s3-step3).

1. Sul**Generali**tab, vai al**Impostazioni**sezione, e scegli**Modificare**.

1. Nella pagina **Modifica impostazioni**, per **Nome di dominio alternativo (CNAME), *facoltativo***, scegli **Aggiungi elemento** per aggiungere i nomi di dominio personalizzati che desideri utilizzare nell'URL del video S3 servito da questa distribuzione. CloudFront 

   In questo tutorial, ad esempio, se desideri instradare il traffico a un sottodominio, ad esempio `www.example.com`, inserisci il nome del sottodominio (`www`) con il nome di dominio (`example.com`). In particolare, inserisci **www.example.com**. 
**Nota**  
Il nome di dominio alternativo (CNAME) che aggiungi deve essere coperto dal certificato SSL che hai precedentemente allegato alla tua distribuzione. CloudFront

1. In **Certificato SSL personalizzato - *facoltativo***, scegli il certificato SSL richiesto in precedenza (ad esempio, **\$1.example.com**).
**Nota**  
Se il certificato SSL non viene visualizzato immediatamente dopo averlo richiesto, attendi 30 minuti, quindi aggiorna l'elenco fino a quando il certificato SSL diventa disponibile per la selezione.

1. Mantieni le impostazioni rimanenti impostate sui valori predefiniti. Scegli **Save changes** (Salva modifiche). 

1. Nella scheda **Generale** per la distribuzione, attendi che il valore di **Ultima modifica** passi da **Implementazione in corso** al timestamp dell'ultima modifica della distribuzione. 

### Crea un record DNS per indirizzare il traffico dal tuo nome di dominio alternativo al nome di dominio della tua distribuzione CloudFront
<a name="cf-s3-step6-DNS-record"></a>

1. Accedi Console di gestione AWS e apri la console Route 53 all'indirizzo. [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)

1. Nel riquadro di navigazione a sinistra, scegliere **Hosted zones (Zone ospitate)**.

1. Nella pagina **Zone ospitate** seleziona il nome della zona ospitata creata da Route 53 in [Prerequisiti](#cf-s3-prerequisites) (ad esempio, **example.com**).

1. Scegliere**Creare record**e quindi usa il**Creazione rapida record**metodo. 

1. Per **Record name**, mantieni il valore del nome del record uguale al nome di dominio alternativo della CloudFront distribuzione che hai aggiunto in precedenza.

   In questo tutorial, per instradare il traffico a un sottodominio, ad esempio `www.example.com`, inserisci il nome del sottodominio senza il nome di dominio. Ad esempio, inserisci solo **www** nel campo di testo prima del nome di dominio personalizzato.

1. Per **Tipo di record**, scegli **A - Indirizza il traffico verso un IPv4 indirizzo e alcune AWS risorse**.

1. In **Valore**, scegli l'attivazione/disattivazione **Alias** per abilitare la risorsa Alias. 

1. In **Indirizza il traffico verso**, scegli **Alias per la CloudFront distribuzione** dall'elenco a discesa. 

1. Nella casella di ricerca che dice **Scegli la distribuzione**, scegli il nome di dominio della CloudFront distribuzione che hai creato nel [passaggio](#cf-s3-step4) 4. 

   Per trovare il nome di dominio della tua CloudFront distribuzione, procedi come segue:

   1. In una nuova scheda del browser, accedi Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v3/home](https://console.aws.amazon.com/cloudfront/v3/home).

   1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

   1. Nella colonna **Origins**, trova la CloudFront distribuzione corretta cercando il nome di origine, che inizia con il bucket S3 che hai creato nel [passaggio 1](#cf-s3-step1) (ad esempio,**tutorial-bucket**).

   1. Dopo aver trovato la distribuzione nell'elenco, amplia la colonna **Nome di dominio per visualizzare il valore del nome** di dominio per la tua distribuzione. CloudFront 

1. Sul**Creare record**Nella console Route 53, per le impostazioni rimanenti, mantenere i valori predefiniti. 

1. Scegli **Crea record**.

### Verifica se IPv6 è abilitato per la tua distribuzione e, se necessario, crea un altro record DNS
<a name="s3-step6-ipv6"></a>

Se IPv6 è abilitato per la tua distribuzione, devi creare un altro record DNS. 

1. Per verificare se IPv6 è abilitato per la tua distribuzione, procedi come segue:

   1. Accedi Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

   1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

   1. Scegli l'ID della CloudFront distribuzione che hai creato nel [passaggio 4](#cf-s3-step4).

   1. Nella scheda **Generale**, in **Impostazioni**, controlla se **IPv6**è impostato su **Abilitato**. 

      Se IPv6 è abilitato per la tua distribuzione, devi creare un altro record DNS.

1. Se IPv6 è abilitato per la tua distribuzione, procedi come segue per creare un record DNS:

   1. Accedi Console di gestione AWS e apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

   1. Nel riquadro di navigazione a sinistra, scegliere **Hosted zones (Zone ospitate)**.

   1. Nella pagina **Zone ospitate** seleziona il nome della zona ospitata creata da Route 53 in [Prerequisiti](#cf-s3-prerequisites) (ad esempio, **example.com**).

   1. Scegliere**Creare record**e quindi usa il**Creazione rapida record**metodo.

   1. Per **Record name**, nel campo di testo che precede il nome di dominio personalizzato, digita lo stesso valore che hai digitato quando hai creato il record IPv4 DNS in precedenza. Ad esempio, in questo tutorial, per instradare il traffico a `www.example.com`, inserisci solo **www**. 

   1. Per **Tipo di record**, scegli **AAAA - Indirizza il traffico verso un IPv6 indirizzo e alcune risorse**. AWS 

   1. In **Valore**, scegli l'attivazione/disattivazione **Alias** per abilitare la risorsa Alias. 

   1. In **Indirizza il traffico verso**, scegli **Alias per la CloudFront distribuzione** dall'elenco a discesa. 

   1. Nella casella di ricerca che dice **Scegli la distribuzione**, scegli il nome di dominio della CloudFront distribuzione che hai creato nel [passaggio](#cf-s3-step4) 4. 

   1. Mantieni le impostazioni rimanenti impostate sui valori di default. 

   1. Scegli **Crea record**.

## Passaggio 7: accedi al video S3 tramite la CloudFront distribuzione con il nome di dominio personalizzato
<a name="cf-s3-step7"></a>

Per accedere al video S3 utilizzando l'URL personalizzato, devi combinare il nome di dominio alternativo con il percorso del video nel bucket S3. 

**Per creare un URL personalizzato per accedere al video S3 tramite la distribuzione CloudFront**

1. Accedi Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

1. Per ottenere il nome di dominio alternativo della tua CloudFront distribuzione, procedi come segue:

   1. Nella colonna **Origins**, trova la CloudFront distribuzione corretta cercando il nome di origine, che inizia con il nome del bucket S3 per il bucket che hai creato nel [passaggio 1](#cf-s3-step1) (ad esempio,). **tutorial-bucket** 

   1. Dopo aver trovato la distribuzione nell'elenco, amplia la colonna **Nomi di dominio alternativi** per copiare il valore del nome di dominio alternativo della tua distribuzione. CloudFront 

1. In una nuova scheda del browser, incolla il nome di dominio alternativo della distribuzione. CloudFront 

1. Torna alla scheda precedente del browser e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 

1. Trova il percorso per il video S3, come spiegato nella [Fase 5](#cf-s3-step5). 

1. Torna alla scheda del browser in cui hai precedentemente incollato il nome di dominio alternativo, continua digitando **/** e incolla il percorso al video S3 (ad esempio, `sample.mp4`). 

   Ora, il tuo video S3 è accessibile CloudFront al pubblico e ospitato tramite un URL personalizzato simile al seguente: 

   ```
   https://CloudFront distribution alternate domain name/Path to the S3 video
   ```

   Sostituisci *CloudFront distribution alternate domain name* e *Path to the S3 video* con i valori appropriati. Un esempio di URL è **https://www.example.com/sample.mp4**.

## (Facoltativo) Passaggio 8: Visualizza i dati sulle richieste ricevute dalla tua CloudFront distribuzione
<a name="cf-s3-step8"></a>

**Per visualizzare i dati sulle richieste ricevute dalla tua CloudFront distribuzione**

1. Accedi a Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel pannello di navigazione sulla sinistra, in **Report e analisi dei dati**, scegli i report dalla console, che vanno da **Statistiche sulla cache**, **Oggetti popolari**, **Referrer principali**, **Utilizzo** e **Visualizzatori**. 

   Puoi filtrare il pannello di controllo di ogni report. Per ulteriori informazioni, consulta [CloudFront Report in the Console](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/reports.html) nella *Amazon CloudFront Developer Guide*. 

1. Per filtrare i dati, scegli l'ID della CloudFront distribuzione che hai creato nel [passaggio 4](#cf-s3-step4).

## Fase 9: Pulizia
<a name="cf-s3-step9"></a>

Se hai ospitato un video in streaming su S3 utilizzando CloudFront Route 53 solo come esercizio di apprendimento, elimina le AWS risorse che hai allocato in modo da non incorrere in costi aggiuntivi.

**Nota**  
Quando registri un dominio, il costo è immediato ed è irreversibile. Puoi scegliere di non rinnovare automaticamente il dominio, ma il pagamento è anticipato e resti proprietario per un anno. Per maggiori informazioni, consulta [Registrazione di un nuovo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) nella *Guida per gli sviluppatori di Amazon Route 53*. 

**Topics**
+ [Elimina la distribuzione CloudFront](#cf-s3-step9-delete-cf)
+ [Eliminazione del registro DNS](#cf-s3-step9-delete-dns)
+ [Eliminazione della zona ospitata pubblica per il dominio personalizzato](#cf-s3-step9-delete-hosted-zone)
+ [Eliminazione del nome di dominio personalizzato da Route 53](#cf-s3-step9-delete-domain)
+ [Eliminazione del video originale nel bucket S3 di origine](#cf-s3-step9-delete-video)
+ [Eliminazione del bucket S3 di origine](#cf-s3-step9-delete-bucket)

### Elimina la distribuzione CloudFront
<a name="cf-s3-step9-delete-cf"></a>

1. Accedi a Console di gestione AWS e apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Nel riquadro di navigazione a sinistra, scegliere**Distribuzioni**.

1. Nella colonna **Origins**, trova la CloudFront distribuzione corretta cercando il nome di origine, che inizia con il nome del bucket S3 per il bucket che hai creato nel [passaggio 1](#cf-s3-step1) (ad esempio,). **tutorial-bucket** 

1. Per eliminare la CloudFront distribuzione, devi prima disabilitarla.
   + Se il valore della colonna **Stato** è **Abilitato** e il valore di **Ultima modifica** è il timestamp dell'ultima modifica della distribuzione, procedi a disabilitare la distribuzione prima di eliminarla.
   + Se il valore di **Stato** è **Abilitato** e il valore di **Ultima modifica** è **In corso di implementazione**, attendi fino a quando il valore di **Stato** passa al timestamp dell’ultima modifica della distribuzione. Quindi procedi a disabilitare la distribuzione prima di eliminarla.

1. Per disabilitare la CloudFront distribuzione, procedi come segue:

   1. Nella**Distribuzioni**Selezionare la casella di controllo accanto all'ID della distribuzione che si desidera eliminare. 

   1. Per disabilitare la distribuzione, scegli **Disabilita** (e poi di nuovo **Disabilita** per confermare.

      Se disabiliti una distribuzione a cui è associato un nome di dominio alternativo, CloudFront smette di accettare il traffico per quel nome di dominio (ad esempio`www.example.com`), anche se un'altra distribuzione ha un nome di dominio alternativo con un carattere jolly (`*`) che corrisponde allo stesso dominio (ad esempio). `*.example.com`

   1. Il valore di **Status** (Stato) cambia immediatamente in **Disabled** (Disabilitato). Attendere fino a quando il valore di **Ultima modifica** passa da **Implementazione in corso** al timestamp dell'ultima modifica della distribuzione. 

      Poiché è CloudFront necessario propagare questa modifica a tutte le edge location, potrebbero essere necessari alcuni minuti prima che l'aggiornamento sia completo e che sia disponibile l'opzione **Elimina** per eliminare la distribuzione. 

1. Per eliminare la distribuzione disabilitata, procedi come indicato di seguito:

   1. Selezionare la casella di controllo accanto all'ID della distribuzione che si desidera eliminare.

   1. Scegli **Elimina** e seleziona **Elimina** per confermare.

### Eliminazione del registro DNS
<a name="cf-s3-step9-delete-dns"></a>

Se si desidera eliminare la zona ospitata pubblica per il dominio (incluso il record DNS), vedere[Eliminazione della zona ospitata pubblica per il dominio personalizzato](#cf-s3-step9-delete-hosted-zone)nella*Guida per sviluppatori di Amazon Route 53*. Se desideri solo eliminare il registro DNS creato nella [Fase 6](#cf-s3-step6), procedi come segue:

1. Accedi Console di gestione AWS e apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. Nel riquadro di navigazione a sinistra, scegliere **Hosted zones (Zone ospitate)**.

1. Nella pagina **Zone ospitate** seleziona il nome della zona ospitata creata da Route 53 in [Prerequisiti](#cf-s3-prerequisites) (ad esempio, **example.com**).

1. Nell'elenco dei registri, seleziona quelli che desideri eliminare (i registri creati nella [Fase 6](#cf-s3-step6)). 
**Nota**  
Non è possibile eliminare i record con un valore di **Tipo** pari a **NS** o **SOA**. 

1. Seleziona **Delete records** (Elimina registri). 

1. Per confermare l'eliminazione, scegliere **Delete (Elimina)**.

   Le modifiche ai registri richiedono tempo per propagarsi ai server DNS di Route 53. Attualmente, l'unico modo per verificare che le modifiche si siano propagate è utilizzare l'[azione GetChange API](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html). In genere le modifiche si propagano a tutti i server Route 53 entro 60 secondi.

### Eliminazione della zona ospitata pubblica per il dominio personalizzato
<a name="cf-s3-step9-delete-hosted-zone"></a>

**avvertimento**  
Se desideri mantenere la registrazione del tuo dominio ma interrompere il routing del traffico Internet sul tuo sito o applicazione Web, ti consigliamo di eliminare i registri nella zona ospitata (come sopra) invece di eliminare la zona ospitata.   
Inoltre, se elimini una zona ospitata, qualcuno potrebbe utilizzare il dominio e instradare il traffico verso le proprie risorse utilizzando il tuo nome di dominio.  
Se elimini una zona ospitata, non puoi annullarne l'eliminazione. Devi creare una nuova zona ospitata e aggiornare i server di nomi per la registrazione del tuo dominio, operazione che può richiedere fino a 48 ore per rendere effettiva la modifica.   
Se desideri rendere il dominio non disponibile su Internet, per prima cosa puoi trasferire il servizio DNS su un servizio DNS gratuito e quindi eliminare la zona ospitata di Route 53. In questo modo si impedisce che query DNS future vengano instradate in modo non corretto.   
Se il dominio è registrato con Route 53, consulta [Aggiunta o modifica di server di nomi e glue record per un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html) nella *Guida per gli sviluppatori di Amazon Route 53* per informazioni su come sostituire i server di nomi di Route 53 con i server di nomi per il nuovo servizio DNS. 
Se il dominio è registrato con un altro registrar, utilizza il metodo fornito dal registrar per modificare i server di nomi per il dominio. 
Se stai eliminando una zona ospitata per un sottodominio (`www.example.com`), non devi modificare i server di nomi per il dominio (`example.com`).

1. Accedi Console di gestione AWS e apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. Nel riquadro di navigazione a sinistra, scegliere **Hosted zones (Zone ospitate)**.

1. Nella pagina **Hosted zones** (Zone ospitate), scegli il nome della zona ospitata che desideri eliminare.

1. Nella scheda **Records** (Registri) della zona ospitata, conferma che la zona ospitata che desideri eliminare contiene solo un registro **NS** e uno **SOA**.

   Se contiene registri aggiuntivi, eliminali.

   Se hai creato record NS per sottodomini nella zona ospitata, elimina anche questi.

1. Nella scheda **DNSSEC signing** (Firma DNSSEC) per la zona ospitata, disabilita la firma DNNSSEC, se abilitata. Per ulteriori informazioni, consulta [Registrazione delle query DNS](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-disable.html) nella *Guida per sviluppatori di Amazon Route 53*.

1. Nella parte superiore della pagina dei dettagli della zona ospitata, scegliere**Elimina zona**.

1. Per confermare l'eliminazione immetti **delete**, quindi scegli **Elimina**.

### Eliminazione del nome di dominio personalizzato da Route 53
<a name="cf-s3-step9-delete-domain"></a>

Per la maggior parte dei domini di primo livello (TLDs), puoi eliminare la registrazione se non la desideri più. Se elimini la registrazione di un nome di dominio da Route 53 prima della scadenza prevista per la registrazione, la quota di registrazione AWS non viene rimborsata. Per maggiori informazioni, consulta [Eliminazione della registrazione di un nome di dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-delete.html) nella *Guida per gli sviluppatori di Amazon Route 53*.

**Importante**  
Se desideri trasferire il dominio da un altro registrar Account AWS o trasferirlo a un altro registrar, non eliminare il dominio e aspettati di registrarlo nuovamente immediatamente. Al contrario, consulta la documentazione relativo nella sezione*Guida per sviluppatori di Amazon Route 53*:  
[Trasferimento di un dominio a un altro Account AWS](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html)
[Trasferimento di un dominio da Amazon Route 53 a un altro registrar](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-from-route-53.html)

### Eliminazione del video originale nel bucket S3 di origine
<a name="cf-s3-step9-delete-video"></a>

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco **Nome bucket** scegli il nome del bucket in cui hai caricato il video originale nella [Fase 2](#cf-s3-step2) (ad esempio, **tutorial-bucket**).

1. Nella scheda **Oggetti**, seleziona la casella di controllo a sinistra del nome dell'oggetto da eliminare (ad esempio, `sample.mp4`).

1. Scegli **Elimina**. 

1. UNDER**Eliminare permanentemente gli oggetti?**, immettere**permanently delete**per confermare di voler eliminare questo oggetto.

1. Scegliere **Delete objects (Elimina oggetti)**.

### Eliminazione del bucket S3 di origine
<a name="cf-s3-step9-delete-bucket"></a>

1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco **Bucket** scegli il pulsante di opzione accanto al nome del bucket creato nella [Fase 1](#cf-s3-step1)(ad esempio, **tutorial-bucket**).

1. Scegli **Elimina**.

1. Nella pagina **Delete bucket (Elimina bucket)** conferma che desideri eliminare il bucket inserendone il nome nel campo di testo e quindi scegli **Delete bucket (Elimina bucket)**.

## Fasi successive
<a name="cf-s3-next-steps"></a>

Dopo aver completato questo tutorial, puoi esplorare altri casi d'uso correlati:
+ Transcodifica i video S3 nei formati di streaming necessari a un particolare televisore o dispositivo connesso prima di ospitarli con una distribuzione. CloudFront 

  Per utilizzare Amazon S3 Batch Operations AWS Lambda e AWS Elemental MediaConvert transcodificare in batch una raccolta di video in una varietà di formati multimediali di output, consulta. [Tutorial: transcodifica in batch dei video con Operazioni in batch S3](tutorial-s3-batchops-lambda-mediaconvert-video.md) 
+ Ospita altri oggetti archiviati in S3, come immagini, audio, grafica animata, fogli di stile, HTML JavaScript, app React e così via, utilizzando Route 53. CloudFront 

  Per un esempio, consulta [Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53](website-hosting-custom-domain-walkthrough.md) e [Velocizza il tuo sito Web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md). 
+ Utilizza [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) per configurare trasferimenti di file veloci e sicuri. Transfer Acceleration può velocizzare il caricamento dei video nel bucket S3 per il trasferimento a lunga distanza di video di grandi dimensioni. Transfer Acceleration migliora le prestazioni di trasferimento instradando il traffico attraverso le edge location distribuite CloudFront a livello globale e sulle reti dorsali. AWS Utilizza anche ottimizzazioni del protocollo di rete. Per ulteriori informazioni, consulta [Configurazione di trasferimenti veloci e sicuri di file con Amazon S3 Transfer Acceleration](transfer-acceleration.md). 

# Esercitazione: configurazione di un sito Web statico su Amazon S3
<a name="HostingWebsiteOnS3Setup"></a>

**Importante**  
Amazon S3 ora applica la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) come livello di base della crittografia per ogni bucket di Amazon S3. A partire dal 5 gennaio 2023, tutti i caricamenti di nuovi oggetti su Amazon S3 vengono crittografati automaticamente senza costi aggiuntivi e senza alcun impatto sulle prestazioni. Lo stato di crittografia automatico per la configurazione di crittografia predefinita del bucket S3 e per il caricamento di nuovi oggetti è disponibile nei CloudTrail log, in S3 Inventory, S3 Storage Lens, nella console Amazon S3 e come intestazione di risposta dell'API Amazon S3 aggiuntiva nella e. AWS CLI AWS SDKs Per ulteriori informazioni, consulta [Domande frequenti sulla crittografia predefinita](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

È possibile configurare un bucket Amazon S3 in modo da funzionare come un sito web. Questo esempio guida attraverso le fasi di hosting di un sito web su Amazon S3.

**Importante**  
Il seguente tutorial richiede la disabilitazione dell'opzione Blocco dell'accesso pubblico. È consigliabile mantenere l'impostazione Blocco dell'accesso pubblico abilitata. Se desideri mantenere abilitate tutte e quattro le impostazioni Block Public Access e ospitare un sito Web statico, puoi utilizzare Amazon CloudFront Origin Access Control (OAC). Amazon CloudFront offre le funzionalità necessarie per configurare un sito Web statico sicuro. I siti Web statici Amazon S3 supportano solo gli endpoint HTTP. Amazon CloudFront utilizza lo storage durevole di Amazon S3 fornendo al contempo intestazioni di sicurezza aggiuntive, come HTTPS. HTTPS aggiunge sicurezza crittografando una normale richiesta HTTP e proteggendo contro o più comuni attacchi informatici. Per ulteriori informazioni, consulta la sezione [Guida introduttiva a un sito Web statico sicuro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) nella *Amazon CloudFront Developer Guide*. 

**Topics**
+ [Fase 1: creazione di un bucket](#step1-create-bucket-config-as-website)
+ [Fase 2: abilitazione dell'hosting di un sito Web statico](#step2-create-bucket-config-as-website)
+ [Fase 3: modificare le impostazioni di blocco dell'accesso pubblico](#step3-edit-block-public-access)
+ [Fase 4: aggiunta di una policy del bucket che renda il contenuto del bucket disponibile pubblicamente](#step4-add-bucket-policy-make-content-public)
+ [Fase 5: configurazione di un documento indice](#step5-upload-index-doc)
+ [Fase 6: configurare un documento di errore](#step6-upload-error-doc)
+ [Fase 7: testare l'endpoint del sito Web](#step7-test-web-site)
+ [Fase 8: Pulizia](#getting-started-cleanup-s3-website-overview)

## Fase 1: creazione di un bucket
<a name="step1-create-bucket-config-as-website"></a>

Le istruzioni riportate di seguito forniscono una panoramica su come creare i bucket per l'hosting di siti Web. Per step-by-step istruzioni dettagliate sulla creazione di un bucket, consulta[Creazione di un bucket per uso generico](create-bucket-overview.md).

**Per creare un bucket**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Scegliere **Create bucket (Crea bucket)**.

1. Specifica **Nome del bucket** (ad esempio, **example.com**).

1. Scegliere la regione in cui creare il bucket. 

   Scegli una regione geografica vicina a te per ridurre al minimo la latenza e i costi e soddisfare i requisiti normativi. La regione scelta determina l'endpoint del sito web Amazon S3. Per ulteriori informazioni, consulta [Endpoint del sito Web](WebsiteEndpoints.md).

1. Per accettare le impostazioni predefinite e creare il bucket, scegliere **Create (Crea)**.

## Fase 2: abilitazione dell'hosting di un sito Web statico
<a name="step2-create-bucket-config-as-website"></a>

Dopo aver creato un bucket, è possibile abilitare l'hosting di siti Web statici per il bucket. Puoi creare un nuovo bucket o utilizzare un bucket esistente.

**Per abilitare l'hosting di un sito Web statico**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket per cui desideri abilitare l’hosting di siti web statici.

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Seleziona **Utilizza questo bucket per l'hosting di un sito Web**. 

1. In **Hosting di siti Web statici**, seleziona **Abilita**.

1. In **Documento di indice** immettere il nome file del documento di indice, in genere `index.html`. 

   Il nome del documento indice fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome del file del documento indice HTML che si prevede di caricare nel bucket S3. Quando si configura un bucket per l'hosting di siti Web, è necessario specificare un documento di indice. Amazon S3 restituisce questo documento di indice quando si eseguono richieste per il dominio root o per una delle sottocartelle. Per ulteriori informazioni, consulta [Configurazione di un documento indice](IndexDocumentSupport.md).

1. Per fornire il tuo documento di errore personalizzato per gli errori di classe 4XX, specifica il nome file del documento in **Documento di errore**. 

   Il nome del documento di errore fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome del file del documento di errore HTML che si prevede di caricare nel bucket S3. Se non si specifica un documento di errore personalizzato e si verifica un errore, Amazon S3 restituisce un documento di errore HTML predefinito. Per ulteriori informazioni, consulta [Configurazione di un documento di errore personalizzato](CustomErrorDocSupport.md).

1. (Facoltativo) Per specificare regole di reindirizzamento avanzate, utilizza JSON per descrivere le regole in **Regole reindirizzamento**.

   Ad esempio, è possibile instradare le richieste in base a prefissi o nomi della chiave dell'oggetto specifici nella richiesta. Per ulteriori informazioni, consulta [Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati](how-to-page-redirect.md#advanced-conditional-redirects).

1. Seleziona **Salva modifiche**.

   Amazon S3 abilita l'hosting statico del sito web per il tuo bucket. Nella parte inferiore della pagina, in **Hosting di siti Web statici**, viene visualizzato l'endpoint del sito web per il bucket.

1. In **Hosting sito Web statico**, prendi nota dell'**endpoint**.

   **Endpoint** è l'endpoint del sito web Amazon S3 per il bucket. Dopo aver configurato il bucket come sito Web statico, è possibile utilizzare questo endpoint per testare il sito Web.

## Fase 3: modificare le impostazioni di blocco dell'accesso pubblico
<a name="step3-edit-block-public-access"></a>

Per impostazione predefinita, Amazon S3 blocca l'accesso pubblico all'account e ai bucket. Per utilizzare un bucket per ospitare un sito Web statico, puoi seguire questa procedura per modificare le impostazioni di blocco dell'accesso pubblico: 

**avvertimento**  
Prima di completare questi passaggi, consulta [Blocco dell'accesso pubblico allo storage Amazon S3](access-control-block-public-access.md) per assicurarsi di aver compreso e accettato i rischi connessi alla concessione dell'accesso pubblico. Quando si disattivano le impostazioni di blocco dell'accesso pubblico per rendere pubblico il bucket, chiunque su Internet può accedere al bucket. Consigliamo di bloccare tutti gli accessi pubblici ai bucket.

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Seleziona il nome del bucket configurato come sito Web statico.

1. Seleziona **Autorizzazioni**.

1. In **Blocca accesso pubblico (impostazioni bucket)**, seleziona **Modifica**.

1. Deseleziona **Blocca *tutto* l'accesso pubblico**, quindi seleziona **Salva modifiche**.  
![\[Console Amazon S3 in cui vengono mostrate le impostazioni di blocco dell'accesso pubblico a un bucket.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   Amazon S3 disattiva le impostazioni di blocco dell'accesso pubblico per il bucket. Per creare un sito web pubblico statico, potrebbe essere necessario [modificare anche le impostazioni di blocco dell'accesso pubblico](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) per l'account prima di aggiungere una policy del bucket. Se le impostazioni dell'account per il blocco dell'accesso pubblico sono attualmente attivate, verrà visualizzata una nota in **Blocca accesso pubblico (impostazioni bucket)**.

## Fase 4: aggiunta di una policy del bucket che renda il contenuto del bucket disponibile pubblicamente
<a name="step4-add-bucket-policy-make-content-public"></a>

Dopo aver modificato le impostazioni di blocco dell'accesso pubblico S3, è possibile aggiungere una policy del bucket per concedere l'accesso pubblico in lettura al bucket. Quando concedi l'accesso pubblico in lettura, chiunque su Internet può accedere al bucket.

**Importante**  
La policy seguente è solo un esempio e consente l'accesso completo ai contenuti del bucket. Prima di continuare con questa fase, esamina l'argomento relativo a [come proteggere i file nel bucket Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) per assicurarti di comprendere le best practice per la protezione dei file nel bucket S3 e i rischi connessi alla concessione dell'accesso pubblico .

1. In **Bucket**, scegli il nome del bucket.

1. Seleziona **Autorizzazioni**.

1. In **Policy del bucket**, seleziona **Modifica**.

1. Per concedere l'accesso in lettura pubblico al sito Web, copiare la policy del bucket seguente e incollarla in **Editor della policy del bucket**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. Aggiorna `Resource` al tuo nome bucket.

   Nell'esempio precedente, bucket policy, *Bucket-Name* è un segnaposto per il nome del bucket. Per utilizzare questa policy di bucket con il proprio bucket, è necessario aggiornare il nome in modo che corrisponda al bucket.

1. Seleziona **Salva modifiche**.

   Viene visualizzato un messaggio che indica che la policy del bucket è stata aggiunta correttamente.

   Se viene visualizzato l'errore `Policy has invalid resource`, conferma che il nome del bucket nella policy di bucket corrisponde al nome del bucket. Per informazioni sull'aggiunta di una policy del bucket, consulta [In che modo aggiungere una policy del bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   Se viene visualizzato un messaggio di errore e non è possibile salvare la policy di bucket, controlla le impostazioni di blocco dell'accesso pubblico all'account e al bucket per confermare che consenti l'accesso pubblico al bucket.

## Fase 5: configurazione di un documento indice
<a name="step5-upload-index-doc"></a>

Quando si abilita l'hosting statico di siti Web per il bucket, si immette il nome del documento di indice (ad esempi, **index.html**). Dopo aver abilitato l'hosting di siti Web statici per il bucket, si carica un file HTML con il nome del documento di indice nel bucket.

**Per configurare il documento di indice**

1. Creare un file `index.html`

   Se non si dispone di un file `index.html`, è possibile utilizzare il seguente codice HTML per crearne uno:

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. Salva il file indice in locale.

   Il nome del file del documento indice deve corrispondere esattamente al nome del documento indice immesso nella finestra di dialogo **Hosting sito Web statico**. Il nome del documento indice distingue tra maiuscole e minuscole. Ad esempio, se si immette `index.html` per il nome del **documento Indice** nella finestra di dialogo **Hosting sito Web statico**, anche il nome del file del documento indice deve essere `index.html` e non `Index.html`.

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket che desideri utilizzare per l’hosting di un sito web statico.

1. Abilitare l'hosting di siti Web statici per il bucket e inserire il nome esatto del documento di indice (ad esempi, `index.html`). Per ulteriori informazioni, consulta [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md).

   Dopo aver abilitato l'hosting di siti Web statici, procedere alla fase 6. 

1. Per caricare il documento di indice nel bucket, eseguire una delle operazioni seguenti:
   + Trascinare e rilasciare il file di indice nell'elenco bucket della console.
   + Scegliere **Upload (Carica)** e seguire le istruzioni per scegliere e caricare il file di indice.

   Per step-by-step istruzioni, consulta[Caricamento degli oggetti](upload-objects.md).

1. (Opzionale) Caricare altri contenuti del sito Web nel bucket.

## Fase 6: configurare un documento di errore
<a name="step6-upload-error-doc"></a>

Quando abiliti l'hosting di siti Web statici per il tuo bucket, specifichi il nome del documento di errore (ad esempio, **404.html**). Dopo avere abilitato l'hosting di siti Web statici per il bucket, carichi un file HTML con il nome del documento di errore nel bucket.

**Per configurare un documento di errore**

1. Crea un documento di errore, ad esempio `404.html`.

1. Salva il file del documento di errore in locale.

   Il nome del documento di errore fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome immesso quando hai attivato l'hosting statico di siti Web. Ad esempio, se specifichi `404.html` per il nome del **documento di errore** nella finestra di dialogo **Hosting sito Web statico**, anche il nome file del documento di errore dovrà essere `404.html`.

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket che desideri utilizzare per l’hosting di un sito web statico.

1. Abilita l'hosting di siti Web statici per il bucket e inserisci il nome esatto del documento di errore (ad esempio, `404.html`). Per ulteriori informazioni, consultare [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md) e [Configurazione di un documento di errore personalizzato](CustomErrorDocSupport.md).

   Dopo aver abilitato l'hosting di siti Web statici, procedere alla fase 6. 

1. Per caricare il documento di errore nel bucket, completa una delle operazioni riportate di seguito:
   + Trascina e rilascia il file del documento di errore nell'elenco dei bucket della console.
   + Scegliere **Upload (Carica)** e seguire le istruzioni per scegliere e caricare il file di indice.

   Per step-by-step istruzioni, consulta[Caricamento degli oggetti](upload-objects.md).

## Fase 7: testare l'endpoint del sito Web
<a name="step7-test-web-site"></a>

Dopo aver configurato l'hosting di siti Web statici per il bucket, puoi testare l'endpoint del sito Web.

**Nota**  
Amazon S3 non supporta l'accesso HTTPS al sito web. Se desideri utilizzare HTTPS, puoi utilizzare Amazon CloudFront per servire un sito Web statico ospitato su Amazon S3.  
Per ulteriori informazioni, consulta [Come si usa CloudFront per servire un sito Web statico ospitato su Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)? e [Richiede HTTPS per la comunicazione tra gli spettatori e](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html). CloudFront

1. In **Bucket**, scegli il nome del bucket.

1. Scegliere **Properties (Proprietà)**.

1. Nella parte inferiore della pagina, in **Static website hosting (Hosting di siti Web statici)**, scegliere il proprio **Bucket website endpoint (Endpoint del sito web Bucket)**.

   Il documento indice viene aperto in una finestra del browser separata.

Ora hai un sito Web ospitato su Amazon S3. Questo sito web è disponibile nell'endpoint del sito web Amazon S3. Tuttavia, potresti disporre di un dominio, come `example.com`, che desideri utilizzare per fornire il contenuto dal sito Web creato. Inoltre, potresti voler utilizzare il supporto del dominio root Amazon S3 per servire richieste di `http://www.example.com` e `http://example.com`. Ciò richiede ulteriori fasi. Per un esempio, consulta [Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53](website-hosting-custom-domain-walkthrough.md). 

## Fase 8: Pulizia
<a name="getting-started-cleanup-s3-website-overview"></a>

Se hai creato il sito Web statico solo come esercizio di apprendimento, elimina le risorse AWS che hai allocato per non accumulare più addebiti. Dopo aver eliminato le AWS risorse, il sito Web non è più disponibile. Per ulteriori informazioni, consulta [Eliminazione di un bucket per uso generico](delete-bucket.md).

# Tutorial: Configurazione di un sito Web statico utilizzando un dominio personalizzato registrato con Route 53
<a name="website-hosting-custom-domain-walkthrough"></a>

Supponiamo che si desideri effettuare l'hosting di un sito Web statico su Amazon S3. Hai registrato un dominio su Amazon Route 53 (ad esempio `example.com`) e desideri che le richieste `http://www.example.com` e `http://example.com` vengano inviate dai tuoi contenuti Amazon S3. È possibile utilizzare questa procedura dettagliata per informazioni su come ospitare un sito web statico e creare reindirizzamenti su Amazon S3 per un sito web con un nome di dominio personalizzato registrato con Route 53. È possibile utilizzare un sito Web esistente che si desira ospitare su Amazon S3 o utilizzare questa procedura dettagliata per iniziare da zero. 

Dopo aver completato questa procedura dettagliata, puoi opzionalmente utilizzare Amazon CloudFront per migliorare le prestazioni del tuo sito web. Per ulteriori informazioni, consulta [Velocizza il tuo sito Web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

**Nota**  
Gli endpoint del sito Web di Amazon S3 non supportano HTTPS o access point. Se desideri utilizzare HTTPS, puoi utilizzare Amazon CloudFront per servire un sito Web statico ospitato su Amazon S3.  
Per un tutorial su come ospitare i tuoi contenuti in modo sicuro con CloudFront Amazon S3, consulta. [Tutorial: hosting di video in streaming su richiesta con Amazon S3, Amazon e CloudFront Amazon Route 53](tutorial-s3-cloudfront-route53-video-streaming.md) Per ulteriori informazioni, consulta [Come si usa CloudFront per servire un sito Web statico ospitato su Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)? e [Richiede HTTPS per la comunicazione tra gli spettatori e](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html). CloudFront

**Automatizzazione della configurazione di siti Web statici con un modello CloudFormation**  
È possibile utilizzare un CloudFormation modello per automatizzare la configurazione statica del sito Web. Il CloudFormation modello configura i componenti necessari per ospitare un sito Web statico sicuro in modo che possiate concentrarvi maggiormente sui contenuti del sito Web e meno sulla configurazione dei componenti.

Il CloudFormation modello include i seguenti componenti:
+ Amazon S3 – Crea un bucket Amazon S3 per ospitare il tuo sito Web statico.
+ CloudFront — Crea una CloudFront distribuzione per velocizzare il tuo sito web statico.
+ Lambda@Edge – Utilizza [Lambda@Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) per aggiungere intestazioni di sicurezza a ogni risposta del server. Le intestazioni di sicurezza sono un gruppo di intestazioni nella risposta del server Web che indicano ai browser Web di adottare ulteriori precauzioni di sicurezza. Per ulteriori informazioni, consulta il post del blog [Aggiungere intestazioni di sicurezza HTTP usando Lambda @Edge e Amazon](https://aws.amazon.com/blogs/networking-and-content-delivery/adding-http-security-headers-using-lambdaedge-and-amazon-cloudfront/). CloudFront

Questo CloudFormation modello può essere scaricato e utilizzato. Per informazioni e istruzioni, consulta la sezione Guida [introduttiva a un sito Web statico sicuro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) nella *Amazon CloudFront Developer Guide*.

**Topics**
+ [Prima di iniziare](#root-domain-walkthrough-before-you-begin)
+ [Fase 1: registrazione di un dominio personalizzato con Route 53](#website-hosting-custom-domain-walkthrough-domain-registry)
+ [Fase 2: creare due bucket](#root-domain-walkthrough-create-buckets)
+ [Fase 3: configurazione di un bucket del dominio root per l'hosting di siti Web](#root-domain-walkthrough-configure-bucket-aswebsite)
+ [Fase 4: configurare un bucket del sottodominio per il reindirizzamento del sito Web](#root-domain-walkthrough-configure-redirect)
+ [Fase 5: configurare la registrazione del traffico del sito Web](#root-domain-walkthrough-configure-logging)
+ [Fase 6: caricare l'indice e il contenuto del sito Web](#upload-website-content)
+ [Fase 7: caricare un documento di errore](#configure-error-document-root-domain)
+ [Fase 8: modificare le impostazioni dell'accesso pubblico ai blocchi S3](#root-domain-walkthrough-configure-bucket-permissions)
+ [Fase 9: collegare una policy del bucket](#add-bucket-policy-root-domain)
+ [Fase 10: testare l'endpoint del dominio](#root-domain-walkthrough-test-website)
+ [Fase 11: aggiungere record alias per il dominio e il sottodominio](#root-domain-walkthrough-add-record-to-hostedzone)
+ [Fase 12: testare il sito Web](#root-domain-testing)
+ [Velocizza il tuo sito Web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md)
+ [Pulizia delle risorse di esempio](getting-started-cleanup.md)

## Prima di iniziare
<a name="root-domain-walkthrough-before-you-begin"></a>

Seguendo l'esempio si utilizzeranno i seguenti servizi:

**Amazon Route 53 –** Usa Route 53 per registrare domini e definire dove instradare il traffico internet per il dominio. L'esempio illustra come creare record di alias Route 53 che instradano il traffico per il dominio (`example.com`) e il sottodominio (`www.example.com`) a un bucket Amazon S3 contenente un file HTML.

**Amazon S3** – Viene utilizzato per creare bucket Amazon S3, caricare una pagina di esempio del sito Web, configurare le autorizzazioni per permettere agli utenti di visualizzare il contenuto e configurare i bucket per l'hosting di siti Web.

## Fase 1: registrazione di un dominio personalizzato con Route 53
<a name="website-hosting-custom-domain-walkthrough-domain-registry"></a>

Se non si dispone già di un nome di dominio registrato, ad esempio `example.com`, registrarne uno con Route 53. Per maggiori informazioni, consulta [Registrazione di un nuovo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) nella *Guida per gli sviluppatori di Amazon Route 53*. Dopo aver registrato il nome di dominio, è possibile creare e configurare i bucket Amazon S3 per l'hosting di siti Web. 

## Fase 2: creare due bucket
<a name="root-domain-walkthrough-create-buckets"></a>

Per le richieste di supporto del dominio root e del sottodominio, occorre creare due bucket:
+ **Bucket del dominio** – `example.com`
+ **Bucket del sottodominio** – `www.example.com` 

Questi nomi di bucket devono corrispondere esattamente al nome di dominio. In questo esempio, il nome di dominio è `example.com`. Il contenuto viene ospitato al di fuori del bucket del dominio root (`example.com`). Viene creata una richiesta di reindirizzamento per il bucket del sottodominio (`www.example.com`). In altre parole, se qualcuno accede a `www.example.com` dal proprio browser, viene reindirizzato a `example.com` e visualizza il contenuto ospitato nel bucket Amazon S3 con quel nome. 

**Per creare i bucket per l'hosting di siti Web**

Le istruzioni riportate di seguito forniscono una panoramica su come creare i bucket per l'hosting di siti Web. Per step-by-step istruzioni dettagliate sulla creazione di un bucket, consulta[Creazione di un bucket per uso generico](create-bucket-overview.md).

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Seleziona il bucket del dominio root: 

   1. Nella barra di navigazione nella parte superiore della pagina, scegli il nome del file attualmente visualizzato Regione AWS. Quindi, scegli la Regione in cui creare un bucket. 
**Nota**  
Scegli una regione nelle tue vicinanze per ridurre al minimo la latenza e i costi o essere conforme ai requisiti normativi. Gli oggetti archiviati in una regione non la lasciano mai a meno che non vengano trasferiti esplicitamente in un'altra regione. Per un elenco di Amazon S3 Regioni AWS, consulta gli [Servizio AWS endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) in. *Riferimenti generali di Amazon Web Services*

   1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

   1. Scegliere **Create bucket (Crea bucket)**. Viene visualizzata la pagina **Create bucket (Crea bucket)**.

   1. Specifica **Nome del bucket** (ad esempio, **example.com**).

   1. Scegliere la regione in cui creare il bucket. 

      Scegli una regione geografica vicina a te per ridurre al minimo la latenza e i costi e soddisfare i requisiti normativi. La regione scelta determina l'endpoint del sito web Amazon S3. Per ulteriori informazioni, consulta [Endpoint del sito Web](WebsiteEndpoints.md).

   1. Per accettare le impostazioni predefinite e creare il bucket, scegliere **Create (Crea)**.

1. Crea il tuo bucket del sottodominio: 

   1. Scegliere **Create bucket (Crea bucket)**.

   1. Specifica **Nome del bucket** (ad esempio, **www.example.com**).

   1. Scegliere la regione in cui creare il bucket. 

      Scegli una regione geografica vicina a te per ridurre al minimo la latenza e i costi e soddisfare i requisiti normativi. La regione scelta determina l'endpoint del sito web Amazon S3. Per ulteriori informazioni, consulta [Endpoint del sito Web](WebsiteEndpoints.md).

   1. Per accettare le impostazioni predefinite e creare il bucket, scegliere **Create (Crea)**.

Nella fase seguente `example.com` viene configurato per l'hosting di siti Web. 

## Fase 3: configurazione di un bucket del dominio root per l'hosting di siti Web
<a name="root-domain-walkthrough-configure-bucket-aswebsite"></a>

In questa fase, configuri il bucket del dominio root (`example.com`) come sito Web. Questo bucket conterrà i contenuti del sito Web. Quando si configura un bucket per l'hosting di siti Web, è possibile accedere al sito web utilizzando il [Endpoint del sito Web](WebsiteEndpoints.md). 

**Per abilitare l'hosting di un sito Web statico**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket per cui desideri abilitare l’hosting di siti web statici.

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Seleziona **Utilizza questo bucket per l'hosting di un sito Web**. 

1. In **Hosting di siti Web statici**, seleziona **Abilita**.

1. In **Documento di indice** immettere il nome file del documento di indice, in genere `index.html`. 

   Il nome del documento indice fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome del file del documento indice HTML che si prevede di caricare nel bucket S3. Quando si configura un bucket per l'hosting di siti Web, è necessario specificare un documento di indice. Amazon S3 restituisce questo documento di indice quando si eseguono richieste per il dominio root o per una delle sottocartelle. Per ulteriori informazioni, consulta [Configurazione di un documento indice](IndexDocumentSupport.md).

1. Per fornire il tuo documento di errore personalizzato per gli errori di classe 4XX, specifica il nome file del documento in **Documento di errore**. 

   Il nome del documento di errore fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome del file del documento di errore HTML che si prevede di caricare nel bucket S3. Se non si specifica un documento di errore personalizzato e si verifica un errore, Amazon S3 restituisce un documento di errore HTML predefinito. Per ulteriori informazioni, consulta [Configurazione di un documento di errore personalizzato](CustomErrorDocSupport.md).

1. (Facoltativo) Per specificare regole di reindirizzamento avanzate, utilizza JSON per descrivere le regole in **Regole reindirizzamento**.

   Ad esempio, è possibile instradare le richieste in base a prefissi o nomi della chiave dell'oggetto specifici nella richiesta. Per ulteriori informazioni, consulta [Configurazione delle regole di reindirizzamento per utilizzare i reindirizzamenti condizionali avanzati](how-to-page-redirect.md#advanced-conditional-redirects).

1. Seleziona **Salva modifiche**.

   Amazon S3 abilita l'hosting statico del sito web per il tuo bucket. Nella parte inferiore della pagina, in **Hosting di siti Web statici**, viene visualizzato l'endpoint del sito web per il bucket.

1. In **Hosting sito Web statico**, prendi nota dell'**endpoint**.

   **Endpoint** è l'endpoint del sito web Amazon S3 per il bucket. Dopo aver configurato il bucket come sito Web statico, è possibile utilizzare questo endpoint per testare il sito Web.

Dopo aver [modificato le impostazioni di blocco dell'accesso pubblico](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#root-domain-walkthrough-configure-bucket-permissions) e aver [aggiunto una policy del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#add-bucket-policy-root-domain) che consente l'accesso pubblico in lettura, potrai utilizzare l'endpoint del sito Web per accedere al sito Web. 

Nella fase successiva viene configurato il sottodominio (`www.example.com`) per reindirizzare le richieste al dominio (`example.com`). 

## Fase 4: configurare un bucket del sottodominio per il reindirizzamento del sito Web
<a name="root-domain-walkthrough-configure-redirect"></a>

Una volta che il bucket del dominio root è stato configurato per l'hosting di siti Web, è possibile configurare il bucket del sottodominio per reindirizzare tutte le richieste al dominio. In questo esempio, tutte le richieste per `www.example.com` vengono reindirizzate a `example.com`.

**Per configurare una richiesta di reindirizzamento**

1. Nella console di Amazon S3, nell’elenco **Bucket per uso generico**, seleziona il bucket del sottodominio (in questo esempio, `www.example.com`).

1. Scegliere **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, seleziona **Modifica**.

1. Seleziona **Reindirizza richieste per un oggetto**. 

1. Nella casella **Target bucket (Bucket di destinazione)** immettere il dominio root, ad esempio, **example.com**.

1. In **Protocol (Protocollo)**, scegliere **HTTP**.

1. Seleziona **Salva modifiche**.

## Fase 5: configurare la registrazione del traffico del sito Web
<a name="root-domain-walkthrough-configure-logging"></a>

Per tenere traccia del numero di visitatori che accedono al sito Web, puoi abilitare facoltativamente la registrazione per il bucket del dominio root. Per ulteriori informazioni, consulta [Registrazione delle richieste con registrazione dell'accesso al server](ServerLogs.md). Se prevedi di utilizzare Amazon CloudFront per velocizzare il tuo sito Web, puoi anche utilizzare CloudFront la registrazione.

**Per abilitare la registrazione dell'accesso al server per il bucket del dominio root**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nella stessa regione in cui è stato creato il bucket configurato come sito Web statico, creare un bucket per la registrazione, ad esempio `logs.example.com`.

1. Creare una cartella per i file di registrazione degli accessi al server (ad esempio, `logs`).

1. (Facoltativo) Se desideri utilizzarla CloudFront per migliorare le prestazioni del tuo sito Web, crea una cartella per i file di CloudFront registro (ad esempio,`cdn`).
**Importante**  
Quando crei o aggiorni una distribuzione e abiliti la CloudFront registrazione, CloudFront aggiorna l'elenco di controllo degli accessi ai bucket (ACL) per concedere all'`awslogsdelivery`account le `FULL_CONTROL` autorizzazioni per scrivere i log nel bucket. Per ulteriori informazioni, consulta la sezione [Autorizzazioni necessarie per configurare la registrazione standard e accedere ai file di registro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership) nella *Amazon CloudFront Developer Guide*. Se il bucket che memorizza i log utilizza l'impostazione imposta dal proprietario del bucket per disabilitare S3 Object Ownership ACLs, CloudFront non può scrivere log nel bucket. Per ulteriori informazioni, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).

1. Nell'elenco **Buckets (Bucket)** scegliere il bucket del dominio root.

1. Scegliere **Properties (Proprietà)**.

1. In **Registrazione accesso server**, seleziona **Modifica**.

1. Scegli **Enable** (Abilita).

1. In **Bucket di destinazione**, seleziona la destinazione del bucket e della cartella per i log di accesso al server:
   + Individua la cartella e il percorso del bucket:

     1. Seleziona **Sfoglia S3**.

     1. Scegli il nome del bucket, quindi seleziona la cartella dei log. 

     1. Seleziona **Scegli percorso**.
   + Specifica il percorso del bucket S3, ad esempio, `s3://logs.example.com/logs/`.

1. Seleziona **Salva modifiche**.

   Nel bucket di log, ora puoi accedere ai tuoi log. Amazon S3 scrive i log di accesso del sito web nel bucket log ogni due ore.

## Fase 6: caricare l'indice e il contenuto del sito Web
<a name="upload-website-content"></a>

In questo passaggio carichi il documento di indice e il contenuto facoltativo del sito Web nel bucket del dominio root. 

Quando si abilita l'hosting statico di siti Web per il bucket, si immette il nome del documento di indice (ad esempi, **index.html**). Dopo aver abilitato l'hosting di siti Web statici per il bucket, si carica un file HTML con il nome del documento di indice nel bucket.

**Per configurare il documento di indice**

1. Creare un file `index.html`

   Se non si dispone di un file `index.html`, è possibile utilizzare il seguente codice HTML per crearne uno:

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. Salva il file indice in locale.

   Il nome del file del documento indice deve corrispondere esattamente al nome del documento indice immesso nella finestra di dialogo **Hosting sito Web statico**. Il nome del documento indice distingue tra maiuscole e minuscole. Ad esempio, se si immette `index.html` per il nome del **documento Indice** nella finestra di dialogo **Hosting sito Web statico**, anche il nome del file del documento indice deve essere `index.html` e non `Index.html`.

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket che desideri utilizzare per l’hosting di un sito web statico.

1. Abilitare l'hosting di siti Web statici per il bucket e inserire il nome esatto del documento di indice (ad esempi, `index.html`). Per ulteriori informazioni, consulta [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md).

   Dopo aver abilitato l'hosting di siti Web statici, procedere alla fase 6. 

1. Per caricare il documento di indice nel bucket, eseguire una delle operazioni seguenti:
   + Trascinare e rilasciare il file di indice nell'elenco bucket della console.
   + Scegliere **Upload (Carica)** e seguire le istruzioni per scegliere e caricare il file di indice.

   Per step-by-step istruzioni, consulta[Caricamento degli oggetti](upload-objects.md).

1. (Opzionale) Caricare altri contenuti del sito Web nel bucket.

## Fase 7: caricare un documento di errore
<a name="configure-error-document-root-domain"></a>

Quando abiliti l'hosting di siti Web statici per il tuo bucket, specifichi il nome del documento di errore (ad esempio, **404.html**). Dopo avere abilitato l'hosting di siti Web statici per il bucket, carichi un file HTML con il nome del documento di errore nel bucket.

**Per configurare un documento di errore**

1. Crea un documento di errore, ad esempio `404.html`.

1. Salva il file del documento di errore in locale.

   Il nome del documento di errore fa distinzione tra maiuscole e minuscole e deve corrispondere esattamente al nome immesso quando hai attivato l'hosting statico di siti Web. Ad esempio, se specifichi `404.html` per il nome del **documento di errore** nella finestra di dialogo **Hosting sito Web statico**, anche il nome file del documento di errore dovrà essere `404.html`.

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket, seleziona il nome del bucket che desideri utilizzare per l’hosting di un sito web statico.

1. Abilita l'hosting di siti Web statici per il bucket e inserisci il nome esatto del documento di errore (ad esempio, `404.html`). Per ulteriori informazioni, consultare [Abilitazione dell'hosting di siti Web](EnableWebsiteHosting.md) e [Configurazione di un documento di errore personalizzato](CustomErrorDocSupport.md).

   Dopo aver abilitato l'hosting di siti Web statici, procedere alla fase 6. 

1. Per caricare il documento di errore nel bucket, completa una delle operazioni riportate di seguito:
   + Trascina e rilascia il file del documento di errore nell'elenco dei bucket della console.
   + Scegliere **Upload (Carica)** e seguire le istruzioni per scegliere e caricare il file di indice.

   Per step-by-step istruzioni, consulta[Caricamento degli oggetti](upload-objects.md).

## Fase 8: modificare le impostazioni dell'accesso pubblico ai blocchi S3
<a name="root-domain-walkthrough-configure-bucket-permissions"></a>

In questo esempio, è possibile modificare le impostazioni di blocco dell'accesso pubblico per il bucket di dominio (`example.com`) per consentire l'accesso pubblico.

Per impostazione predefinita, Amazon S3 blocca l'accesso pubblico all'account e ai bucket. Per utilizzare un bucket per ospitare un sito Web statico, puoi seguire questa procedura per modificare le impostazioni di blocco dell'accesso pubblico: 

**avvertimento**  
Prima di completare questi passaggi, consulta [Blocco dell'accesso pubblico allo storage Amazon S3](access-control-block-public-access.md) per assicurarsi di aver compreso e accettato i rischi connessi alla concessione dell'accesso pubblico. Quando si disattivano le impostazioni di blocco dell'accesso pubblico per rendere pubblico il bucket, chiunque su Internet può accedere al bucket. Consigliamo di bloccare tutti gli accessi pubblici ai bucket.

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Seleziona il nome del bucket configurato come sito Web statico.

1. Seleziona **Autorizzazioni**.

1. In **Blocca accesso pubblico (impostazioni bucket)**, seleziona **Modifica**.

1. Deseleziona **Blocca *tutto* l'accesso pubblico**, quindi seleziona **Salva modifiche**.  
![\[Console Amazon S3 in cui vengono mostrate le impostazioni di blocco dell'accesso pubblico a un bucket.\]](http://docs.aws.amazon.com/it_it/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   Amazon S3 disattiva le impostazioni di blocco dell'accesso pubblico per il bucket. Per creare un sito web pubblico statico, potrebbe essere necessario [modificare anche le impostazioni di blocco dell'accesso pubblico](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html) per l'account prima di aggiungere una policy del bucket. Se le impostazioni dell'account per il blocco dell'accesso pubblico sono attualmente attivate, verrà visualizzata una nota in **Blocca accesso pubblico (impostazioni bucket)**.

## Fase 9: collegare una policy del bucket
<a name="add-bucket-policy-root-domain"></a>

In questo esempio, si collega una policy del bucket al bucket di dominio (`example.com`) per consentire l'accesso pubblico in lettura. Ad esempio, sostituisci la policy del bucket dell'esempio con il nome del bucket del tuo dominio. *Bucket-Name* `example.com`

Dopo aver modificato le impostazioni di blocco dell'accesso pubblico S3, è possibile aggiungere una policy del bucket per concedere l'accesso pubblico in lettura al bucket. Quando concedi l'accesso pubblico in lettura, chiunque su Internet può accedere al bucket.

**Importante**  
La policy seguente è solo un esempio e consente l'accesso completo ai contenuti del bucket. Prima di continuare con questa fase, esamina l'argomento relativo a [come proteggere i file nel bucket Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/) per assicurarti di comprendere le best practice per la protezione dei file nel bucket S3 e i rischi connessi alla concessione dell'accesso pubblico .

1. In **Bucket**, scegli il nome del bucket.

1. Seleziona **Autorizzazioni**.

1. In **Policy del bucket**, seleziona **Modifica**.

1. Per concedere l'accesso in lettura pubblico al sito Web, copiare la policy del bucket seguente e incollarla in **Editor della policy del bucket**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. Aggiorna `Resource` al tuo nome bucket.

   Nell'esempio precedente, bucket policy, *Bucket-Name* è un segnaposto per il nome del bucket. Per utilizzare questa policy di bucket con il proprio bucket, è necessario aggiornare il nome in modo che corrisponda al bucket.

1. Seleziona **Salva modifiche**.

   Viene visualizzato un messaggio che indica che la policy del bucket è stata aggiunta correttamente.

   Se viene visualizzato l'errore `Policy has invalid resource`, conferma che il nome del bucket nella policy di bucket corrisponde al nome del bucket. Per informazioni sull'aggiunta di una policy del bucket, consulta [In che modo aggiungere una policy del bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)

   Se viene visualizzato un messaggio di errore e non è possibile salvare la policy di bucket, controlla le impostazioni di blocco dell'accesso pubblico all'account e al bucket per confermare che consenti l'accesso pubblico al bucket.

Nella prossima fase, è possibile determinare gli endpoint del sito Web e testare l'endpoint del dominio.

## Fase 10: testare l'endpoint del dominio
<a name="root-domain-walkthrough-test-website"></a>

Dopo aver configurato il bucket di dominio per ospitare un sito Web pubblico, puoi testare l'endpoint. Per ulteriori informazioni, consulta [Endpoint del sito Web](WebsiteEndpoints.md). Sarai in grado di testare l'endpoint solo per il bucket di dominio, poiché il bucket del sottodominio è impostato per il reindirizzamento del sito Web e non per l'hosting statico del sito Web. 

**Nota**  
Amazon S3 non supporta l'accesso HTTPS al sito web. Se desideri utilizzare HTTPS, puoi utilizzare Amazon CloudFront per servire un sito Web statico ospitato su Amazon S3.  
Per ulteriori informazioni, consulta [Come si usa CloudFront per servire un sito Web statico ospitato su Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)? e [Richiede HTTPS per la comunicazione tra gli spettatori e](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html). CloudFront

1. In **Bucket**, scegli il nome del bucket.

1. Scegliere **Properties (Proprietà)**.

1. Nella parte inferiore della pagina, in **Static website hosting (Hosting di siti Web statici)**, scegliere il proprio **Bucket website endpoint (Endpoint del sito web Bucket)**.

   Il documento indice viene aperto in una finestra del browser separata.

Nella fase successiva, utilizzi Amazon Route 53 per consentire ai clienti di utilizzare entrambe le opzioni personalizzate URLs per accedere al tuo sito. 

## Fase 11: aggiungere record alias per il dominio e il sottodominio
<a name="root-domain-walkthrough-add-record-to-hostedzone"></a>

In questa fase, creare i record alias che si aggiungono alla zona ospitata per le mappe di dominio `example.com` e `www.example.com`. Anziché usare indirizzi IP, i record alias utilizzano gli endpoint dei siti Web Amazon S3. Amazon Route 53 conserva la mappatura dei record alias e degli indirizzi IP dove risiedono i bucket Amazon S3. Creare due record di alias, uno per il dominio root e uno per il sottodominio.

### Aggiungere un record di alias per il dominio root e il sottodominio
<a name="add-alis-record"></a>

**Per aggiungere un record di alias al dominio root (`example.com`)**

1. Apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).
**Nota**  
Se non utilizzi già Route 53, consulta la [Fase 1: registrare un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name) nella *Guida per gli sviluppatori di Amazon Route 53*. Dopo la configurazione, puoi tornare alle istruzioni.

1. Scegli **Hosted Zones (Zone ospitate)**.

1. Nell'elenco delle zone ospitate, scegli il none della zona ospitata corrispondente al nome di dominio.

1. Scegli **Create record (Crea record)**.

1. Seleziona **Passa alla procedura guidata**.
**Nota**  
Se desideri utilizzare la creazione rapida per creare i record alias, consulta [Configurazione di Route 53 per instradare il traffico a un bucket S3](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RoutingToS3Bucket.html#routing-to-s3-bucket-configuring).

1. Scegli **Simple routing (Instradamento semplice)** e scegli **Next (Successivo)**.

1. Scegli **Define simple record (Definisci record semplice)**.

1. In **Record name (Nome del record)** accetta il valore predefinito, che è il nome della zona ospitata e del dominio.

1. In **Value/Route traffic to (Valore/Instradamento traffico a)**, seleziona **Alias to S3 website endpoint (Alias all'endpoint del sito Web S3)**.

1. Scegli la regione.

1. Scegli il bucket S3.

   Il nome del bucket deve corrispondere al nome visualizzato nella casella **Name (Nome)**. Nell'elenco **Scegli bucket S3**, il nome del bucket viene visualizzato con l'endpoint del sito Web di Amazon S3 per la regione in cui è stato creato il bucket, ad esempio, `s3-website-us-west-1.amazonaws.com (example.com)`.

   **Scegli bucket S3** riporta un bucket se:
   + Hai configurato il bucket come sito Web statico.
   + Il nome del bucket è uguale al nome del record che stai creando.
   + La corrente Account AWS ha creato il bucket.

   Se il bucket non viene visualizzato nell'elenco **Scegli bucket S3**, specifica l'endpoint del sito Web di Amazon S3 per la regione in cui è stato creato il bucket, ad esempio **s3-website-us-west-2.amazonaws.com**. Per un elenco completo degli endpoint dei siti Web Amazon S3, consulta [Endpoint di siti Web Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Per maggiori informazioni sulla destinazione alias, consulta [Traffico valore/percorso](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) nella *Guida per gli sviluppatori di Amazon Route 53*.

1. In **Tipo di record**, scegli **A ‐ Indirizza il traffico verso un IPv4 indirizzo e alcune AWS risorse**.

1. Per **Evaluate target health (Valuta integrità target)**, seleziona **No**.

1. Scegli **Define simple record (Definisci record semplice)**.

**Per aggiungere un record di alias al sottodominio (`www.example.com`)**

1. In **Configura record**, seleziona **Definisci record semplice**.

1. In **Record name (Nome del record)** per il sottodominio digita `www`.

1. In **Value/Route traffic to (Valore/Instradamento traffico a)**, seleziona **Alias to S3 website endpoint (Alias all'endpoint del sito Web S3)**.

1. Scegli la regione.

1. Seleziona il bucket S3, ad esempi, `s3-website-us-west-2.amazonaws.com (www.example.com)`.

   Se il bucket non viene visualizzato nell'elenco **Scegli bucket S3**, specifica l'endpoint del sito Web di Amazon S3 per la regione in cui è stato creato il bucket, ad esempio **s3-website-us-west-2.amazonaws.com**. Per un elenco completo degli endpoint dei siti Web Amazon S3, consulta [Endpoint di siti Web Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Per maggiori informazioni sulla destinazione alias, consulta [Traffico valore/percorso](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) nella *Guida per gli sviluppatori di Amazon Route 53*.

1. In **Tipo di record**, scegli **A ‐ Indirizza il traffico verso un IPv4 indirizzo e alcune AWS risorse**.

1. Per **Evaluate target health (Valuta integrità target)**, seleziona **No**.

1. Scegli **Define simple record (Definisci record semplice)**.

1. Nella pagina **Configura record**, scegli **Crea record**.

**Nota**  
In genere le modifiche si propagano a tutti i server Route 53 entro 60 secondi. Al termine della propagazione, potrai instradare il traffico al tuo bucket Amazon S3 utilizzando i nomi dei record alias creati in questa procedura.

### Aggiungi un record di alias per il dominio root e il sottodominio (vecchia console Route 53)
<a name="add-alis-record-old"></a>

**Per aggiungere un record di alias al dominio root (`example.com`)**

La console Route 53 è stata riprogettata. Nella console Route 53 è possibile utilizzare temporaneamente la vecchia console. Se scegli di lavorare con la vecchia console Route 53, attenersi alla procedura riportata di seguito.

1. Apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).
**Nota**  
Se non utilizzi già Route 53, consulta la [Fase 1: registrare un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name) nella *Guida per gli sviluppatori di Amazon Route 53*. Dopo la configurazione, puoi tornare alle istruzioni.

1. Scegli **Hosted Zones (Zone ospitate)**.

1. Nell'elenco delle zone ospitate, scegli il none della zona ospitata corrispondente al nome di dominio.

1. Scegliere **Create Record Set (Crea set di record)**.

1. Specifica i seguenti valori:  
**Nome**  
Accetta il valore predefinito, che è il nome della zona ospitata e del dominio.   
Per il dominio root, non è necessario aggiungere ulteriori informazioni nel campo **Name (Nome)**.  
**Tipo**  
Scegli **A — IPv4 indirizzo**.  
**Alias**  
Scegliere **Yes (Sì)**.  
**Destinazione alias**  
Nella sezione **endpoint del sito Web S3** dell'elenco, scegliere il nome del bucket.   
Il nome del bucket deve corrispondere al nome visualizzato nella casella **Name (Nome)**. Nell'elenco **Alias Target (Destinazione alias)**, il nome bucket è seguito dall'endpoint del sito web Amazon S3 per la regione in cui è stato creato il bucket, ad esempio `example.com (s3-website-us-west-2.amazonaws.com)`. **Alias Target (Destinazione alias)** elenca un bucket se:  
   + Hai configurato il bucket come sito Web statico.
   + Il nome del bucket è uguale al nome del record che stai creando.
   + La corrente Account AWS ha creato il bucket.
Se il bucket non viene visualizzato nell'elenco di **Alias target (Target alias)**, immetti l'endpoint del sito Web Amazon S3 per la regione in cui è stato creato il bucket, ad esempio `s3-website-us-west-2`. Per un elenco completo degli endpoint dei siti Web Amazon S3, consulta [Endpoint di siti Web Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints). Per maggiori informazioni sulla destinazione alias, consulta [Traffico valore/percorso](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target) nella *Guida per gli sviluppatori di Amazon Route 53*.  
**Policy di instradamento**  
Accettare il valore predefinito **Simple (Semplice)**.  
**Valutazione dello stato target**  
Accettare il valore predefinito **No**.

1. Seleziona **Crea**.

**Per aggiungere un record di alias al sottodominio (`www.example.com`)**

1. Nella zona ospitata del dominio root (`example.com`), scegliere **Create Record Set (Crea set di record)**.

1. Specifica i seguenti valori:  
**Nome**  
Per il sottodominio, immettere `www` nella casella.   
**Tipo**  
Scegli **A — IPv4 indirizzo**.  
**Alias**  
Scegliere **Yes (Sì)**.  
**Destinazione alias**  
Nella sezione **S3 website endpoints (Endpoint del sito web S3)** dell'elenco scegliere lo stesso nome di bucket visualizzato nel campo **Name (Nome)**, ad esempio `www.example.com (s3-website-us-west-2.amazonaws.com)`.  
**Policy di instradamento**  
Accettare il valore predefinito **Simple (Semplice)**.  
**Valutazione dello stato target**  
Accettare il valore predefinito **No**.

1. Seleziona **Crea**.

**Nota**  
In genere le modifiche si propagano a tutti i server Route 53 entro 60 secondi. Al termine della propagazione, potrai instradare il traffico al tuo bucket Amazon S3 utilizzando i nomi dei record alias creati in questa procedura.

## Fase 12: testare il sito Web
<a name="root-domain-testing"></a>

Verificare che il sito Web e il reindirizzamento funzionino correttamente. Nel tuo browser, inserisci il tuo URLs. In questo esempio, puoi provare quanto segue URLs:
+ **Dominio** (`http://example.com`) – Visualizza il documento indice nel bucket `example.com`.
+ **Sottodominio** (`http://www.example.com`) – Reindirizza la richiesta a `http://example.com`. Viene visualizzato il documento di indice nel bucket `example.com`.

Se il tuo sito web o i link di reindirizzamento non funzionano, puoi provare quanto segue:
+ **Cancella cache** – Cancella la cache del tuo browser Web.
+ **Controlla i server dei nomi** – Se la pagina Web e i collegamenti di reindirizzamento non funzionano dopo avere cancellato la cache, puoi confrontare i server dei nomi per il dominio e i server dei nomi per la zona ospitata. Se i server dei nomi non corrispondono, potrebbe essere necessario aggiornare i server dei nomi di dominio in modo che corrispondano a quelli elencati nella zona ospitata. Per ulteriori informazioni, consulta [Aggiunta o modifica di server dei nomi e associazione di record per un dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html).

Dopo aver testato con successo il dominio principale e il sottodominio, puoi configurare una CloudFront distribuzione [Amazon](https://aws.amazon.com/cloudfront) per migliorare le prestazioni del tuo sito Web e fornire log da utilizzare per esaminare il traffico del sito Web. Per ulteriori informazioni, consulta [Velocizza il tuo sito Web con Amazon CloudFront](website-hosting-cloudfront-walkthrough.md).

# Velocizza il tuo sito Web con Amazon CloudFront
<a name="website-hosting-cloudfront-walkthrough"></a>

Puoi usare [Amazon CloudFront](https://aws.amazon.com/cloudfront) per migliorare le prestazioni del tuo sito Web Amazon S3. CloudFront rende disponibili i file del tuo sito web (come HTML, immagini e video) dai data center di tutto il mondo (note come *edge location*). Quando un visitatore richiede un file del sito Web, CloudFront reindirizza automaticamente la richiesta a una copia del file nella posizione di confine più vicina. Ciò determina tempi di download più rapidi rispetto alla richiesta di contenuto da un data center situato più lontano da parte del visitatore.

CloudFront memorizza nella cache i contenuti nelle edge location per un periodo di tempo specificato dall'utente. Se un visitatore richiede contenuti che sono stati memorizzati nella cache per un periodo superiore alla data di scadenza, CloudFront controlla il server di origine per verificare se è disponibile una versione più recente del contenuto. Se è disponibile una versione più recente, CloudFront copia la nuova versione nell'edge location. Le modifiche apportate ai contenuti originali vengono replicate nelle edge location quando i visitatori richiedono i contenuti. 

**Utilizzo CloudFront senza Route 53**  
Il tutorial in questa pagina utilizza Route 53 per indicare la tua CloudFront distribuzione. Tuttavia, se desideri fornire contenuti ospitati in un bucket Amazon S3 CloudFront senza utilizzare Route 53, consulta [Amazon CloudFront Tutorials: Configurazione di una distribuzione dinamica dei contenuti per](https://aws.amazon.com/cloudfront/getting-started/S3/) Amazon S3. Quando servi contenuti ospitati in un bucket Amazon S3 utilizzando CloudFront, puoi utilizzare qualsiasi nome di bucket e sono supportati sia HTTP che HTTPS. 

**Configurazione automatica con un modello CloudFormation**  
Per ulteriori informazioni sull'utilizzo di un CloudFormation modello per configurare un sito Web statico sicuro che crea una CloudFront distribuzione al servizio del tuo sito Web, consulta la sezione Guida [introduttiva a un sito Web statico sicuro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html) nella *Amazon CloudFront Developer Guide*.

**Topics**
+ [Fase 1: Creare una CloudFront distribuzione](#create-distribution)
+ [Passaggio 2: aggiornare il set di record per il dominio e sottodominio](#update-record-sets)
+ [(Facoltativo) Fase 3: controllare i file di log](#check-log-files)

## Fase 1: Creare una CloudFront distribuzione
<a name="create-distribution"></a>

Innanzitutto, crei una CloudFront distribuzione. Ciò rende il sito Web accessibile a data center di tutto il mondo.

**Per creare una distribuzione con un'origine Amazon S3**

1. Apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Scegliere **Create Distribution (Crea distribuzione)**.

1. Nella pagina **Create Distribution (Crea distribuzione)**, nella sezione **Origin Settings (Impostazioni origine)**, digitare l'endpoint del sito Web Amazon S3 per il bucket in **Origin Domain Name (Nome dominio di origine)**, ad esempio **example.com.s3-website.us-west-1.amazonaws.com**.

   CloudFront compila l'**Origin ID** per te.

1. Lasciare i valori predefiniti in **Default Cache Behavior Settings** (Impostazioni predefinite comportamento cache). 

   Con le impostazioni predefinite per **Viewer Protocol Policy (Policy protocollo visualizzatore)**, è possibile utilizzare HTTPS per il sito Web statico. Per ulteriori informazioni su queste opzioni di configurazione, consulta [Valori che specifichi quando crei o aggiorni una distribuzione Web](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithDownloadDistributions.html#DownloadDistValuesYouSpecify) nella *Amazon CloudFront Developer Guide*.

1. In **Impostazioni distribuzione**, esegui quanto indicato di seguito:

   1. Lascia **Classe prezzo** impostato su **Utilizza tutte le edge location (prestazioni migliori)**.

   1. Imposta **i nomi di dominio alternativi (CNAMEs)** sul dominio principale e sul `www` sottodominio. In questo tutorial, questi sono rappresentati da `example.com` e `www.example.com`. 
**Importante**  
Prima di eseguire questo passaggio, prendete nota dei [requisiti per l'utilizzo di nomi di dominio alternativi](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements), in particolare della necessità di un certificato valido. SSL/TLS 

   1. Per **SSL Certificate (Certificato SSL)**, scegliere **Custom SSL Certificate (example.com) (Certificato SSL personalizzato (example.com))**, quindi scegliere il certificato personalizzato che copre i nomi di dominio e sottodominio.

      Per ulteriori informazioni, consulta il [certificato SSL](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesSSLCertificate) nella *Amazon CloudFront Developer Guide*.

   1. In **Default Root Object (Oggetto root predefinito)**, immettere il nome del documento indice, ad esempio `index.html`. 

      Se l'URL utilizzato per accedere alla distribuzione non contiene un nome di file, la CloudFront distribuzione restituisce il documento indice. L'**oggetto root predefinito** deve corrispondere esattamente al nome del documento indice per il sito Web statico. Per ulteriori informazioni, consulta [Configurazione di un documento indice](IndexDocumentSupport.md).

   1. Imposta **Log** su **On**.
**Importante**  
Quando crei o aggiorni una distribuzione e abiliti la CloudFront registrazione, CloudFront aggiorna l'elenco di controllo degli accessi ai bucket (ACL) per concedere all'`awslogsdelivery`account le `FULL_CONTROL` autorizzazioni per scrivere i log nel bucket. Per ulteriori informazioni, consulta la sezione [Autorizzazioni necessarie per configurare la registrazione standard e accedere ai file di registro](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership) nella *Amazon CloudFront Developer Guide*. Se il bucket che memorizza i log utilizza l'impostazione imposta dal proprietario del bucket per disabilitare S3 Object Ownership ACLs, CloudFront non può scrivere log nel bucket. Per ulteriori informazioni, consulta [Controllo della proprietà degli oggetti e disattivazione ACLs del bucket](about-object-ownership.md).

   1. In **Bucket per log**, scegli il bucket log creato.

      Per ulteriori informazioni sulla configurazione di un bucket di registrazione, consulta [(Facoltativo) Registrazione del traffico Web](LoggingWebsiteTraffic.md).

   1. Per archiviare i log generati dal traffico della distribuzione CloudFront in una cartella, in **Log Prefix (Prefisso log)**, immetti il nome della cartella.

   1. Mantieni i valori predefiniti di tutte le altre impostazioni.

1. Scegliere **Create Distribution (Crea distribuzione)**.

1. Per visualizzare lo stato attuale della distribuzione, cercare la distribuzione nella console e controllare la colonna **Status** (Stato). 

   Lo stato `InProgress` indica che la distribuzione non è ancora completamente distribuita.

   Quando la tua distribuzione è distribuita, si può fare riferimento ai propri contenuti con il nuovo nome dominio CloudFront.

1. Registra il valore del **nome di dominio** mostrato nella console, ad esempio. CloudFront `dj4p1rv6mvubz.cloudfront.net` 

1. Per verificare che la CloudFront distribuzione funzioni, inserisci il nome di dominio della distribuzione in un browser web.

   Se il tuo sito web è visibile, la CloudFront distribuzione funziona. Se il tuo sito Web ha un dominio personalizzato registrato con Amazon Route 53, avrai bisogno del nome di CloudFront dominio per aggiornare il record impostato nel passaggio successivo.

## Passaggio 2: aggiornare il set di record per il dominio e sottodominio
<a name="update-record-sets"></a>

Ora che hai creato correttamente una CloudFront distribuzione, aggiorna il record di alias in Route 53 in modo che punti alla nuova CloudFront distribuzione.

**Per aggiornare il record di alias in modo che punti a una distribuzione CloudFront**

1. Apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1. Nel riquadro di navigazione a sinistra, scegliere **Hosted zones (Zone ospitate)**.

1. Nella pagina **Hosted Zones (Zone ospitate)**, scegliere la hosted zone creata per il sottodominio, per esempio `www.example.com`.

1. In **Records**, selezionare il record *A* creato per il sottodominio. 

1. In **Record details (Dettagli record)**, scegliere **Edit record (Modifica record)**.

1. In **Instrada il traffico verso**, scegli **Alias per la CloudFront distribuzione**.

1. In **Scegli la distribuzione**, scegli la CloudFront distribuzione.

1. Scegli **Save** (Salva).

1. Per reindirizzare il record *A* per il dominio radice alla CloudFront distribuzione, ripeti questa procedura per il dominio radice, `example.com` ad esempio.

   L'aggiornamento ai set di record avviene entro 2-48 ore. 

1. Per verificare se i nuovi record *A* sono effettivi, in un browser Web immetti l'URL del sottodominio, ad esempio `http://www.example.com`. 

   Se il browser non reindirizza più al dominio root, ad esempio `http://example.com`, i nuovi record A sono effettivi. Quando il nuovo record *A* ha effetto, il traffico indirizzato dal nuovo record *A* alla CloudFront distribuzione non viene reindirizzato al dominio radice. Tutti i visitatori che fanno riferimento al sito utilizzando `http://example.com` o `http://www.example.com` vengono reindirizzati alla CloudFront edge location più vicina, dove possono usufruire di tempi di download più rapidi.
**Suggerimento**  
I browser possono effettuare il caching delle impostazioni di reindirizzamento. Se pensi che le impostazioni del nuovo record *A* dovrebbero essere diventate effettive ma il tuo browser reindirizza ancora `http://www.example.com` a `http://example.com`, prova a svuotare la cache e a eliminare la cronologia del browser, a chiudere e riaprire la tua applicazione browser o a utilizzare un browser Web differente. 

## (Facoltativo) Fase 3: controllare i file di log
<a name="check-log-files"></a>

I log di accesso indicano quante persone stanno visitando il sito Web. Inoltre contengono preziosi dati aziendali che si possono analizzare con altri servizi, come [Amazon EMR](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/). 

CloudFront i log vengono archiviati nel bucket e nella cartella scelti quando crei una CloudFront distribuzione e abiliti la registrazione. CloudFront scrive i log nel tuo bucket di log entro 24 ore da quando vengono effettuate le richieste corrispondenti.

**Per visualizzare i file di log del sito Web**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Scegliere il nome del bucket log per il tuo sito web.

1. Scegli la cartella dei CloudFront log.

1. Scarica i `.gzip` file scritti da CloudFront prima di aprirli.

   Se hai creato il tuo sito Web solo come esercizio di apprendimento, puoi eliminare le risorse che hai allocato per non accumulare più addebiti. A questo proposito, consulta [Pulizia delle risorse di esempio](getting-started-cleanup.md). Una volta eliminate le risorse AWS , il sito Web non è più disponibile.

# Pulizia delle risorse di esempio
<a name="getting-started-cleanup"></a>

Se il sito Web statico è stato creato come esercizio di apprendimento, elimina le risorse AWS che allocate per non accumulare più addebiti. Una volta eliminate le risorse AWS , il sito Web non è più disponibile.

**Topics**
+ [Passaggio 1: eliminare la CloudFront distribuzione Amazon](#getting-started-cleanup-cloudfront)
+ [Passaggio 2: eliminare la zona ospitata Route 53](#getting-started-cleanup-route53)
+ [Fase 3: disabilitare la registrazione ed eliminare il bucket S3](#getting-started-cleanup-s3)

## Passaggio 1: eliminare la CloudFront distribuzione Amazon
<a name="getting-started-cleanup-cloudfront"></a>

Prima di eliminare una CloudFront distribuzione Amazon, devi disabilitarla. Una distribuzione disattivata non è più funzionante e non accumula addebiti. Puoi attivare una distribuzione disattivata in qualsiasi momento. Una volta eliminata una distribuzione disattivata, non è più disponibile.

**Per disabilitare ed eliminare una CloudFront distribuzione**

1. Apri la CloudFront console all'indirizzo[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Selezionare la distribuzione che si vuole disattivare e scegliere **Disable (Disattiva)**.

1. Quando viene richiesta la conferma, seleziona **Sì, disattiva**.

1. Selezionare la distribuzione disattivata e scegliere **Delete (Elimina)**.

1. Quando viene richiesta la conferma, seleziona **Sì, elimina**.

## Passaggio 2: eliminare la zona ospitata Route 53
<a name="getting-started-cleanup-route53"></a>

Prima di eliminare la hosted zone, devi eliminare i set di record creati. Non è necessario eliminare i record NS e SOA; vengono eliminati automaticamente quando elimini la hosted zone.

**Per eliminare i set di record**

1. Apri la console Route 53 all'indirizzo [https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/).

1.  Nell'elenco dei nomi di dominio, selezionare il nome di dominio, quindi selezionare **Vai a set di record**. 

1. Nell'elenco dei set di record, selezionare le caselle che corrispondono ai record *A* creati. 

   Il tipo di ciascun set di record è elencato nella colonna **Tipo**. 

1. Seleziona **Elimina set di record**. 

1. Quando viene richiesta la conferma, seleziona **Conferma**. 

**Per eliminare una zona ospitata Route 53**

1.  Continuando dalla procedura precedente, selezionare **Back to Hosted Zones (Torna a zone ospitate)**. 

1.  Selezionare il nome di dominio, quindi selezionare **Delete Hosted Zone (Elimina hosted zone)**. 

1.  Quando viene richiesta la conferma, seleziona **Conferma**. 

## Fase 3: disabilitare la registrazione ed eliminare il bucket S3
<a name="getting-started-cleanup-s3"></a>

Prima di eliminare il bucket S3 in uso, accertarsi che le attività di logging siano disattivate per quel bucket. Altrimenti, AWS continua a scrivere i log nel bucket mentre lo elimini.

**Per disattivare il log per un bucket**

1. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. In **Buckets (Bucket)**, scegliere il nome del bucket e quindi scegliere **Properties (Proprietà)**.

1. Da **Properties (Proprietà)**, selezionare **Log**.

1. Deseleziona la casella **Attivato**.

1. Scegliere **Save (Salva)**.

È possibile ora eliminare il bucket. Per ulteriori informazioni, consulta [Eliminazione di un bucket per uso generico](delete-bucket.md).

# Implementazione di un sito Web statico su AWS Amplify Hosting da un bucket generico S3
<a name="website-hosting-amplify"></a>

Ti consigliamo di utilizzare [Hosting AWS Amplify](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html) per ospitare contenuti di siti web statici archiviati su S3. Amplify Hosting è un servizio completamente gestito che semplifica la distribuzione dei siti Web su una rete di distribuzione dei contenuti (CDN) disponibile a livello globale alimentata da CloudFront Amazon, consentendo l'hosting sicuro di siti Web statici senza una configurazione estesa. Con AWS Amplify Hosting, puoi selezionare la posizione dei tuoi oggetti all'interno del tuo bucket generico, distribuire i tuoi contenuti su un CDN gestito e generare un URL HTTPS pubblico per rendere il tuo sito web accessibile ovunque. L'implementazione di un sito web statico utilizzando Hosting Amplify offre i seguenti vantaggi e funzionalità:
+ **Distribuzione alla rete di distribuzione AWS dei contenuti (CDN) fornita da Amazon CloudFront**: CloudFront è un servizio Web che accelera la distribuzione di contenuti Web statici e dinamici agli utenti. CloudFront distribuisce i tuoi contenuti attraverso una rete mondiale di data center denominati edge location. Quando un utente richiede il contenuto che stai utilizzando CloudFront, la richiesta viene indirizzata all'edge location che offre la latenza (ritardo) più bassa, in modo che i contenuti vengano forniti con le migliori prestazioni possibili, maggiore affidabilità e disponibilità. Per ulteriori informazioni, consulta [How CloudFront delivery content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html) nell'*Amazon CloudFront Developer Guide*.
+ **Supporto HTTPS**: fornisce comunicazioni e trasferimento di dati sicuri tra il proprio sito web e il browser web dell'utente.
+ **Domini personalizzati**: consente di collegare facilmente il sito web a un URL personalizzato acquistato da un registrar di dominio come Amazon Route 53. 
+ **Certificati SSL personalizzati**: quando si configura un dominio personalizzato, è possibile utilizzare il certificato gestito predefinito fornito da Amplify oppure è possibile utilizzare un certificato personalizzato acquistato dall'autorità di certificazione di terze parti di propria scelta.
+ **Metriche e CloudWatch monitoraggio integrati**: monitora il traffico, gli errori, il trasferimento dei dati e la latenza del tuo sito web.
+ **Protezione con password**: limita l'accesso al sito web impostando un nome utente e una password nella console Amplify.
+ **Reindirizzamenti e riscritture**: consentono di creare regole di reindirizzamento e riscrittura nella console Amplify per permettere a un server web di reindirizzare la navigazione da un URL all'altro.

Quando distribuisci un'applicazione da un bucket generico Amazon S3 ad Amplify Hosting AWS , i costi si basano sul modello di prezzo di Amplify. Per ulteriori informazioni, consultare [AWS Amplify Prezzi](https://aws.amazon.com/amplify/pricing/).

**Importante**  
Amplify Hosting non è disponibile in tutti i paesi in cui è disponibile Regioni AWS Amazon S3. Per implementare un sito web statico su Hosting Amplify, il bucket Amazon S3 per uso generico contenente il sito web deve trovarsi in una Regione in cui è disponibile Amplify. Per l'elenco delle Regioni in cui è disponibile Amplify, consulta [Endpoint Amplify](https://docs.aws.amazon.com/general/latest/gr/amplify.html#amplify_region) in *Riferimenti generali di Amazon Web Services*.

Puoi avviare il processo di distribuzione dalla console Amazon S3, dalla console Amplify, dalla CLI AWS o dal. AWS SDKs È possibile eseguire l'implementazione su Amplify solo da un bucket per uso generico situato nel proprio account. Amplify non supporta l'accesso a un bucket tra account. 

Utilizza le seguenti istruzioni per implementare un sito web statico da un bucket Amazon S3 per uso generico su Hosting Amplify a partire dalla console Amazon S3.

## Implementazione di un sito web statico su Amplify dalla console S3
<a name="DeployAmplify"></a>

**Per implementare un sito web statico dalla console Amazon S3**

1. Accedi a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Nell'elenco **Bucket**, scegli il bucket per uso generico che contiene il sito web che desideri implementare su Hosting Amplify.

1. Scegliere la scheda **Properties (Proprietà)**.

1. In **Hosting di siti Web statici**, scegli **Crea l'app Amplify**. A questo punto, il processo di implementazione passerà alla console Amplify.

1. Nella pagina **Deploy with S3** (Implementa con S3), procedi nel seguente modo.

   1. Per il **Nome dell'app**, inserire il nome dell'app o del sito web.

   1. Per il **Nome del ramo**, inserire il nome del backend dell'app.

   1. Per **Posizione S3 degli oggetti da ospitare**, inserisci il percorso della directory del bucket per uso generico o scegliere **Sfoglia S3** per individuarlo e selezionarlo.

1. Scegliere **Save and deploy (Salva e distribuisci)**.

**Nota**  
 Se si aggiorna uno qualsiasi degli oggetti di un sito web statico nel bucket per uso generico ospitato su Amplify, è necessario implementare nuovamente l'applicazione su Hosting Amplify per rendere effettive le modifiche. Hosting Amplify non rileva automaticamente le modifiche apportate al bucket. Per ulteriori informazioni, consulta [Updating a static website deployed to Amplify from an S3 bucket](https://docs.aws.amazon.com//amplify/latest/userguide/update-website-deployed-from-s3.html) nella *Guida per l'utente di Hosting AWS Amplify*. 

Per iniziare direttamente dalla console Amplify, consulta [Deploying a static website from S3 using the Amplify console](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html) nella *Guida per l'utente di Hosting AWS Amplify*.

*Per iniziare a utilizzare la AWS SDKs, consulta [Creazione di una policy bucket per distribuire un sito Web statico da S3 utilizzando la Guida per AWS SDKs l'](https://docs.aws.amazon.com//amplify/latest/userguide/deploy-with-sdks.html)utente di Amplify Hosting AWS .* 