Come posso utilizzare la mia distribuzione CloudFront per limitare l'accesso a un bucket Amazon S3?
Desidero limitare l'accesso al mio bucket Amazon Simple Storage Service (Amazon S3) in modo che gli utenti accedano agli oggetti solo tramite la mia distribuzione Amazon CloudFront.
Risoluzione
Per limitare l'accesso a un bucket S3, crei un controllo di accesso origine (OAC) o un'identità di accesso origine (OAI) legacy. È consigliabile creare un OAC anziché l'OAI legacy.
Importante: prima di iniziare, verifica di aver configurato l'origine Amazon S3 della distribuzione CloudFront come endpoint della REST API, ad esempio AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Questa risoluzione non si applica alle origini Amazon S3 configurate come endpoint di un sito web, ad esempio AWSDOC-EXAMPLE-BUCKET.s3-website-us-east-1.amazonaws.com. Per ulteriori informazioni, consulta Come posso usare CloudFront per servire un sito web statico ospitato su Amazon S3?
Crea un OAC in CloudFront
Completa i seguenti passaggi:
- Apri la console CloudFront.
- Nel pannello di navigazione, scegli Distributions (Distribuzioni), quindi seleziona la distribuzione che fornisce i contenuti del bucket S3 a cui desideri limitare l'accesso.
- Scegli la scheda Origins (Origini).
- Seleziona l'origine Amazon S3, quindi scegli Edit (Modifica).
- Per Origin Access (Accesso origine), seleziona Origin access control settings (recommended) (Impostazioni di controllo dell'accesso origine (scelta consigliata)).
- Per Origin access control (Controllo dell'accesso origine), seleziona un OAC esistente. Quindi scegli Create new OAC (Crea nuovo OAC).
- Nella finestra di dialogo, inserisci un nome per l'impostazione di controllo. È consigliabile mantenere l'impostazione predefinita su Sign requests (recommended) (Firma le richieste (scelta consigliata)).
- Scegli Create (Crea).
- Per S3 bucket access (Accesso al bucket S3), scegli Copy policy (Copia policy).
- Scegli Save changes (Salva modifiche).
- Apri la console Amazon S3.
- Nel pannello di navigazione, scegli Bucket per uso generico, quindi seleziona il bucket che è l'origine della distribuzione CloudFront.
- Scegli la scheda Autorizzazioni.
- In Policy del bucket, verifica che sia visualizzata un'istruzione simile alla seguente:
{ "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" } } } }
Nota: sostituisci DOC-EXAMPLE-BUCKET con il nome del tuo bucket e arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE con il nome della risorsa Amazon (ARN) della tua distribuzione CloudFront. Per consentire all'OAC di CloudFront di leggere oggetti dal bucket, devi aggiungere l'istruzione precedente alla policy del bucket. Dopo aver limitato l'accesso al bucket, puoi integrare AWS WAF per un ulteriore livello di sicurezza.
Crea un'OAI legacy in CloudFront
Completa i seguenti passaggi:
- Apri la console CloudFront.
- Nel pannello di navigazione, scegli Distributions (Distribuzioni), quindi seleziona la distribuzione che fornisce i contenuti del bucket S3 a cui desideri limitare l'accesso.
- Scegli la scheda Origins (Origini).
- Seleziona l'origine Amazon S3, quindi scegli Edit (Modifica).
- Per Origin Access (Accesso origine), scegli Legacy access identities (Identità di accesso precedenti).
- Nell'elenco a discesa Origin access identity (Identità di accesso origine), seleziona il nome dell'OAI. In alternativa, scegli Create new OAI (Crea nuova OAI).
- Nella finestra di dialogo, inserisci un nome per la nuova OAI, quindi scegli Create (Crea).
- Per Bucket policy (Policy del bucket), seleziona Yes, update the bucket policy (Sì, aggiorna la policy del bucket).
- Scegli Save changes (Salva modifiche).
- Apri la console Amazon S3.
- Nel pannello di navigazione, scegli Bucket per uso generico, quindi seleziona il bucket che è l'origine della distribuzione CloudFront.
- Scegli la scheda Autorizzazioni.
- In Policy del bucket, verifica che sia visualizzata un'istruzione simile alla seguente:
{ "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*" }
Nota: sostituisci arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EAF5XXXXXXXXX con l'ARN della tua distribuzione CloudFront e AWS****DOC-EXAMPLE-BUCKET con il nome del tuo bucket. Esamina la policy del bucket per individuare eventuali istruzioni con "Effect": "Deny" che bloccano l'accesso al bucket dall'OAI di CloudFront. Cambia l'azione in Allow in modo che l'OAI di CloudFront possa accedere agli oggetti nel bucket. Inoltre, esamina la policy del bucket per individuare eventuali istruzioni con **"Effect": **"Allow" che consentono l'accesso al bucket da qualsiasi origine diversa dall'OAI di CloudFront. Modifica le istruzioni in base al caso d'uso.
Informazioni correlate
- Argomenti
- Networking & Content Delivery
- Lingua
- Italiano
Video correlati

