Puedes compartir archivos de Amazon S3 sin hacer nunca público el bucket. Mantenlo privado, deja activado el bloqueo de acceso público y da a cada persona acceso firmado a objetos concretos: una URL prefirmada para un archivo puntual, URLs firmadas de CloudFront si ya tienes una CDN delante del bucket, o un enlace para compartir que añade contraseña, fecha de caducidad y límite de descargas. Las tres opciones funcionan igual en proveedores compatibles con S3 como Cloudflare R2, DigitalOcean Spaces, Wasabi y Backblaze B2 (CloudFront es solo de AWS).
Formas seguras de compartir archivos de S3, en resumen
| Método | Ideal para | Contraseña | Límite de descargas | Revocar un enlace | Carpetas enteras | Requiere código |
|---|---|---|---|---|---|---|
| Objeto o bucket público | Contenido de verdad público (una web) | No | No | No | Sí | No |
| URL prefirmada | Un archivo, una vez, desde la CLI o tu app | No | No | No | No | CLI o SDK |
| URL firmada de CloudFront | Apps que ya autentican a sus usuarios | No | No | No | Con cookies firmadas | Sí |
| Enlace de Nubbo | Compartir a menudo con gente de fuera | Sí | Sí | Sí | Sí, con ZIP | No |
Por qué no hacer público el archivo
La forma más rápida de compartir un archivo de S3 es hacerlo público y enviar la URL del objeto. También es la más arriesgada: cualquier cosa pública la puede descargar quien encuentre o adivine la dirección, sin contraseña, sin caducidad y sin saber quién se la llevó. Los buckets públicos olvidados son una fuente clásica de filtraciones de datos, y dejan ver tanto el contenido como los nombres de los archivos.
AWS indica que los buckets, puntos de acceso y objetos nuevos no permiten acceso público por defecto. Además, S3 Block Public Access tiene cuatro ajustes (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy y RestrictPublicBuckets) que se imponen a cualquier política o ACL que intente abrir el bucket más adelante. Se pueden aplicar por bucket, por cuenta o para toda una organización de AWS, y S3 aplica la combinación más restrictiva. AWS recomienda activar los cuatro a nivel de cuenta salvo que alojes contenido realmente público, como una web estática.
Deja ese interruptor activado. Todo lo que sigue funciona con él puesto.
Opción 1: URLs prefirmadas
Una URL prefirmada es la URL de un objeto con una firma en la query string. Permite una operación (normalmente una descarga) sobre un objeto hasta que caduca, y S3 comprueba la firma en cada petición.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Esa URL funciona durante 24 horas. Por defecto la CLI usa una hora y el máximo son 604.800 segundos (7 días) si firmas con claves de usuario IAM. Si firmas con credenciales temporales, como un rol asumido, la URL deja de funcionar cuando caducan esas credenciales.
Lo que consigues:
- Ningún cambio en el bucket ni en sus políticas.
- Control preciso: un objeto, un método, una caducidad.
- Funciona en cualquier proveedor que admita la firma SigV4.
Lo que no consigues:
- Sin contraseña. Quien tenga la URL puede usarla, tantas veces como quiera, hasta que caduque.
- Sin límite de descargas ni revocación por enlace. Solo puedes anular una URL antes de tiempo revocando las claves que la firmaron.
- Sin carpetas. Se firma objeto a objeto, así que compartir una carpeta de 300 archivos son 300 URLs.
- Sin privacidad en los nombres. La URL muestra el nombre del bucket, la clave del objeto y tu access key ID.
Para ver el mecanismo a fondo, con subidas, cada parámetro X-Amz-* y código de los SDK, lee qué es una URL prefirmada de S3.
Opción 2: URLs y cookies firmadas de CloudFront
Si ya sirves el bucket a través de Amazon CloudFront, puedes exigir URLs o cookies firmadas en un comportamiento de caché. El bucket sigue privado detrás del control de acceso al origen (OAC), que AWS recomienda frente a la antigua identidad de acceso al origen: una política del bucket deja que solo tu distribución lea los objetos. Registras claves públicas en un grupo de claves de confianza y firmas con la clave privada correspondiente.
- Las URLs firmadas encajan para archivos sueltos. Con una política personalizada también puedes fijar una hora de inicio y un rango de IP, y reutilizar una misma política para muchos archivos con comodines. Pueden durar minutos o años.
- Las cookies firmadas encajan para muchos archivos a la vez, como todos los segmentos de un vídeo, sin cambiar tus URLs.
Es la herramienta adecuada si tienes una aplicación que ya autentica usuarios y sirve contenido a escala. Para pasar unos cuantos archivos a gente de fuera de tu equipo, supone montar una distribución, gestionar claves y escribir código que firme cada petición.
Limitar la política del bucket a un rango de IP fijo es otra opción nativa, pero solo sirve si conoces las redes de quienes reciben los archivos, y con gente de fuera de tu organización casi nunca es así.
Opción 3: enlaces para compartir con Nubbo
Nubbo se conecta a tu bucket y te da enlaces para compartir con los controles que les faltan a las URLs prefirmadas, sin escribir código. Por debajo sigue usando URLs prefirmadas: Nubbo comprueba primero las reglas del enlace y solo entonces emite una URL de vida corta, así que los archivos sueltos van directamente de tu bucket al navegador de quien los descarga.
Paso 1: Conecta tu bucket
Regístrate gratis, verifica tu email, abre Buckets y pulsa Conectar bucket. El asistente te pide el proveedor (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 o un endpoint compatible con S3), cómo conectar (configuración automática con una clave de acceso completo, o una clave limitada a un bucket), tu clave y tu bucket. Comprueba la clave y el bucket, y termina probando CORS con una subida real desde tu navegador. El bucket sigue siendo privado y tus claves se guardan cifradas con AES-256-GCM. El plan Gratuito incluye 2 conexiones.
Paso 2: Elige el archivo o la carpeta
Busca el elemento en el explorador y elige Compartir. También puedes ir a la página Compartidos, pulsar Nuevo enlace y elegir ahí el bucket y el archivo o la carpeta.
Paso 3: Configura la protección
Los tres controles son opcionales y están en todos los planes:
| Control | Cómo funciona |
|---|---|
| Contraseña | De 4 a 50 caracteres. Tras 10 intentos fallidos, el enlace se bloquea 15 minutos. |
| Fecha de caducidad | Desactivada por defecto: el enlace sigue activo mientras el archivo esté en tu bucket. |
| Descargas máximas | Vacío significa ilimitado. Al llegar al límite, el enlace deja de servir el archivo. |
Paso 4: Crea y envía el enlace
Pulsa Crear enlace, cópialo y envíalo por email, chat o lo que uses. Quien lo recibe abre una página de descarga limpia y no necesita cuenta. Un enlace de carpeta le deja recorrer la carpeta, descargar archivos sueltos o llevarse todo en un ZIP, que monta su navegador descargando cada archivo directamente de tu bucket.
Paso 5: Envía la contraseña por separado
Mandar la contraseña en el mismo mensaje que el enlace no tiene sentido. Si el enlace tiene contraseña, Enviar contraseña por email la manda como un enlace de un solo uso: la contraseña se muestra una vez, el enlace caduca a las 24 horas, 3 días o 7 días, y puedes añadir una nota breve. Recibes un aviso cuando se abre.
Paso 6: Controla y revoca
La página Compartidos lista cada enlace con su estado y su número de descargas. Puedes cambiar la contraseña, la caducidad o el límite, desactivar un enlace (deja de emitir URLs de descarga al momento) y reabrirlo más tarde con la misma dirección.
Compartir con personas concretas en vez de con un enlace
Un enlace sirve a cualquiera que lo tenga. Cuando quieres que solo entren personas concretas, Compartir con personas de Nubbo (en los planes Personal y Pro) envía un archivo o una carpeta a direcciones de email concretas con permiso de ver o descargar, caducidad opcional y un tope de descargas, y registra cada acceso. Quienes lo reciben necesitan cuenta en Nubbo y lo encuentran en Compartido conmigo. Personal permite 10 personas por elemento y 50 compartidos activos; Pro, 50 y 500.
Los planes de pago también ofrecen enlaces cifrados: el navegador crea una copia sellada del archivo y la clave viaja solo en el propio enlace, así que Nubbo no puede leerlo.
Qué opción te conviene
- Un archivo, una vez, y tienes la AWS CLI configurada: una URL prefirmada es lo más rápido.
- Una aplicación que ya identifica a sus usuarios y sirve mucho contenido: URLs o cookies firmadas de CloudFront.
- Compartir a menudo con gente de fuera de tu equipo, carpetas enteras o cualquier cosa que necesite contraseña o límite: un enlace para compartir te ahorra tiempo y errores.
Más allá de un enlace
Dos funciones relacionadas cubren los otros casos habituales. Los buzones te dan un enlace público de subida para que otras personas envíen archivos a tu bucket sin ver nada más de él. Las galerías convierten una carpeta de fotos o vídeos en una página navegable con diseños, marca de agua y su propia contraseña. En el plan Gratuito tienes 3 de cada y enlaces para compartir ilimitados; Personal y Pro quitan esos límites. Una nota, para ser claros: las miniaturas se generan en el servidor de Nubbo y se guardan en tu propio bucket, en .nubbo-thumbs/.
Preguntas frecuentes
¿Cómo comparto un archivo de S3 sin hacerlo público?
Mantén el bucket privado y da acceso firmado: una URL prefirmada para un objeto (desde la AWS CLI o un SDK), una URL o cookie firmada de CloudFront si ya sirves el bucket a través de CloudFront, o un enlace de una herramienta como Nubbo, que añade contraseña, caducidad y límite de descargas sobre las URLs prefirmadas.
¿Es seguro Amazon S3 para compartir archivos?
Sí, mientras el bucket siga siendo privado. Los buckets nuevos no permiten acceso público por defecto y el bloqueo de acceso público de S3 impide abrirlos más tarde. El riesgo está en hacer públicos los objetos o en filtrar enlaces firmados, que funcionan para cualquiera que los tenga hasta que caducan.
¿Los buckets nuevos de S3 son privados por defecto?
Sí. AWS indica que los buckets, puntos de acceso y objetos nuevos no permiten acceso público por defecto, y los cuatro ajustes de Block Public Access se imponen a cualquier política o ACL que intente abrirlos después.
¿Quien recibe el enlace necesita cuenta de AWS o de Nubbo?
No. Una URL prefirmada, una URL firmada de CloudFront y un enlace de Nubbo funcionan en cualquier navegador sin cuenta. Solo Compartir con personas, que envía un elemento a personas concretas, exige que tengan cuenta en Nubbo.
¿Cuánto puede durar un enlace compartido de S3?
Una URL prefirmada dura como máximo 7 días si la firmas con claves de usuario IAM, y menos con credenciales temporales. Las URLs firmadas de CloudFront duran lo que diga tu política. Un enlace de Nubbo no caduca salvo que tú lo indiques, porque emite una URL nueva de vida corta en cada descarga.
¿Los archivos pasan por Nubbo cuando alguien descarga un enlace compartido?
No: el navegador descarga los archivos sueltos directamente de tu bucket con una URL prefirmada. Las descargas en ZIP de varios archivos las monta el navegador, que descarga cada archivo directamente de tu bucket: Nubbo no ve el contenido.
Fuentes
Los precios y límites salen de las páginas oficiales de abajo. Los proveedores los cambian, así que compruébalos antes de decidir.