Come posso usare la mia distribuzione CloudFront per limitare l'accesso a un bucket Amazon S3?

4 minuti di lettura
0

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 REST API. Ad esempio, AWSDOC-EXAMPLE-BUCKET.s3.amazonaws.com. Questa risoluzione non si applica alle origini S3 configurate come endpoint del 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?

Opzione 1 (Best practice): Crea un controllo degli accessi all'origine (OAC) di CloudFront.

  1. Apri la console CloudFront.
  2. Dall'elenco delle distribuzioni, scegli la distribuzione che serve i contenuti del bucket S3 a cui desideri limitare l'accesso.
  3. Scegli la scheda Origini.
  4. Seleziona l'origine S3, quindi scegli Modifica.
  5. Per Origin Access, seleziona le impostazioni di controllo degli accessi di Origin (consigliato).
  6. Per il controllo degli accessi Origin, seleziona un OAC esistente o scegli l'impostazione Crea controllo.
  7. Nella finestra di dialogo, assegna un nome alle impostazioni di controllo. È consigliabile mantenere l'impostazione predefinita su Richieste di firma (consigliata). Quindi, scegli Crea.
  8. Per S3 bucket Access, applica la policy del bucket sul bucket S3. Seleziona Copia policy, quindi seleziona Salva.
  9. Seleziona Vai alle autorizzazioni del bucket S3 per accedere alla console del bucket S3.
  10. Seleziona Salva modifiche.
  11. Nella console Amazon S3, dall'elenco dei bucket, scegli il bucket che è l'origine della distribuzione CloudFront.
  12. Scegli la scheda Autorizzazioni.
  13. 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"
            }
        }
    }
}

È necessario aggiungere l'istruzione precedente per consentire a CloudFront OAC di leggere gli oggetti dal bucket.

Nota: dopo aver limitato l'accesso al tuo bucket utilizzando CloudFront OAC, hai la possibilità di aggiungere un altro livello di sicurezza integrando AWS WAF.

Opzione 2: Crea un'identità di accesso origine (OAI) precedente di CloudFront.

  1. Apri la console CloudFront.
  2. Dall'elenco delle distribuzioni, scegli la distribuzione che serve i contenuti del bucket S3 a cui desideri limitare l'accesso.
  3. Scegli la scheda Origini.
  4. Seleziona l'origine S3, quindi scegli Modifica.
  5. Per Origin Access, seleziona Identità di accesso precedenti.
  6. Nell'elenco a discesa dell'identità di accesso Origin, seleziona il nome dell'identità di accesso di origine o scegli Crea nuovo OAI.
  7. Nella finestra di dialogo, assegna un nome alla nuova identità di accesso di origine e scegli Crea.
  8. Per la policy del bucket, seleziona Sì, aggiorna la policy del bucket.
  9. Scegli Salva modifiche.
  10. Nella console Amazon S3, dall'elenco dei bucket, scegli il bucket che è l'origine della distribuzione CloudFront.
  11. Scegli la scheda Autorizzazioni.
  12. 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 come richiesto dal tuo caso d'uso.


Informazioni correlate

Creare una distribuzione

Gestione delle identità e degli accessi in Amazon S3

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa