Limitazione dell'accesso a un’origine Amazon S3 - Amazon CloudFront

Limitazione dell'accesso a un’origine Amazon S3

Quando si utilizza CloudFront con un bucket Amazon S3 come origine, è possibile configurare CloudFront e Amazon S3 in modo da fornire i seguenti vantaggi:

  • Limita l'accesso al bucket Amazon S3 in modo che non sia accessibile al pubblico

  • Assicura che gli spettatori (utenti) possano accedere ai contenuti nel bucket solo tramite la distribuzione CloudFront specificata, ovvero impedisce loro di accedere ai contenuti direttamente dal bucket o tramite una distribuzione CloudFront non intenzionale

Per fare ciò, configura CloudFront per inviare richieste autenticate ad Amazon S3 e configura Amazon S3 per consentire l'accesso solo alle richieste autenticate da CloudFront. CloudFront offre due modi per inviare richieste autenticate a un'origine Amazon S3: Controllo accessi all'origine(OAC) e identità di accesso all'origine (OAI). Si consiglia di utilizzare OAC perché supporta:

  • Tutti i bucket Amazon S3 in tutto Regioni AWS, comprese le regioni opt-in lanciate dopo dicembre 2022

  • Crittografia lato server con chiavi AWS KMS (SSE-KMS) Amazon S3

  • Richieste dinamiche (PUT e DELETE) su Amazon S3

L'OAI non funziona per gli scenari dell'elenco precedente o richiede soluzioni alternative aggiuntive in tali scenari. I seguenti argomenti descrivono come utilizzare OAC con origine Amazon 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).

Nota

Se l’origine è un bucket Amazon S3 configurato come endpoint del sito Web, è necessario configurarlo con CloudFront come origine personalizzata. Ciò significa che non è possibile utilizzare OAC (o OAI). Tuttavia, puoi limitare l'accesso all’origine personalizzata impostando le intestazioni personalizzate e configurando il server di origine per richiederle. Per ulteriori informazioni, consulta Limitazione dell'accesso ai file su origini personalizzate.

Argomenti

Creazione di un nuovo controllo degli accessi origine

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

Prerequisiti

Prima di creare e configurare il controllo accesso origine (OAC), devi disporre di una distribuzione CloudFront con un'origine bucket Amazon S3. Questa origine deve essere un normale bucket S3, non un bucket configurato come endpoint del sito Web. Per ulteriori informazioni sulla configurazione di una distribuzione CloudFront con origine di bucket S3, consulta Nozioni di base su una distribuzione CloudFront semplice.

Fornitura dell'autorizzazione di controllo accesso origine per accedere al bucket S3

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

Per concedere all'OAC il permesso di accedere al bucket S3, usa una policy del bucket S3 per consentire il principale del servizio CloudFront (cloudfront.amazonaws.com) per accedere al bucket. Utilizzo di un elemento Condition della policy per consentire a CloudFront di accedere al bucket solo quando la richiesta è per conto della distribuzione CloudFront che contiene l'origine S3.

Per informazioni sull'aggiunta o la modifica di una politica del bucket, consulta Aggiunta di una policy di bucket utilizzando la console Amazon S3 nella Guida per l'utente di Amazon S3.

Di seguito sono riportati alcuni esempi di policy dei bucket S3 che consentono a un OAC CloudFront di accedere a un'origine S3. Nei seguenti esempi:

  • Sostituire DOC-EXAMPLE-BUCKET con il nome dell’origine S3

  • Sostituzione di 111122223333 con ID Account AWS che contiene la distribuzione CloudFront e l'origine del bucket S3

  • Sostituzione di EDFDVBD6EXAMPLE con l'ID della distribuzione CloudFront

Esempio Policy del bucket S3 che consente l'accesso in sola lettura a un OAC CloudFront
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE" } } } }
Esempio Policy del bucket S3 che consente l'accesso in lettura e scrittura a un OAC CloudFront
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCloudFrontServicePrincipalReadWrite", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE" } } } }

SSE-KMS

