

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

# Limitazione dell’accesso a un’origine Amazon S3
<a name="private-content-restricting-access-to-s3"></a>

CloudFront offre due modi per inviare richieste autenticate a un'origine Amazon S3*: Origin Access Control (OAC) *e Origin Access** Identity (OAI). OAC consente di proteggere le origini, come Amazon S3. 

Ti *consigliamo* di utilizzare OAC perché supporta le seguenti funzionalità:
+ Tutti i bucket Amazon S3 in totale Regioni AWS, comprese le regioni opt-in lanciate dopo dicembre 2022
+ [Crittografia lato server con chiavi AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) (SSE-KMS) Amazon S3
+ Richieste dinamiche (`PUT` e `DELETE`) su Amazon S3

OAI non supporta queste funzionalità o richiede soluzioni alternative aggiuntive in tali scenari. Se stai già utilizzando OAI e desideri migrare, consulta [Migrazione dell'identità di accesso origine (OAI) al controllo degli accessi origine (OAC)](#migrate-from-oai-to-oac).

**Note**  
Quando usi CloudFront OAC con le origini dei bucket Amazon S3, devi impostare **Amazon S3 Object** Ownership su **Bucket owner enforced, l'impostazione predefinita per i nuovi bucket** Amazon S3. Se necessario ACLs, utilizza l'impostazione **preferita del proprietario di Bucket per mantenere il controllo sugli oggetti caricati** tramite. CloudFront
Se la tua origine è un bucket Amazon S3 configurato come [endpoint di un sito Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html), devi configurarlo CloudFront come origine personalizzata. Ciò significa che non è possibile utilizzare OAC (o OAI). OAC non supporta il reindirizzamento dell’origine tramite Lambda@Edge.
Se utilizzi un punto di accesso multiregionale Amazon S3 come CloudFront origine, vedi. [Limita l'accesso all'origine di un punto di accesso multiregionale Amazon S3](private-content-restricting-access-to-s3-mrap.md) Gli access point multiregionali S3 richiedono una configurazione OAC diversa.

I seguenti argomenti descrivono come utilizzare OAC con origine Amazon S3. 

**Argomenti**
+ [Creazione di un nuovo controllo di accesso origine](#create-oac-overview-s3)
+ [Eliminazione di una distribuzione con un OAC collegato a un bucket S3](#delete-oac-distribution-s3)
+ [Migrazione dell'identità di accesso origine (OAI) al controllo degli accessi origine (OAC)](#migrate-from-oai-to-oac)
+ [Impostazioni avanzate per il controllo dell'accesso all'origine](#oac-advanced-settings-s3)

## Creazione di un nuovo controllo di accesso origine
<a name="create-oac-overview-s3"></a>

Completa i passaggi descritti nei seguenti argomenti per configurare un nuovo controllo di accesso di origine in. CloudFront

**Topics**
+ [Prerequisiti](#oac-prerequisites-s3)
+ [Concedi l' CloudFront autorizzazione per accedere al bucket S3](#oac-permission-to-access-s3)
+ [Creazione del controllo di accesso origine](#create-oac-s3)

### Prerequisiti
<a name="oac-prerequisites-s3"></a>

Prima di creare e configurare Origin Access Control (OAC), devi disporre di una CloudFront distribuzione con un'origine di bucket Amazon S3. Questa origine deve essere un normale bucket S3, non un bucket configurato come [endpoint del sito Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html). Per ulteriori informazioni sulla configurazione di una CloudFront distribuzione con un'origine del bucket S3, consulta. [Inizia con una distribuzione CloudFront standard](GettingStarted.SimpleDistribution.md)

**Importante**  
*Quando usi OAC per proteggere la tua origine Amazon S3, la comunicazione CloudFront tra Amazon S3 e Amazon S3 *avviene* sempre tramite HTTPS, ma solo quando scegli di firmare sempre le richieste.* Devi scegliere **Sign request (consigliato)** nella console o specificarlo `always` nell' CloudFront API, AWS CLI oppure. CloudFormation   
Se scegli invece l'opzione **Do not sign requests** o **Do not override authorization header**, CloudFront utilizza il protocollo di connessione specificato nelle seguenti politiche:  
[Politica del protocollo Viewer](using-https-viewers-to-cloudfront.md) 
[Policy del protocollo di origine](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy) (solo origini personalizzate)
[Ad esempio, se scegli **Non sovrascrivere l'intestazione di autorizzazione** e desideri utilizzare HTTPS tra CloudFront e la tua origine Amazon S3, **utilizza Redirect HTTP to** HTTPS **o HTTPS** solo per la policy del protocollo del visualizzatore.](using-https-viewers-to-cloudfront.md)

### Concedi l' CloudFront autorizzazione per accedere al bucket S3
<a name="oac-permission-to-access-s3"></a>

Prima di creare un controllo di accesso all'origine (OAC) o configurarlo in una CloudFront distribuzione, assicurati che CloudFront disponga dell'autorizzazione per accedere all'origine del bucket S3. Esegui questa operazione dopo aver creato una CloudFront distribuzione, ma prima di aggiungere l'OAC all'origine S3 nella configurazione di distribuzione.

Utilizza una [policy del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) S3 per consentire al CloudFront service principal (`cloudfront.amazonaws.com`) di accedere al bucket. Utilizza un `Condition` elemento della policy per consentire l'accesso CloudFront al bucket solo quando la richiesta è per conto della CloudFront distribuzione che contiene l'origine S3. Questa è la distribuzione con l’origine S3 a cui desideri aggiungere l’OAC.

Per informazioni sull'aggiunta o la modifica di una politica del bucket, consulta [Aggiunta di una policy di bucket utilizzando la console Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) nella *Guida per l'utente di Amazon S3*.

Di seguito sono riportati alcuni esempi di policy relative ai bucket S3 che consentono una CloudFront distribuzione con accesso abilitato all'OAC a un'origine S3.

**Example Policy sui bucket S3 che consente l'accesso in sola lettura per una distribuzione con OAC abilitato CloudFront**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudFrontServicePrincipalReadOnly",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>"
        }
      }
    }
  ]
}
```

**Example Policy S3 bucket che consente l'accesso in lettura e scrittura per una distribuzione con OAC abilitato CloudFront**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudFrontServicePrincipalReadWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/CloudFront-distribution-ID>"
        }
      }
    }
  ]
}
```

#### SSE-KMS
<a name="oac-permissions-sse-kms"></a>

Se gli oggetti nell'origine del bucket S3 sono crittografati utilizzando la [crittografia lato server con AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html), devi assicurarti che la distribuzione disponga dell'autorizzazione per utilizzare la chiave. CloudFront AWS KMS [Per concedere alla CloudFront distribuzione l'autorizzazione all'uso della chiave KMS, aggiungi una dichiarazione alla politica della chiave KMS.](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) Per informazioni su come modificare un criterio delle chiavi, consulta [Modifica di una policy delle chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)nella *Guida per gli sviluppatori AWS Key Management Service *.

**Example Dichiarazione della policy della chiave KMS**  
L'esempio seguente mostra una dichiarazione AWS KMS politica che consente alla CloudFront distribuzione con OAC di accedere a una chiave KMS per SSE-KMS.  

```
{
    "Sid": "AllowCloudFrontServicePrincipalSSE-KMS",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "cloudfront.amazonaws.com"
        ]
     },
    "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
            "StringEquals": {
                "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>"
            }
        }
}
```

### Creazione del controllo di accesso origine
<a name="create-oac-s3"></a>

Per creare un controllo di accesso all'origine (OAC), puoi utilizzare l', Console di gestione AWS CloudFormation, o l'API. AWS CLI CloudFront 

------
#### [ Console ]

**Per creare un controllo di accesso all'origine**

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 pannello di navigazione a sinistra, scegli **Accesso origine**.

1. Scegli **Crea un'impostazione di controllo**.

1. Nel modulo **Crea un'impostazione di controllo**, effettua le seguenti operazioni:

   1. Nel riquadro **Dettagli**, inserisci un **Nome** e (facoltativamente) una **Descrizione** per il controllo degli accessi all'origine.

   1. Nel riquadro **Impostazioni**, si consiglia di mantenere l'impostazione predefinita (**Richieste di firma (consigliato)**). Per ulteriori informazioni, consulta [Impostazioni avanzate per il controllo dell'accesso all'origine](#oac-advanced-settings-s3).

1. Scegli S3 dal menu a discesa **tipo di origine**.

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

   Dopo aver creato l'OAC, prendere nota del **Nome**. In questa procedura, eseguire le seguenti operazioni:

**Per aggiungere un controllo di accesso di origine a un'origine S3 in una 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. Scegli una distribuzione con un'origine S3 a cui desideri aggiungere l'OAC, quindi scegli lascheda **Origini**.

1. Selezionare l'origine S3 alla quale si desidera aggiungere l'OAC, quindi scegliere **Modifica**.

1. Per **Accesso origine**, scegli **Impostazioni di controllo di accesso origine (consigliato)**.

1. Nel menu a discesa **Controllo degli accessi origine**, scegliere l'OAC che desideri utilizzare.

1. Scegli **Save changes** (Salva modifiche).

La distribuzione inizia a essere distribuita in tutte le CloudFront edge location. Quando una edge location riceve la nuova configurazione, firma tutte le richieste che invia all'origine del bucket S3.

------
#### [ CloudFormation ]

Per creare un controllo di accesso all'origine (OAC) con CloudFormation, usa il tipo di `AWS::CloudFront::OriginAccessControl` risorsa. L'esempio seguente mostra la sintassi del CloudFormation modello, in formato YAML, per creare un controllo di accesso all'origine.

```
Type: AWS::CloudFront::OriginAccessControl
Properties: 
  OriginAccessControlConfig: 
      Description: An optional description for the origin access control
      Name: ExampleOAC
      OriginAccessControlOriginType: s3
      SigningBehavior: always
      SigningProtocol: sigv4
```

*Per ulteriori informazioni, consulta [AWS::CloudFront::OriginAccessControl nella Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html) per l'AWS CloudFormation utente.*

------
#### [ CLI ]

Per creare un controllo di accesso all'origine con AWS Command Line Interface (AWS CLI), utilizzate il **aws cloudfront create-origin-access-control** comando. È possibile utilizzare un file di input per fornire i parametri di input del comando, anziché specificare ogni singolo parametro come input della riga di comando.

**Per creare un controllo di accesso all'origine (CLI con file di input)**

1. Per creare un file denominato `origin-access-control.yaml`, utilizza il comando seguente. Tale file contiene tutti i parametri di input per il comando **create-origin-access-control**.

   ```
   aws cloudfront create-origin-access-control --generate-cli-skeleton yaml-input > origin-access-control.yaml
   ```

1. Aprire il file `origin-access-control.yaml` appena creato. Modifica il file per aggiungere un nome per l'OAC, una descrizione (opzionale) e modificare `SigningBehavior` in `always`. Quindi salvare il file.

   Per ulteriori informazioni sulle impostazioni OAC, consultare [Impostazioni avanzate per il controllo dell'accesso all'origine](#oac-advanced-settings-s3).

1. Utilizzare il comando seguente per creare il controllo di accesso origine utilizzando i parametri di input dal file `origin-access-control.yaml`.

   ```
   aws cloudfront create-origin-access-control --cli-input-yaml file://origin-access-control.yaml
   ```

   Prendere nota del valore `Id` nell'output del comando. È necessario per aggiungere l'OAC a un'origine del bucket S3 in una distribuzione. CloudFront 

**Per allegare un OAC a un'origine bucket S3 in una distribuzione esistente (CLI con file di input)**

1. Usa il comando seguente per salvare la configurazione di distribuzione per la CloudFront distribuzione a cui desideri aggiungere l'OAC. La distribuzione deve avere un'origine del bucket S3.

   ```
   aws cloudfront get-distribution-config --id <CloudFront distribution ID> --output yaml > dist-config.yaml
   ```

1. Aprire il file denominato `dist-config.yaml` appena creato. Modifica il file apportando le seguenti modifiche:
   + Nell'oggetto `Origins`, aggiungi l'ID dell'OAC al campo a cui è stato assegnato il nome `OriginAccessControlId`.
   + Rimuovi il valore dal campo denominato `OriginAccessIdentity`, se esiste.
   + Rinominare il campo `ETag` in `IfMatch`, ma non modificare il valore del campo.

   Salvare il file al termine.

1. Utilizzare il comando seguente per aggiornare la distribuzione e utilizzare il controllo di accesso origine.

   ```
   aws cloudfront update-distribution --id <CloudFront distribution ID> --cli-input-yaml file://dist-config.yaml
   ```

La distribuzione inizia a essere distribuita in tutte le CloudFront edge location. Quando una edge location riceve la nuova configurazione, firma tutte le richieste che invia all'origine del bucket S3.

------
#### [ API ]

Per creare un controllo di accesso all'origine con l' CloudFront API, usa [CreateOriginAccessControl](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateOriginAccessControl.html). Per ulteriori informazioni sui campi specificati in questa chiamata API, consulta la documentazione di riferimento sull'API per il tuo AWS SDK o altro client API.

Dopo aver creato un controllo di accesso origine, è possibile collegarlo all'origine del bucket S3 in una distribuzione, utilizzando una delle seguenti chiamate API:
+ Per collegarlo a una distribuzione esistente, usa [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html).
+ Per collegarlo a una nuova distribuzione, usa [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html).

Per entrambe queste chiamate API, fornire l'ID di controllo dell'accesso origine nel campo `OriginAccessControlId`, all'interno di un'origine. Per ulteriori informazioni sugli altri campi specificati in queste chiamate API, consulta [Riferimento a tutte le impostazioni di distribuzione](distribution-web-values-specify.md) la documentazione di riferimento sull'API per il tuo AWS SDK o altro client API.

------

## Eliminazione di una distribuzione con un OAC collegato a un bucket S3
<a name="delete-oac-distribution-s3"></a>

Se è necessario eliminare una distribuzione con un OAC collegato a un bucket S3, occorre eliminare la distribuzione prima di eliminare l’origine del bucket S3. In alternativa, includi la Regione nel nome di dominio di origine. Se ciò non è possibile, puoi rimuovere l’OAC dalla distribuzione passando a pubblico prima dell’eliminazione. Per ulteriori informazioni, consulta [Eliminazione di una distribuzione](HowToDeleteDistribution.md).

## Migrazione dell'identità di accesso origine (OAI) al controllo degli accessi origine (OAC)
<a name="migrate-from-oai-to-oac"></a>

Per migrare da un’identità di accesso origine (OAI) legacy a un controllo di accesso origine (OAC), aggiorna innanzitutto l’origine del bucket S3 per consentire sia all’OAI che all’OAC di accedere al contenuto del bucket. Questo assicura che CloudFront non perda mai l'accesso al bucket durante la transizione. Per consentire sia a OAI che alla distribuzione con OAC abilitato di accedere a un bucket S3, aggiorna la [policy di bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) per includere due dichiarazioni, una per ogni tipo di principale.

Il seguente esempio di policy di bucket S3 consente sia a un OAI che a una distribuzione con OAC abilitato di accedere a un’origine S3.

**Example Policy del bucket S3 che consente l'accesso in sola lettura per un OAI e una distribuzione con OAC abilitato CloudFront**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipalReadOnly",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<S3 bucket name>/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/<CloudFront distribution ID>"
                }
            }
        },
        {
            "Sid": "AllowLegacyOAIReadOnly",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<S3 bucket name>/*"
        }
    ]
}
```

Dopo aver aggiornato la politica dei bucket di S3 Origin per consentire l'accesso sia all'OAI che all'OAC, puoi aggiornare la configurazione di distribuzione per utilizzare OAC anziché OAI. Per ulteriori informazioni, consulta [Creazione di un nuovo controllo di accesso origine](#create-oac-overview-s3).

Dopo che la distribuzione è stata completamente distribuita, puoi rimuovere l'istruzione nella politica del bucket che consente l'accesso all'OAI. Per ulteriori informazioni, consulta [Concedi l' CloudFront autorizzazione per accedere al bucket S3](#oac-permission-to-access-s3).

## Impostazioni avanzate per il controllo dell'accesso all'origine
<a name="oac-advanced-settings-s3"></a>

La funzionalità di controllo dell'accesso all' CloudFront origine include impostazioni avanzate destinate solo a casi d'uso specifici. Usa le impostazioni consigliate a meno che tu non abbia una necessità specifica per le impostazioni avanzate.

Origin Access Control contiene un'impostazione denominata **Signing behavior** (nella console) o `SigningBehavior` (nell'API, CLI e CloudFormation). Questa impostazione offre le seguenti opzioni:

**Firma sempre le richieste di origine (impostazione consigliata)**  
Si consiglia di utilizzare questa impostazione, denominata **Richieste di firma (consigliata)** nella console, oppure `always` nell'API, nell'interfaccia a riga di comando e CloudFormation. Con questa impostazione, firma CloudFront sempre tutte le richieste che invia all'origine del bucket S3.

**Non firmare le richieste di origine**  
Questa impostazione è denominata **Non firmare le richieste** nella console, oppure `never`nell'API, nell'interfaccia a riga di comando e CloudFormation. Usa questa impostazione per disattivare il controllo dell'accesso all'origine per tutte le origini in tutte le distribuzioni che utilizzano questo controllo di accesso all'origine. Ciò consente di risparmiare tempo e fatica rispetto alla rimozione di un controllo di accesso all'origine da tutte le origini e le distribuzioni che lo utilizzano, uno per uno. Con questa impostazione, CloudFront non firma alcuna richiesta inviata all'origine del bucket S3.  
Per utilizzare questa impostazione, l'origine del bucket S3 deve essere accessibile al pubblico. Se utilizzi questa impostazione con un'origine del bucket S3 che non è accessibile pubblicamente, CloudFront non puoi accedere all'origine. L'origine del bucket S3 restituisce gli errori CloudFront e li CloudFront trasmette agli spettatori.

**Non ignorare l'intestazione del visualizzatore (client) `Authorization`**  
Questa impostazione è denominata **Non sovrascrivere l'intestazione di autorizzazione**nella console, oppure `no-override` nell'API, nell'interfaccia a riga di comando e CloudFormation. Utilizza questa impostazione quando desideri firmare le richieste CloudFront di origine solo quando la richiesta del visualizzatore corrispondente non include un'intestazione. `Authorization` Con questa impostazione, CloudFront trasmette l'`Authorization`intestazione della richiesta del visualizzatore quando ne è presente una, ma firma la richiesta di origine (aggiungendo la propria `Authorization` intestazione) quando la richiesta del visualizzatore non include un'intestazione. `Authorization`  
Per passare lungo l'intestazione `Authorization` della richiesta del visualizzatore, *devi* aggiungere l'intestazione `Authorization` a una [policy della cache](controlling-the-cache-key.md) per tutti i comportamenti della cache che utilizzano le origini del bucket S3 associate a questo controllo di accesso all'origine.

## Utilizzo di un’identità di accesso origine (legacy, non consigliata)
<a name="private-content-restricting-access-to-s3-oai"></a>

### Panoramica dell'identità di accesso origine
<a name="private-content-restricting-access-to-s3-overview"></a>

CloudFront *origin access identity* (OAI) offre funzionalità simili a quelle di *Origin Access Control* (OAC), ma non funziona per tutti gli scenari. Nello specifico, l'OAI non supporta:
+ Bucket Amazon S3 in tutto Regioni AWS, comprese le regioni con attivazione
+ [Crittografia lato server con chiavi AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) (SSE-KMS) Amazon S3
+ Richieste dinamiche (`PUT`, `POST` o `DELETE`) su Amazon S3
+ Nuovo Regioni AWS lanciato dopo gennaio 2023

**Suggerimento**  
Ti consigliamo di utilizzare invece OAC. Per configurare OAC, consulta [Creazione di un nuovo controllo di accesso origine](#create-oac-overview-s3). Per informazioni su come eseguire la migrazione da OAI a OAC, consulta [Migrazione dell'identità di accesso origine (OAI) al controllo degli accessi origine (OAC)](#migrate-from-oai-to-oac).

### Concedere a un’identità di accesso origine l’autorizzazione per leggere i file nel bucket Amazon S3
<a name="private-content-granting-permissions-to-oai"></a>

Quando crei un OAI o ne aggiungi uno a una distribuzione con la CloudFront console, puoi aggiornare automaticamente la policy del bucket Amazon S3 per concedere all'OAI l'autorizzazione ad accedere al tuo bucket. In alternativa, è possibile scegliere di creare o aggiornare manualmente la policy di bucket. Qualunque sia il metodo utilizzato, è comunque necessario esaminare le autorizzazioni per assicurarsi che:
+ Il tuo CloudFront OAI può accedere ai file nel bucket per conto degli utenti che li richiedono. CloudFront
+ Gli utenti non possono utilizzare Amazon URLs S3 per accedere ai tuoi file dall'esterno. CloudFront

**Importante**  
Se configuri CloudFront per accettare e inoltrare tutti i metodi HTTP CloudFront supportati, assicurati di concedere all' CloudFront OAI le autorizzazioni desiderate. Ad esempio, se CloudFront configuri l'accettazione e l'inoltro delle richieste che utilizzano questo `DELETE` metodo, configura la tua bucket policy per gestire `DELETE` le richieste in modo appropriato in modo che gli utenti possano eliminare solo i file che desideri.

#### Utilizzo di policy di bucket di Amazon S3
<a name="private-content-updating-s3-bucket-policies"></a>

Puoi consentire a un CloudFront OAI di accedere ai file in un bucket Amazon S3 creando o aggiornando la policy del bucket nei seguenti modi:
+ Utilizzo della scheda **Permissions (Autorizzazioni)** del bucket Amazon S3 nella [console Amazon S3](https://console.aws.amazon.com/s3/home).
+ Utilizzo [PutBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)nell'API Amazon S3.
+ Utilizzo della [console CloudFront](https://console.aws.amazon.com/cloudfront/v4/home). Quando aggiungi un OAI alle impostazioni di origine nella CloudFront console, puoi scegliere **Sì, aggiorna la policy del bucket per dire di aggiornare la policy** del bucket CloudFront per tuo conto.

Se si aggiorna manualmente la policy del bucket, assicurarsi di:
+ Specificare l'OAI corretto come `Principal` nella policy.
+ Dare all'OAI le autorizzazioni necessarie per accedere agli oggetti per conto dei visualizzatori.

Per ulteriori informazioni, consultare le sezioni indicate di seguito.

##### Specificare un OAI come `Principal` in una policy di bucket
<a name="private-content-updating-s3-bucket-policies-principal"></a>

Per specificare un OAI come `Principal` in una policy del bucket Amazon S3, usa l'Amazon Resource Name (ARN) della OAI, che include il relativo ID. Esempio:

```
"Principal": {
    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>"
}
```

Trova l'ID OAI nella CloudFront console in **Security**, **Origin access**, **Identities** (legacy). In alternativa, utilizzalo [ListCloudFrontOriginAccessIdentities](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html)nell'API. CloudFront

##### Concessione di autorizzazioni a una OAI
<a name="private-content-updating-s3-bucket-policies-permissions"></a>

Per concedere alla OAI le autorizzazioni per accedere agli oggetti nel bucket Amazon S3, utilizzare le azioni nella policy relative a operazioni API Amazon S3 specifiche. Ad esempio, l'azione `s3:GetObject` consente all'OAI di leggere gli oggetti nel bucket. Per ulteriori informazioni, consulta gli esempi riportati nella sezione seguente oppure consulta la sezione [Operazioni Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) nella *Guida per l'utente di Amazon Simple Storage Service*.

##### Esempi di policy del bucket Amazon S3
<a name="private-content-updating-s3-bucket-policies-examples"></a>

Gli esempi seguenti mostrano le policy dei bucket Amazon S3 che consentono a CloudFront OAI di accedere a un bucket S3.

**Trova l'ID OAI nella CloudFront console in **Security**, **Origin access**, Identities (legacy).** In alternativa, utilizzalo [ListCloudFrontOriginAccessIdentities](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html)nell'API. CloudFront

**Example Policy bucket Amazon S3 che fornisce l'accesso in lettura dell'OAI**  
L'esempio seguente consente all'OAI di leggere gli oggetti nel bucket (`s3:GetObject`) specificato.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<S3 bucket name>/*"
        }
    ]
}
```

**Example Policy bucket Amazon S3 che fornisce all'OAI l'accesso in lettura e scrittura**  
L'esempio seguente consente all'OAI di leggere e scrivere oggetti nel bucket specificato (`s3:GetObject` e `s3:PutObject`). Ciò consente agli utenti di caricare file nel tuo bucket Amazon S3 tramite. CloudFront    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity <origin access identity ID>"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::<S3 bucket name>/*"
        }
    ]
}
```

#### Usa oggetto Amazon S3 ACLs (non consigliato)
<a name="private-content-updating-s3-acls"></a>

**Importante**  
Consigliamo [l'utilizzo delle policy di bucket Amazon S3](#private-content-updating-s3-bucket-policies) per consentire a un OAI l'accesso a un bucket S3. Puoi usare le liste di controllo degli accessi (ACLs) come descritto in questa sezione, ma non è consigliabile.  
Amazon S3 consiglia di impostare [S3 Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) su **bucket owner enforced**, il che significa che ACLs sono disabilitati per il bucket e gli oggetti in esso contenuti. Quando si applica questa impostazione per la proprietà degli oggetti, è necessario utilizzare le policy del bucket per consentire l'accesso all'OAI (vedere la sezione precedente).  
La sezione seguente riguarda solo i casi d'uso precedenti che lo richiedono. ACLs

Puoi consentire a un CloudFront OAI di accedere ai file in un bucket Amazon S3 creando o aggiornando l'ACL del file nei seguenti modi:
+ Utilizzo della scheda **Permissions (Autorizzazioni)** dell'oggetto Amazon S3 nella [Console Amazon S3](https://console.aws.amazon.com/s3/home).
+ Utilizzo [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html)nell'API Amazon S3.

Quando si concede l'accesso a una OAI utilizzando un ACL, è necessario specificare l'OAI utilizzando il relativo ID utente Amazon S3 canonico. Nella CloudFront console, puoi trovare questo ID in **Security**, **Origin access**, **Identities (legacy)**. Se utilizzi l' CloudFront API, utilizza il valore dell'`S3CanonicalUserId`elemento che è stato restituito quando hai creato l'OAI o richiama [ListCloudFrontOriginAccessIdentities](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html)l' CloudFrontAPI.

### Utilizzo di un’identità di accesso origine nelle Regioni Amazon S3 che supportano solo l’autenticazione Signature Version 4
<a name="private-content-origin-access-identity-signature-version-4"></a>

Le regioni Amazon S3 più recenti richiedono l'utilizzo di Signature Version 4 per le richieste autenticate. (Per le versioni di firma supportate in ogni regione Amazon S3, consultare [Endpoint e quote Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) nei *Riferimenti generali di AWS*.) Se utilizzi un'identità di accesso origine e se il bucket si trova in una delle regioni che richiedono Signature Version 4, nota quanto segue:
+ Le richieste `DELETE`, `GET`, `HEAD`, `OPTIONS` e `PATCH` sono supportate senza qualifiche.
+ Le richieste `POST` non sono supportate.