Come posso risolvere i problemi relativi alla concessione dell'accesso pubblico in lettura a un oggetto Amazon S3 utilizzando una policy di bucket o un'ACL degli oggetti?

5 minuti di lettura
0

Sto cercando di concedere l'accesso pubblico in lettura agli oggetti nel mio bucket Amazon Simple Storage Service (Amazon S3) utilizzando una policy di bucket o una lista di controllo degli accessi (ACL) degli oggetti. Tuttavia, ricevo errori di Insufficient Permissions (Autorizzazioni insufficienti) o Access Denied (Accesso negato).

Descrizione breve

Supponiamo di utilizzare la seguente policy di bucket per concedere l'accesso pubblico in lettura agli oggetti nel bucket:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::example-bucket/*"
            ]
        }
    ]
}

Potresti ricevere gli errori Insufficient Permissions (Autorizzazioni insufficienti) o Access Denied (Accesso negato) per uno dei seguenti motivi:

  • Non disponi dell'autorizzazione s3:PutBucketPolicy per aggiornare o creare una policy di bucket per il bucket Amazon S3.
  • Non disponi dell'autorizzazione s3:PutObjectAcl per modificare l'ACL dell'oggetto.
  • La policy del bucket S3 o l'ACL dell'oggetto sono in conflitto con le impostazioni di blocco dell'accesso pubblico di S3.

Soluzione

Concedi le autorizzazioni necessarie

Assicurati che l'utente o il ruolo AWS Identity and Access Management (IAM) che utilizzi disponga delle seguenti autorizzazioni:

  • s3:PutBucketPolicy per creare o aggiornare la policy di bucket per il bucket S3
  • s3:PutObjectAcl per aggiornare l'ACL di un oggetto e concedere l'accesso pubblico in lettura

Aggiorna le impostazioni di blocco dell'accesso pubblico

Per impostazione predefinita, tutte le risorse Amazon S3, come i bucket, gli oggetti e le sottorisorse correlate, sono private e non consentono l'accesso pubblico. Le impostazioni di blocco dell'accesso pubblico per i punti di accesso, i bucket e gli account consentono di gestire l'accesso pubblico alle risorse Amazon S3. Tali impostazioni sovrascrivono le policy dei bucket S3 e le ACL degli oggetti in modo da poter limitare l'accesso pubblico a queste risorse. Quando la policy di bucket o l'ACL dell'oggetto configurate sono in conflitto con l'impostazione di blocco dell'accesso pubblico, non è possibile creare una policy di bucket per concedere l'accesso pubblico in lettura. Inoltre, S3 nega le autorizzazioni di modifica delle policy di bucket o delle ACL degli oggetti al fine di concedere l'accesso pubblico in lettura.

Blocco dell'accesso pubblico Amazon S3 fornisce quattro impostazioni per bloccare l'accesso pubblico ai bucket e agli oggetti. Queste impostazioni sono indipendenti e possono essere combinate in qualsiasi modo.

  • BlockPublicAcls - Blocco dell'accesso pubblico concesso con nuove ACL: Amazon S3 blocca le autorizzazioni di accesso pubblico applicate ai bucket o agli oggetti appena aggiunti. Inoltre, S3 nega la creazione di nuove ACL di accesso pubblico per bucket e oggetti esistenti. Questa impostazione non modifica autorizzazioni esistenti che consentono l'accesso pubblico a risorse S3 che utilizzano ACL.
  • IgnorePublicAcls - Blocco dell'accesso pubblico concesso qualsiasi ACL: Amazon S3 ignora tutte le ACL che concedono l'accesso pubblico a bucket e oggetti.
  • BlockPublicPolicy - Blocco dell'accesso pubblico concesso con una nuova policy di bucket o dei punti di accesso: Amazon S3 blocca l'uso di nuove policy di bucket e dei punti di accesso che concedono l'accesso a bucket e oggetti. Questa impostazione non modifica policy esistenti che consentono l'accesso pubblico alle risorse S3.
  • RestrictPublicBuckets - Blocco dell'accesso pubblico e dell'accesso multi-account concesso con qualsiasi policy di bucket o dei punti di accesso: Amazon S3 ignora l'accesso pubblico e l'accesso multi-account a bucket o punti di accesso con policy che concedono l'accesso pubblico a bucket e oggetti.

Consulta la pagina Blocco dell'accesso pubblico Amazon S3: un altro livello di protezione per account e bucket per ulteriori informazioni.

Assicurati di aggiornare le impostazioni di blocco dell'accesso pubblico di S3 in base al tuo caso d'uso. 

Nota:

  • se concedi l'accesso pubblico in lettura agli oggetti tramite ACL, disattiva le seguenti impostazioni di blocco dell'accesso pubblico:
  • Se concedi l'accesso pubblico in lettura agli oggetti tramite policy dei bucket S3, disattiva le seguenti impostazioni di blocco dell'accesso pubblico:
  • Non è possibile utilizzare ACL dei bucket o degli oggetti per concedere l'accesso pubblico in lettura ai bucket con S3 Object Ownership (Proprietà dell'oggetto S3) impostata su Bucket Owner Enforced (Proprietario del bucket applicato). In questo caso, è necessario utilizzare delle policy per concedere l'accesso al bucket e agli oggetti contenuti al suo interno. Le richieste di impostazione o aggiornamento delle ACL falliscono e viene visualizzato il messaggio di errore AccessControlListNotSupported. Le richieste di lettura delle ACL sono ancora supportate.

Se hai attivato le impostazioni di blocco dell'accesso pubblico per tutti i bucket S3 nell'account, visualizzerai il messaggio Bucket and objects not public (Bucket e oggetti non pubblici). Consulta la pagina Configurazione delle impostazioni di blocco dell'accesso pubblico per l'account per ulteriori informazioni.

Importante: quando concedi l'accesso pubblico in lettura, chiunque su Internet può accedere agli oggetti. Se non è questo ciò che desideri, assicurati che il tuo bucket S3 non sia accessibile pubblicamente. Consulta le Best practice di sicurezza per Amazon S3 per ulteriori informazioni.

Informazioni correlate

Come posso concedere l'accesso pubblico in lettura ad alcuni oggetti nel mio bucket Amazon S3?

AWS UFFICIALE
AWS UFFICIALEAggiornata 10 mesi fa