Se gli oggetti nell'origine del bucket S3 sono crittografati con Crittografia lato server conAWS Key Management Service (SSE-KM), è necessario assicurarsi che l'OAC abbia il permesso di utilizzare la chiave AWS KMS. Per concedere all'OAC l'autorizzazione per utilizzare la chiave KMS, aggiungi una dichiarazione alla Policy della chiave KMS. Per informazioni su come modificare un criterio delle chiavi, consulta Modifica di una policy delle chiavinella Guida per gli sviluppatori AWS Key Management Service.

L'esempio seguente mostra una dichiarazione di policy della chiave KMS che consente all'OAC di utilizzare la chiave KMS. Nel seguente esempio:

  • Sostituzione di 111122223333 con l’ID Account AWS che contiene la distribuzione CloudFront, l'origine del bucket S3 e la chiave KMS

  • Sostituzione di EDFDVBD6EXAMPLE con l'ID della distribuzione CloudFront

Esempio Dichiarazione della policy della chiave KMS che consente a un OAC di CloudFront di accedere a una chiave KMS per SSE-KMS
{ "Sid": "AllowCloudFrontServicePrincipalSSE-KMS", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root", "Service": "cloudfront.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE" } } }

Creazione del controllo accesso origine

Per creare un Origin Access Control (OAC), puoi usare AWS Management Console, AWS CloudFormation, AWS CLI o l'API CloudFront.

Console
Per creare un controllo di accesso all'origine
  1. Accedi alla AWS Management Console e apri la console CloudFront all'indirizzo https://console.aws.amazon.com/cloudfront/v3/home.

  2. Nel pannello di navigazione a sinistra, scegli Accesso origine.

  3. Scegli Crea un'impostazione di controllo.

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

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

  5. Scegliere 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. Aprire la console CloudFront all'indirizzo https://console.aws.amazon.com/cloudfront/v3/home.

  2. Scegli una distribuzione con un'origine S3 a cui desideri aggiungere l'OAC, quindi scegli lascheda Origini.

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

  4. Nella sezione Accesso all'origine, scegliere Impostazioni di controllo dell'accesso origine (consigliato).

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

  6. Scegliere Save changes (Salva modifiche).

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

CloudFormation

Per creare un Origin Access Control (OAC) con AWS CloudFormation, utilizzare il tipo di risorsa AWS::CloudFront::OriginAccessControl. L'esempio seguente mostra la sintassi del modello AWS CloudFormation, in formato YAML, per la creazione di un controllo accesso 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 la pagina AWS::CloudFront::OriginAccessControl nella Guida per l’utente di AWS CloudFormation.

CLI

Per creare un controllo di accesso all'origine con AWS Command Line Interface (AWS CLI), utilizzare il comando aws cloudfront create-origin-access-control. È 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
    Nota

    L'opzione yaml-input è disponibile solo nella versione 2 di AWS CLI. Con la versione 1 di AWS CLI, è possibile generare un file di input in formato JSON. Per ulteriori informazioni, consulta ‭‬Generazione di parametri di input e skeleton ‭AWS CLI‬ da un file di input JSON o YAML‭‬ nella ‬Guida per l’utente di ‭AWS Command Line Interface.

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

  3. 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. Ne hai bisogno 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. Utilizzare il comando seguente per salvare la configurazione di distribuzione per la distribuzione CloudFront a cui si desidera aggiungere l’OAC. La distribuzione deve avere un'origine del bucket S3. Sostituire distribution_ID con l'ID della distribuzione.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
    Nota

    L'opzione --output yaml è disponibile solo nella versione 2 di AWS CLI. Con la versione 1 di AWS CLI, è possibile generare l'output in formato JSON. Per ulteriori informazioni, consulta ‭‬Controllo dell’output del comando da ‭AWS CLI nella ‭‬Guida per l'utente di AWS Command Line Interface‬‭.

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

  3. Utilizzare il comando seguente per aggiornare la distribuzione e utilizzare il controllo di accesso origine. Sostituire distribution_ID con l'ID della distribuzione.

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml

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

API

Per creare un controllo degli accessi all'origine con l'API CloudFront, utilizzare CreateOriginAccessControl. Per ulteriori informazioni sui campi specificati in questa chiamata API, consulta e la documentazione di riferimento delle API per 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 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 Valori da specificare durante la creazione o l'aggiornamento di una distribuzione e la documentazione di riferimento delle API per l'SDK AWS o un altro client API.

Migrazione dell'identità di accesso origine (OAI) al controllo degli accessi origine (OAC)

Per migrare da un'identità di accesso all'origine (OAI) legacy a un controllo dell'accesso all'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 a OAC di accedere a un bucket S3, aggiorna la Policy del bucket per includere due dichiarazioni, una per ogni tipo di principale.

Il seguente esempio di policy del bucket S3 consente sia a un OAI che a un OAC di accedere a un'origine S3. Nel seguente esempio:

  • Sostituisci DOC-EXAMPLE-BUCKET con il nome dell’origine S3

  • Sostituzione di 111122223333 con ID Account AWS che contiene la distribuzione CloudFront e l'origine del bucket S3

  • Sostituzione di EDFDVBD6EXAMPLEcon l'ID della distribuzione CloudFront

  • Sostituzione di EH1HDMB1FH2TC con l'ID dell'identità di accesso all'origine

Esempio Policy del bucket S3 che consente l'accesso in sola lettura a un OAI e a un OAC
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontServicePrincipalReadOnly", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE" } } }, { "Sid": "AllowLegacyOAIReadOnly", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

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 degli accessi origine.

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 Fornitura dell'autorizzazione di controllo accesso origine per accedere al bucket S3.

Impostazioni avanzate per il controllo dell'accesso all'origine

La funzionalità di controllo degli accessi di origine di CloudFront 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 Comportamento di firma(nella console), oppure SigningBehavior (nell'API, nella CLI e AWS 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 AWS CloudFormation. Con questa impostazione, CloudFront firma 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 nevernell'API, nell'interfaccia a riga di comando e AWS 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.

avvertimento

Per utilizzare questa impostazione, l'origine del bucket S3 deve essere accessibile al pubblico. Se utilizzi questa impostazione con un'origine del bucket S3 non accessibile al pubblico, CloudFront non può accedere all'origine. L'origine del bucket S3 restituisce gli errori a CloudFront e CloudFront li trasmette ai visualizzatori.

Non ignorare l’intestazione del visualizzatore (client) Authorization

Questa impostazione è denominata Non sovrascrivere l'intestazione di autorizzazionenella console, oppure no-override nell'API, nell'interfaccia a riga di comando e AWS CloudFormation. Utilizza questa impostazione quando desideri che CloudFront firmi le richieste di origine solo quando la richiesta del visualizzatore corrispondente non include un’intestazione Authorization. Con questa impostazione, CloudFront passa all’intestazione Authorization della richiesta del visualizzatore quando ne è presente una, ma firma la richiesta di origine (aggiungendone una propria intestazione Authorization) quando la richiesta del visualizzatore non include un’intestazione Authorization.

avvertimento

Per passare lungo l’intestazione Authorization della richiesta del visualizzatore, devi aggiungere l’intestazione Authorization a una policy della cache 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 all'origine (legacy, non consigliata)

L’identità di accesso all'origine(OAI) CloudFront offre funzionalità simili a controllo accessi all'origine (OAC), ma non funziona per tutti gli scenari. Questo è il motivo per cui consigliamo di utilizzare invece OAC. Nello specifico, l'OAI non supporta:

  • Bucket Amazon S3 in tutto Regioni AWS, incluse le regioni opt-in

  • Crittografia lato server con chiavi AWS KMS (SSE-KMS) Amazon S3

  • Richieste dinamiche (PUT, POST o DELETE) su Amazon S3

  • Il nuovo Regioni AWS lanciato dopo dicembre 2022

Per ulteriori informazioni sulla migrazione da OAI a OAC, consultare Migrazione dell'identità di accesso origine (OAI) al controllo degli accessi origine (OAC).

Quando crei un OAI o ne aggiungi uno a una distribuzione con la console CloudFront, puoi aggiornare automaticamente la policy di bucket Amazon S3 per autorizzare l'autorità di 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 OAI CloudFront può accedere ai file nel bucket per conto dei visualizzatori che li richiedono tramite CloudFront.

  • I visualizzatori non possono utilizzare gli URL di Amazon S3 per accedere ai file al di fuori di CloudFront.

Importante

Se si configura CloudFront per accettare e inoltrare tutti i metodi HTTP supportati da CloudFront, assicurarsi di concedere alla propria OAI CloudFront le autorizzazioni desiderate. Ad esempio, se si configura CloudFront per accettare e inoltrare richieste che utilizzano il metodo DELETE, configurare le policy del bucket per gestire le richieste DELETE in modo appropriato, cosicché i visualizzatori possano eliminare solo i file da eliminare.

Utilizzo delle politiche bucket di Amazon S3

È possibile concedere a un OAI CloudFront l'accesso ai file in un bucket Amazon S3 creando o aggiornando la policy bucket nei modi seguenti:

  • Utilizzo della scheda Permissions (Autorizzazioni) del bucket Amazon S3 nella console Amazon S3.

  • Utilizzo di PutBucketPolicy nell'API Amazon S3.

  • Utilizzo della console CloudFront. Quando si aggiunge una OAI alle impostazioni di origine nella console CloudFront, è possibile scegliere Yes, update bucket policy (Sì, aggiorna policy bucket) per indicare a CloudFront di aggiornare la policy bucket 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

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. Ad esempio:

"Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC" }

Per utilizzare l'esempio precedente, sostituire EH1HDMB1FH2TC con l'ID dell'OAI. Per trovare l'ID dell'OAI, consulta la pagina Identità di accesso origine nella console CloudFront oppure utilizzare ListCloudFrontorigInAccessIdentities nell'API CloudFront.

Concessione di autorizzazioni a una OAI

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 nella Guida per l'utente di Amazon Simple Storage Service.

Esempi di policy del bucket Amazon S3

Gli esempi seguenti mostrano le policy del bucket Amazon S3 che concedono l'accesso a una OAI CloudFront a un bucket S3. Per utilizzare questi esempi:

Esempio 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 EH1HDMB1FH2TC" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Esempio 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 ai visualizzatori di caricare file sul 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 EH1HDMB1FH2TC" }, "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }

