Pots compartir fitxers d’Amazon S3 sense fer mai públic el bucket. Mantén-lo privat, deixa activat Block Public Access i dona a la gent accés signat a objectes concrets: una URL presignada per a un fitxer puntual, URL signades de CloudFront quan ja tens una CDN davant del bucket, o un enllaç per compartir que afegeix contrasenya, data de caducitat i límit de baixades. Les tres opcions funcionen igual en proveïdors compatibles amb S3 com Cloudflare R2, DigitalOcean Spaces, Wasabi i Backblaze B2 (CloudFront només és d’AWS).
Opcions per compartir fitxers d’S3 de manera segura d’un cop d’ull
| Mètode | Ideal per a | Contrasenya | Límit de baixades | Revocar un enllaç | Carpetes senceres | Cal codi |
|---|---|---|---|---|---|---|
| Objecte o bucket públic | Recursos realment públics (un web) | No | No | No | Sí | No |
| URL presignada | Un fitxer, un cop, des de la CLI o la teva app | No | No | No | No | CLI o SDK |
| URL signada de CloudFront | Apps que ja autentiquen els usuaris | No | No | No | Amb galetes signades | Sí |
| Enllaç per compartir de Nubbo | Compartir sovint amb persones de fora | Sí | Sí | Sí | Sí, amb ZIP | No |
Per què no fer públic el fitxer i prou
La manera més ràpida de compartir un fitxer d’S3 és fer-lo públic i enviar la URL de l’objecte. També és la més arriscada: qualsevol cosa pública la pot obtenir qualsevol persona que en trobi o n’endevini l’adreça, sense contrasenya, sense caducitat i sense cap registre de qui se l’ha endut. Els buckets públics oblidats són una font clàssica de filtracions de dades, i exposen els noms dels fitxers a més del contingut.
AWS afirma que els buckets, els access points i els objectes nous no permeten l’accés públic per defecte. A més, S3 Block Public Access té quatre opcions (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy i RestrictPublicBuckets) que passen per davant de qualsevol política o ACL que pogués obrir el bucket més endavant. Es poden definir per bucket, per compte o per a tota una AWS Organization, i S3 aplica la combinació més restrictiva. AWS recomana activar-les totes quatre a nivell de compte tret que realment allotgis contingut públic, com un web estàtic.
Deixa aquest interruptor activat. Tot el que ve a continuació funciona amb ell activat.
Opció 1: URL presignades
Una URL presignada és una URL d’objecte amb una signatura a la query string. Permet una operació (normalment una baixada) sobre un objecte fins que caduca, i S3 comprova la signatura a cada petició.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Aquesta URL funciona durant 24 hores. El valor per defecte de la CLI és d’una hora i el màxim és de 604.800 segons (7 dies) quan signes amb claus d’usuari IAM. Si signes amb credencials temporals, com un rol assumit, la URL mor quan caduquen aquestes credencials.
El que obtens:
- Cap canvi al bucket ni a les seves polítiques.
- Control precís: un objecte, un mètode, una caducitat.
- Funciona en qualsevol proveïdor que admeti la presignatura SigV4.
El que no obtens:
- Cap contrasenya. Qui tingui la URL la pot fer servir, tantes vegades com vulgui, fins que caduqui.
- Cap límit de baixades ni revocació per enllaç. Només pots matar una URL abans d’hora revocant les claus que la van signar.
- Cap carpeta. Signes objecte per objecte, així que compartir una carpeta de 300 fitxers vol dir 300 URL.
- Privadesa dels noms. La URL mostra el nom del teu bucket, la clau de l’objecte i el teu access key ID.
Per conèixer el funcionament a fons, incloses les pujades, cada paràmetre X-Amz-* i codi d’SDK, mira URL presignades d’S3 explicades.
Opció 2: URL signades i galetes signades de CloudFront
Si ja serveixes el bucket amb Amazon CloudFront, pots exigir URL signades o galetes signades en un cache behavior. El bucket continua sent privat darrere de l’origin access control (OAC), que AWS recomana per sobre de l’antiga origin access identity: una bucket policy només deixa llegir els objectes a la teva distribució. Registres claus públiques en un trusted key group i signes amb la clau privada corresponent.
- Les URL signades són adequades per a fitxers individuals. Amb una política personalitzada també pots definir una hora d’inici i un rang d’IP, i reaprofitar una política per a molts fitxers amb comodins. Poden ser de curta durada o durar anys.
- Les galetes signades són adequades per a molts fitxers alhora, com tots els segments d’un vídeo, sense canviar les teves URL.
És l’eina adequada quan tens una aplicació que ja autentica els usuaris i serveix contingut a escala. Per passar uns quants fitxers a persones de fora del teu equip, vol dir configurar una distribució, gestionar claus i escriure codi que signi cada petició.
Restringir una bucket policy a un rang d’IP fix és una altra opció nativa, però només ajuda quan coneixes les xarxes de qui rep els fitxers, cosa que poques vegades passa amb persones de fora de la teva organització.
Opció 3: enllaços per compartir amb Nubbo
Nubbo es connecta al teu bucket i et dona enllaços per compartir amb els controls que no tenen les URL presignades, sense escriure codi. Per sota continua fent servir URL presignades: Nubbo comprova primer les regles de l’enllaç i només llavors emet una URL de curta durada, així que els fitxers individuals viatgen directament del teu bucket al navegador de qui els rep.
Pas 1: connecta el teu bucket
Registra’t gratis, verifica el teu correu i després obre Buckets i prem Connecta un bucket. L’assistent et demana el teu proveïdor (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 o un endpoint personalitzat compatible amb S3), com connectar (una configuració automàtica amb una clau d’accés complet, o una clau limitada a un bucket), la teva clau i el teu bucket. Comprova la clau i el bucket, i acaba provant el CORS amb una pujada real des del teu navegador. El bucket continua sent privat i les teves claus es guarden xifrades amb AES-256-GCM. El pla Gratuït inclou 2 connexions.
Pas 2: tria el fitxer o la carpeta
Busca l’element a l’explorador i tria Comparteix. També pots anar a la pàgina Compartits, prémer Enllaç nou i triar-hi el bucket i el fitxer o la carpeta.
Pas 3: defineix la protecció
Els tres controls són opcionals i estan disponibles a tots els plans:
| Control | Com funciona |
|---|---|
| Contrasenya | De 4 a 50 caràcters. Després de 10 intents erronis l’enllaç es bloqueja durant 15 minuts. |
| Data de caducitat | Desactivada per defecte: l’enllaç continua actiu mentre el fitxer o la carpeta sigui al teu emmagatzematge. |
| Màxim de baixades | Buit vol dir il·limitat. Quan s’arriba al nombre, l’enllaç deixa de servir el fitxer. |
Pas 4: crea i envia l’enllaç
Prem Crea l’enllaç, copia’l i envia’l per correu, per xat o pel que facis servir. Qui el rep obre una pàgina de baixada neta i no necessita compte. Un enllaç de carpeta li permet navegar per la carpeta, baixar fitxers individuals o endur-s’ho tot en un ZIP, que munta el seu navegador baixant cada fitxer directament del teu bucket.
Pas 5: envia la contrasenya a part
Enviar la contrasenya en el mateix missatge que l’enllaç no té cap sentit. Si l’enllaç té contrasenya, Envia la contrasenya per correu l’entrega com un enllaç que només es pot revelar una vegada: la contrasenya es mostra un cop, l’enllaç de revelació caduca al cap de 24 hores, 3 dies o 7 dies, i hi pots afegir una nota breu. Reps un avís quan s’obre.
Pas 6: fes-ne el seguiment i revoca’l
La pàgina Compartits llista tots els enllaços amb el seu estat i el seu nombre de baixades. Pots editar la contrasenya, la caducitat o el límit, desactivar un enllaç (deixa d’emetre noves URL de baixada a l’instant) i tornar-lo a obrir més endavant amb la mateixa adreça.
Compartir amb persones concretes en lloc d’un enllaç
Un enllaç funciona per a qualsevol persona que el tingui. Quan vols que només hi puguin entrar persones concretes, Compartir amb persones de Nubbo (als plans Personal i Pro) envia un fitxer o una carpeta a adreces de correu concretes amb permís de visualització o de baixada, una caducitat opcional i un límit de baixades, i registra cada accés. Les persones que el reben necessiten un compte de Nubbo i troben l’element a Compartit amb mi. Personal permet 10 persones per element i 50 comparticions actives; Pro en permet 50 i 500.
Els plans de pagament també ofereixen enllaços xifrats: el navegador fa una còpia segellada del fitxer i la clau només viatja dins del mateix enllaç, així que Nubbo no la pot llegir.
Quina opció has de fer servir?
- Un fitxer, un cop, i tens l’AWS CLI configurada: una URL presignada és el camí més ràpid.
- Una aplicació que ja fa iniciar sessió als usuaris i serveix molt de contingut: URL o galetes signades de CloudFront.
- Compartir sovint amb persones de fora del teu equip, carpetes senceres o qualsevol cosa que necessiti contrasenya o un límit: un enllaç per compartir estalvia temps i errors.
Més enllà d’un sol enllaç
Dues funcions relacionades cobreixen els altres casos habituals. Les bústies et donen un enllaç públic de pujada perquè la gent pugui enviar fitxers al teu bucket sense veure res més del que hi ha. Les galeries converteixen una carpeta de fotos o vídeos en una pàgina navegable amb dissenys, marca d’aigua i la seva pròpia contrasenya. Al pla Gratuït en tens 3 de cada i enllaços per compartir il·limitats; Personal i Pro eliminen aquests límits. Una nota, per ser honestos: les miniatures es generen al servidor de Nubbo i es guarden al teu propi bucket a .nubbo-thumbs/.
Preguntes freqüents
Com comparteixo un fitxer d'S3 sense fer-lo públic?
Mantén el bucket privat i reparteix accés signat: una URL presignada per a un objecte (des de l'AWS CLI o un SDK), una URL o una galeta signada de CloudFront si ja serveixes el bucket amb CloudFront, o un enllaç per compartir d'una eina com Nubbo que afegeix contrasenya, caducitat i límit de baixades a sobre de les URL presignades.
Amazon S3 és segur per compartir fitxers?
Sí, sempre que el bucket continuï sent privat. Els buckets nous no permeten l'accés públic per defecte i S3 Block Public Access impedeix que ningú els obri més endavant. El risc ve de fer públics els objectes o de filtrar enllaços signats, que funcionen per a qualsevol persona que els tingui fins que caduquen.
Els buckets nous d'S3 són privats per defecte?
Sí. AWS afirma que els buckets, els access points i els objectes nous no permeten l'accés públic per defecte, i les quatre opcions de Block Public Access passen per davant de qualsevol política o ACL que els pogués obrir més endavant.
Qui rep l'enllaç necessita un compte d'AWS o de Nubbo?
No. Una URL presignada, una URL signada de CloudFront i un enllaç per compartir de Nubbo funcionen en qualsevol navegador sense compte. Només Compartir amb persones, que envia un element a persones concretes, requereix que tinguin un compte de Nubbo.
Quant pot durar un enllaç compartit d'S3?
Una URL presignada dura com a màxim 7 dies quan se signa amb claus d'usuari IAM, i menys amb credencials temporals. Les URL signades de CloudFront duren el que digui la teva política. Un enllaç per compartir de Nubbo no caduca tret que li posis una data, perquè emet una URL nova de curta durada a cada baixada.
Els fitxers passen per Nubbo quan algú baixa un enllaç compartit?
No: el navegador baixa els fitxers individuals directament del teu bucket amb una URL presignada. Les baixades ZIP de diversos fitxers les munta el navegador, que baixa cada fitxer directament del teu bucket: Nubbo no veu el contingut.
Fonts
Els preus i els límits surten de les pàgines oficials de sota. Els proveïdors els canvien, així que comprova'ls abans de decidir.
- Amazon S3: bloquejar l'accés públic al teu emmagatzematge
- Amazon S3: baixar i pujar objectes amb URL presignades
- Referència de l'AWS CLI: s3 presign
- Amazon CloudFront: restringir l'accés a un origen Amazon S3 (OAC)
- Amazon CloudFront: fer servir URL signades
- Amazon CloudFront: triar entre URL signades i galetes signades