Come posso usare 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
Importante: Prima di iniziare, assicurati che l'origine Amazon S3 della tua distribuzione CloudFront sia configurata come endpoint API REST, ad esempio AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Questa risoluzione non si applica alle origini 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 faccio a usare CloudFront per servire un sito Web statico ospitato su Amazon S3?
Opzione 1 (Best practice): Crea un OAC CloudFront
Per creare un controllo di accesso all'origine (OAC) di CloudFront, completa i seguenti passaggi:
- Apri la console CloudFront.
- Dall'elenco delle distribuzioni, scegli la distribuzione che serve i contenuti del bucket S3 a cui desideri limitare l'accesso.
- Scegli la scheda Origini.
- Seleziona l'origine S3, quindi scegli Modifica.
- Per Origin Access, seleziona le impostazioni di controllo degli accessi di Origin (consigliato).
- Per il controllo degli accessi Origin, seleziona un OAC esistente o scegli l'impostazione Crea controllo.
- Nella finestra di dialogo, assegna un nome alle impostazioni di controllo. È consigliabile mantenere l'impostazione predefinita su Richieste di firma (consigliata).
- Scegli Crea.
- Per S3 bucket Access, scegli Copia policy, quindi scegli Salva per applicare la policy bucket sul bucket S3.
- Seleziona Vai alle autorizzazioni del bucket S3 per accedere alla console del bucket S3.
- Scegli Salva modifiche.
- Nella console Amazon S3, dall'elenco dei bucket, scegli il bucket che è l'origine della distribuzione CloudFront.
- Scegli la scheda Autorizzazioni.
- In Bucket Policy, conferma di visualizzare una dichiarazione 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" } } } }
Devi aggiungere l'istruzione precedente per consentire a CloudFront OAC di leggere gli oggetti dal tuo bucket.
Nota: Dopo aver limitato l'accesso al bucket, puoi integrare AWS WAF per un altro livello di sicurezza.
Opzione 2: Crea un'OAI CloudFront legacy
Per creare un'identità di accesso origine (OAI) di CloudFront legacy, completa i seguenti passaggi:
- Apri la console CloudFront.
- Dall'elenco delle distribuzioni, scegli la distribuzione che serve i contenuti del bucket S3 a cui desideri limitare l'accesso.
- Scegli la scheda Origini.
- Seleziona l'origine S3, quindi scegli Modifica.
- Per Origin Access, seleziona Identità di accesso precedenti.
- Nel menu a tendina Identità accesso origine, seleziona il nome dell'identità di accesso origine. Quindi, scegli Crea nuova OAI.
- Nella finestra di dialogo, assegna un nome alla nuova identità di accesso origine e scegli Crea.
- Per la policy del bucket, seleziona Sì, aggiorna la policy del bucket.
- Scegli Salva modifiche.
- Nella console Amazon S3, dall'elenco dei bucket, scegli il bucket che è l'origine della distribuzione CloudFront.
- Scegli la scheda Autorizzazioni.
- In Bucket Policy, conferma di visualizzare una dichiarazione 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: controlla la tua policy relativa al bucket per verificare la presenza di eventuali dichiarazioni con ** "Effect": "Nega"** che impedisce l'accesso al bucket dall'OAI di CloudFront. Modifica queste istruzioni in modo che l'OAI di CloudFront possa accedere agli oggetti nel bucket.
Inoltre, consulta la tua policy sui bucket per eventuali dichiarazioni con "Effect": "Consenti" che consentono l'accesso al bucket da qualsiasi fonte diversa dall'OAI di CloudFront. Modifica queste dichiarazioni per il tuo caso d'uso.
Informazioni correlate
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata un mese fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 mesi fa