30 de septiembre de 2026 · 6 min de lectura
Cómo hacer público un bucket de Amazon S3
Los buckets nuevos de S3 bloquean todo el acceso público y tienen las ACL desactivadas de forma predeterminada, así que el antiguo botón "make public" de cada objeto ya no hace nada. Hoy la lectura pública se consigue con una política de bucket.
Paso 1: permite las políticas de bucket públicas
- Abre el bucket en la consola de S3 y ve a la pestaña Permissions.
- En Block public access (bucket settings), selecciona Edit.
- Desmarca los dos ajustes sobre bucket and access point policies. Puedes dejar activados los dos ajustes de ACL, porque la política no usa ACL.
- Guarda y confirma.
Si el ajuste también está activo a nivel de cuenta (Block Public Access settings for this account en la barra lateral de S3), prevalece sobre el del bucket y también tiene que permitir las políticas.
Paso 2: añade una política de bucket de lectura pública
Sin salir de Permissions, edita la Bucket policy y pega esto con el nombre de tu bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket/*"
}
]
}
Esto permite leer objetos, no listar el bucket. Para hacer pública solo una carpeta, acota el recurso, por ejemplo arn:aws:s3:::your-bucket/public/*.
Con la AWS CLI, los mismos dos pasos son:
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.jsonPaso 3: encuentra la URL pública
Los objetos ya están disponibles en la URL de estilo virtual-hosted:
https://your-bucket.s3.eu-central-1.amazonaws.com/2026/09/report.pdf
Usa la región de tu bucket. Si esta dirección devuelve AccessDenied, los ajustes de Block Public Access siguen bloqueando la política o el nombre del bucket en la política tiene una errata.
La alternativa más segura: CloudFront con un bucket privado
Si prefieres no abrir el propio bucket, deja activado Block Public Access y crea una distribución de CloudFront con el bucket como origen y Origin access control (OAC). CloudFront te muestra la política de bucket que permite leer objetos solo a la distribución. Obtienes HTTPS con tu propio dominio, caché y un bucket que sigue siendo privado. Consulta dominios personalizados para enlaces de buckets.
Preguntas frecuentes
¿Por qué ya no funciona "Make public using ACL"?
Desde abril de 2023, los buckets nuevos tienen Object Ownership configurado como Bucket owner enforced, lo que desactiva las ACL. El acceso público tiene que venir de una política de bucket o de CloudFront.
¿Un bucket público permite que la gente liste mis archivos?
No con la política de arriba. Solo permite s3:GetObject. Para listar haría falta s3:ListBucket sobre el propio bucket, algo que no deberías conceder públicamente.
¿Un bucket público aumentará mi factura de AWS?
Pagas por las peticiones y por la transferencia de datos de salida cuando alguien descarga archivos. Para archivos muy compartidos, CloudFront o un proveedor sin costes de salida, como Cloudflare R2, suele salir más barato.