Utilizzo degli ACL oggetto Amazon S3 (non cconsigliato)

Importante

Consigliamo l’utilizzo delle policy di bucket Amazon S3 per consentire a un OAI l'accesso a un bucket S3. È possibile utilizzare gli ACL come descritto in questa sezione, ma non è consigliato.

Amazon S3 consiglia di impostare S3 Object Ownership a proprietario del bucket applicato, il che significa che gli ACL 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).

Questa sezione seguente è solo per i casi d'uso legacy che richiedono ACL.

È possibile concedere a una OAI CloudFront l'accesso ai file in un bucket Amazon S3 creando o aggiornando l'ACL del file nei modi seguenti:

  • Utilizzo della scheda Permissions (Autorizzazioni) dell'oggetto Amazon S3 nella Console Amazon S3.

  • Utilizzo di PutObjectAcl 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. Questo è il valore di Amazon S3 canonical user ID (ID utente canonico Amazon S3) nella pagina Identità di accesso origine nella console CloudFront. Se si utilizza l'API CloudFront, utilizzare il valore dell'elemento S3CanonicalUserId restituito al momento della creazione dell'OAI o chiamare ListCloudFrontorigInAccessIdentities nell'API CloudFront.

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, consulta Endpoint e quote Amazon Simple Storage Service nei Riferimenti generali 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.

  • Se vuoi inviare richieste PUT a CloudFront per caricare file sul tuo bucket Amazon S3, devi aggiungere un'intestazione x-amz-content-sha256 alla richiesta. Il valore dell'intestazione deve contenere un hash SHA-256 del corpo della richiesta. Per maggiori informazioni, consulta la documentazione relativa all'intestazione x-amz-content-sha256 nella pagina Intestazioni richieste comuni nella Documentazione di riferimento all'API di Amazon Simple Storage Service.

  • Le richieste POST non sono supportate.