30 settembre 2026 · 6 min di lettura
Come rendere pubblico un bucket Amazon S3
I nuovi bucket S3 bloccano ogni accesso pubblico e le ACL sono disattivate per impostazione predefinita, quindi il vecchio pulsante «rendi pubblico» su ogni oggetto non fa più nulla. Oggi la lettura pubblica passa da una bucket policy.
Passo 1: consenti le bucket policy pubbliche
- Apri il bucket nella console S3 e vai nella scheda Permissions.
- In Block public access (bucket settings), seleziona Edit.
- Deseleziona le due impostazioni relative a bucket and access point policies. Puoi lasciare attive le due impostazioni sulle ACL, perché la policy non usa ACL.
- Salva e conferma.
Se l'impostazione è attiva anche a livello di account (Block Public Access settings for this account nella barra laterale di S3), prevale su quella del bucket e deve consentire anch'essa le policy.
Passo 2: aggiungi una bucket policy di lettura pubblica
Sempre in Permissions, modifica la Bucket policy e incolla questo, con il nome del tuo bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket/*"
}
]
}
Questa policy consente di leggere gli oggetti, non di elencare il bucket. Per rendere pubblica una sola cartella, restringi la risorsa, ad esempio arn:aws:s3:::your-bucket/public/*.
Con la AWS CLI, gli stessi due passi sono:
aws s3api put-public-access-block --bucket your-bucket \
--public-access-block-configuration \
BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=false,RestrictPublicBuckets=false
aws s3api put-bucket-policy --bucket your-bucket --policy file://policy.jsonPasso 3: trova l'URL pubblico
Ora gli oggetti sono disponibili all'URL in stile virtual-hosted:
https://your-bucket.s3.eu-central-1.amazonaws.com/2026/09/report.pdf
Usa la regione del tuo bucket. Se questo indirizzo restituisce AccessDenied, le impostazioni di Block Public Access stanno ancora bloccando la policy, oppure il nome del bucket nella policy contiene un errore di battitura.
L'alternativa più sicura: CloudFront con un bucket privato
Se preferisci non aprire il bucket, lascia attivo Block Public Access e crea una distribuzione CloudFront con il bucket come origine e l'Origin access control (OAC). CloudFront ti mostra la bucket policy che permette solo alla distribuzione di leggere gli oggetti. Ottieni HTTPS sul tuo dominio, la cache e un bucket che resta privato. Vedi domini personalizzati per i link dei bucket.
Domande frequenti
Perché «Make public using ACL» non funziona più?
Da aprile 2023, nei nuovi bucket l'Object Ownership è impostato su Bucket owner enforced, che disattiva le ACL. L'accesso pubblico deve passare da una bucket policy o da CloudFront.
Un bucket pubblico permette di elencare i miei file?
Non con la policy qui sopra. Consente solo s3:GetObject. Per elencare servirebbe s3:ListBucket sul bucket stesso, che non dovresti concedere pubblicamente.
Un bucket pubblico farà aumentare la mia bolletta AWS?
Paghi le richieste e il trasferimento dati in uscita quando qualcuno scarica i file. Per file molto condivisi, CloudFront o un provider senza costi di egress, come Cloudflare R2, di solito costa meno.