Poți partaja fișiere din Amazon S3 fără să faci vreodată bucketul public. Păstrează-l privat, lasă Block Public Access activat și oferă-le oamenilor în schimb acces semnat la anumite obiecte: un URL presemnat pentru un fișier ocazional, URL-uri semnate CloudFront când ai deja un CDN în fața bucketului sau un link de partajare care adaugă parolă, dată de expirare și limită de descărcări. Toate trei funcționează la fel la furnizorii compatibili S3, precum Cloudflare R2, DigitalOcean Spaces, Wasabi și Backblaze B2 (CloudFront există doar în AWS).
Opțiunile de partajare sigură S3 pe scurt
| Metodă | Ideală pentru | Parolă | Limită de descărcări | Revocarea unui link | Foldere întregi | Cod necesar |
|---|---|---|---|---|---|---|
| Obiect sau bucket public | Resurse cu adevărat publice (un site web) | Nu | Nu | Nu | Da | Nu |
| URL presemnat | Un fișier, o dată, din CLI sau din aplicația ta | Nu | Nu | Nu | Nu | CLI sau SDK |
| URL semnat CloudFront | Aplicații care își autentifică deja utilizatorii | Nu | Nu | Nu | Cu cookie-uri semnate | Da |
| Link de partajare Nubbo | Partajare recurentă cu persoane din afară | Da | Da | Da | Da, cu ZIP | Nu |
De ce să nu faci pur și simplu fișierul public
Cea mai rapidă cale de a partaja un fișier din S3 este să îl faci public și să trimiți URL-ul obiectului. Este și cea mai riscantă: orice e public poate fi descărcat de oricine găsește sau ghicește adresa, fără parolă, fără expirare și fără nicio evidență a celui care l-a luat. Bucketurile publice uitate sunt o sursă clasică de scurgeri de date și expun atât numele fișierelor, cât și conținutul.
AWS afirmă că bucketurile, punctele de acces și obiectele noi nu permit implicit accesul public. Pe deasupra, S3 Block Public Access are patru setări (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy și RestrictPublicBuckets) care au prioritate față de orice politică sau ACL care ar deschide bucketul ulterior. Pot fi setate per bucket, per cont sau pentru o întreagă AWS Organization, iar S3 aplică combinația cea mai restrictivă. AWS recomandă activarea tuturor celor patru la nivel de cont, cu excepția cazului în care găzduiești cu adevărat conținut public, de exemplu un site static.
Lasă acel comutator activat. Tot ce urmează funcționează cu el activat.
Opțiunea 1: URL-uri presemnate
Un URL presemnat este un URL de obiect cu o semnătură în query string. Permite o singură operație (de obicei o descărcare) pe un singur obiect până expiră, iar S3 verifică semnătura la fiecare cerere.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Acest URL funcționează 24 de ore. Valoarea implicită a CLI-ului este o oră, iar maximul este 604.800 de secunde (7 zile) când semnezi cu chei de utilizator IAM. Dacă semnezi cu date de autentificare temporare, de exemplu un rol asumat, URL-ul moare când acestea expiră.
Ce obții:
- Nicio modificare a bucketului sau a politicilor lui.
- Control precis: un obiect, o metodă, o expirare.
- Funcționează la orice furnizor care acceptă presemnarea SigV4.
Ce nu obții:
- Nicio parolă. Oricine are URL-ul îl poate folosi, de câte ori vrea, până expiră.
- Nicio limită de descărcări și nicio revocare per link. Poți opri un URL mai devreme doar revocând cheile care l-au semnat.
- Niciun folder. Semnezi obiect cu obiect, așa că partajarea unui folder cu 300 de fișiere înseamnă 300 de URL-uri.
- Confidențialitatea numelor. URL-ul arată numele bucketului, cheia obiectului și ID-ul cheii tale de acces.
Pentru mecanismul în detaliu, inclusiv încărcările, fiecare parametru X-Amz-* și cod SDK, vezi URL-urile presemnate S3 explicate.
Opțiunea 2: URL-uri semnate și cookie-uri semnate CloudFront
Dacă servești deja bucketul prin Amazon CloudFront, poți cere URL-uri semnate sau cookie-uri semnate pe un cache behavior. Bucketul rămâne privat în spatele origin access control (OAC), pe care AWS îl recomandă în locul vechiului origin access identity: o bucket policy permite doar distribuției tale să citească obiectele. Înregistrezi chei publice într-un trusted key group și semnezi cu cheia privată corespunzătoare.
- URL-urile semnate se potrivesc pentru fișiere individuale. Cu o politică personalizată poți seta și o oră de început și un interval de IP-uri și poți refolosi o politică pentru multe fișiere cu wildcard-uri. Pot avea viață scurtă sau pot dura ani.
- Cookie-urile semnate se potrivesc pentru multe fișiere deodată, de exemplu toate segmentele unui video, fără să-ți schimbi URL-urile.
Aceasta este unealta potrivită când rulezi o aplicație care își autentifică deja utilizatorii și servește conținut la scară. Ca să dai câteva fișiere unor persoane din afara echipei, înseamnă să configurezi o distribuție, să gestionezi chei și să scrii cod care semnează fiecare cerere.
Restricționarea unei bucket policy la un interval fix de IP-uri este o altă opțiune nativă, dar ajută doar când cunoști rețelele destinatarilor, ceea ce rareori se întâmplă cu persoanele din afara organizației tale.
Opțiunea 3: linkuri de partajare cu Nubbo
Nubbo se conectează la bucketul tău și îți oferă linkuri de partajare cu controalele care lipsesc URL-urilor presemnate, fără să scrii cod. În spate folosește tot URL-uri presemnate: Nubbo verifică mai întâi regulile linkului și abia apoi emite un URL de scurtă durată, așa că fișierele individuale merg direct din bucketul tău în browserul destinatarului.
Pasul 1: conectează-ți bucketul
Înregistrează-te gratuit, confirmă-ți e-mailul, apoi deschide Bucketuri și apasă Conectează bucket. Asistentul îți cere furnizorul (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 sau un endpoint personalizat compatibil S3), modul de conectare (o configurare automată cu o cheie cu acces complet sau o cheie limitată la un singur bucket), cheia și bucketul. Verifică cheia și bucketul și încheie testând CORS cu o încărcare reală din browserul tău. Bucketul rămâne privat, iar cheile tale sunt păstrate criptate cu AES-256-GCM. Planul Gratuit include 2 conexiuni.
Pasul 2: alege fișierul sau folderul
Găsește elementul în explorator și alege Distribuie. Poți merge și în pagina Partajate, să apeși Link nou și să alegi acolo bucketul și fișierul sau folderul.
Pasul 3: setează protecția
Toate cele trei controale sunt opționale și disponibile pe toate planurile:
| Control | Cum funcționează |
|---|---|
| Parolă | Între 4 și 50 de caractere. După 10 încercări greșite, linkul se blochează pentru 15 minute. |
| Data expirării | Dezactivată implicit: linkul rămâne activ cât timp fișierul sau folderul este în stocarea ta. |
| Descărcări maxime | Gol înseamnă nelimitat. Când se atinge numărul, linkul nu mai servește fișierul. |
Pasul 4: creează și trimite linkul
Apasă Creează link, copiază-l și trimite-l prin e-mail, chat sau ce folosești. Destinatarul deschide o pagină de descărcare curată și nu are nevoie de cont. Un link de folder îi permite să parcurgă folderul, să descarce fișiere individuale sau să ia totul ca ZIP, pe care browserul lui îl construiește descărcând fiecare fișier direct din bucketul tău.
Pasul 5: trimite parola separat
Dacă trimiți parola în același mesaj cu linkul, pierzi tot rostul. Dacă linkul are parolă, Trimite parola prin email o livrează printr-un link de dezvăluire unică: parola se afișează o singură dată, linkul de dezvăluire expiră după 24 de ore, 3 zile sau 7 zile și poți adăuga o notă scurtă. Ești anunțat când este deschis.
Pasul 6: urmărește și revocă
Pagina Partajate listează fiecare link cu starea și numărul lui de descărcări. Poți edita parola, expirarea sau limita, poți dezactiva un link (nu mai emite imediat URL-uri noi de descărcare) și îl poți redeschide mai târziu cu aceeași adresă.
Partajarea cu anumite persoane în loc de un link
Un link funcționează pentru oricine îl are. Când vrei să intre doar anumite persoane, funcția Partajează cu persoane din Nubbo (pe planurile Personal și Pro) trimite un fișier sau un folder la anumite adrese de e-mail, cu permisiune de vizualizare sau de descărcare, expirare opțională și plafon de descărcări, și înregistrează fiecare acces. Destinatarii au nevoie de un cont Nubbo și găsesc elementul în Partajate cu mine. Personal permite 10 persoane per element și 50 de partajări active; Pro permite 50 și 500.
Planurile plătite oferă și linkuri criptate: browserul face o copie sigilată a fișierului, iar cheia circulă doar în linkul însuși, așa că Nubbo nu o poate citi.
Ce opțiune să folosești?
- Un fișier, o singură dată, și ai AWS CLI configurat: un URL presemnat este calea cea mai rapidă.
- O aplicație care își autentifică deja utilizatorii și servește mult conținut: URL-uri sau cookie-uri semnate CloudFront.
- Partajare recurentă cu persoane din afara echipei, foldere întregi sau orice are nevoie de parolă ori de limită: un link de partajare îți economisește timp și greșeli.
Dincolo de un singur link
Două funcții înrudite acoperă celelalte cazuri frecvente. Cererile de fișiere îți oferă un link public de încărcare, ca oamenii să-ți trimită fișiere în bucket fără să vadă nimic altceva din el. Galeriile transformă un folder de fotografii sau videoclipuri într-o pagină navigabilă, cu aranjamente, filigran și propria parolă. Pe planul Gratuit ai câte 3 din fiecare și linkuri de partajare nelimitate; Personal și Pro elimină aceste plafoane. O notă sinceră: miniaturile sunt generate pe serverul Nubbo și stocate în propriul tău bucket, în .nubbo-thumbs/.
Întrebări frecvente
Cum partajez un fișier din S3 fără să îl fac public?
Păstrează bucketul privat și oferă în schimb acces semnat: un URL presemnat pentru un obiect (din AWS CLI sau dintr-un SDK), un URL sau un cookie semnat CloudFront dacă servești deja bucketul prin CloudFront ori un link de partajare dintr-o unealtă precum Nubbo, care adaugă parolă, expirare și limită de descărcări peste URL-urile presemnate.
Este Amazon S3 sigur pentru partajarea fișierelor?
Da, atâta timp cât bucketul rămâne privat. Bucketurile noi nu permit implicit accesul public, iar S3 Block Public Access împiedică pe oricine să le deschidă ulterior. Riscul vine din a face obiecte publice sau din scurgerea linkurilor semnate, care funcționează pentru oricine le are până expiră.
Bucketurile S3 noi sunt private implicit?
Da. AWS afirmă că bucketurile, punctele de acces și obiectele noi nu permit implicit accesul public, iar cele patru setări Block Public Access au prioritate față de orice politică sau ACL care le-ar deschide ulterior.
Destinatarul are nevoie de un cont AWS sau Nubbo?
Nu. Un URL presemnat, un URL semnat CloudFront și un link de partajare Nubbo funcționează în orice browser, fără cont. Doar Partajează cu persoane, care trimite un element unor persoane anume, le cere să aibă un cont Nubbo.
Cât poate dura un link S3 partajat?
Un URL presemnat durează cel mult 7 zile când este semnat cu chei de utilizator IAM și mai puțin cu date de autentificare temporare. URL-urile semnate CloudFront durează cât spune politica ta. Un link de partajare Nubbo nu expiră decât dacă setezi o dată, pentru că emite un URL nou, de scurtă durată, la fiecare descărcare.
Fișierele trec prin Nubbo când cineva descarcă dintr-un link partajat?
Nu: browserul descarcă fișierele individuale direct din bucketul tău cu un URL presemnat. Descărcările ZIP cu mai multe fișiere sunt asamblate în browser, care descarcă fiecare fișier direct din bucketul tău: Nubbo nu vede niciodată conținutul.
Surse
Prețurile și limitele provin din paginile oficiale de mai jos. Furnizorii le schimbă, așa că verifică-le înainte să te decizi.
- Amazon S3: blocarea accesului public la stocare
- Amazon S3: descărcarea și încărcarea obiectelor cu URL-uri presemnate
- Referința AWS CLI: s3 presign
- Amazon CloudFront: restricționarea accesului la o origine Amazon S3 (OAC)
- Amazon CloudFront: folosirea URL-urilor semnate
- Amazon CloudFront: URL-uri semnate sau cookie-uri semnate