Súbory z Amazon S3 môžete zdieľať bez toho, aby ste bucket kedykoľvek zverejnili. Ponechajte ho súkromný, nechajte zapnuté Block Public Access a namiesto toho dajte ľuďom podpísaný prístup ku konkrétnym objektom: presigned URL pre jednorazový súbor, podpísané URL CloudFront, keď už pred bucketom prevádzkujete CDN, alebo odkaz na zdieľanie, ktorý pridáva heslo, dátum vypršania a limit stiahnutí. Všetky tri fungujú rovnako u S3 kompatibilných poskytovateľov ako Cloudflare R2, DigitalOcean Spaces, Wasabi a Backblaze B2 (CloudFront je len v AWS).
Možnosti bezpečného zdieľania súborov z S3 v skratke
| Metóda | Najlepšie na | Heslo | Limit stiahnutí | Zrušenie jedného odkazu | Celé priečinky | Potrebný kód |
|---|---|---|---|---|---|---|
| Verejný objekt alebo bucket | Skutočne verejné súbory (web) | Nie | Nie | Nie | Áno | Nie |
| Presigned URL | Jeden súbor, raz, z CLI alebo vašej aplikácie | Nie | Nie | Nie | Nie | CLI alebo SDK |
| Podpísaná URL CloudFront | Aplikácie, ktoré už overujú používateľov | Nie | Nie | Nie | S podpísanými cookies | Áno |
| Odkaz na zdieľanie Nubbo | Opakované zdieľanie s ľuďmi zvonka | Áno | Áno | Áno | Áno, so ZIP | Nie |
Prečo súbor jednoducho nezverejniť
Najrýchlejší spôsob, ako zdieľať súbor z S3, je zverejniť ho a poslať URL objektu. Je to aj najrizikovejší: čokoľvek verejné môže stiahnuť ktokoľvek, kto adresu nájde alebo uhádne, bez hesla, bez platnosti a bez záznamu o tom, kto si to vzal. Zabudnuté verejné buckety sú klasickým zdrojom únikov dát a odhaľujú názvy súborov aj ich obsah.
AWS uvádza, že nové buckety, prístupové body a objekty predvolene nepovoľujú verejný prístup. Navyše S3 Block Public Access má štyri nastavenia (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy a RestrictPublicBuckets), ktoré majú prednosť pred akoukoľvek politikou alebo ACL, ktorá by bucket neskôr otvorila. Dajú sa nastaviť pre bucket, pre účet alebo pre celú AWS Organization a S3 použije najprísnejšiu kombináciu. AWS odporúča zapnúť všetky štyri na úrovni účtu, pokiaľ naozaj nehosťujete verejný obsah, napríklad statický web.
Nechajte tento prepínač zapnutý. Všetko nižšie funguje, keď je zapnutý.
Možnosť 1: presigned URL
Presigned URL je URL objektu s podpisom v query stringu. Umožňuje jednu operáciu (zvyčajne stiahnutie) na jednom objekte, kým nevyprší, a S3 kontroluje podpis pri každej požiadavke.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Táto URL funguje 24 hodín. Predvolená hodnota CLI je jedna hodina a maximum je 604 800 sekúnd (7 dní), keď podpisujete kľúčmi používateľa IAM. Ak podpisujete dočasnými prihlasovacími údajmi, napríklad prevzatou rolou, URL prestane fungovať, keď tieto údaje vypršia.
Čo získate:
- Žiadnu zmenu bucketu ani jeho politík.
- Presnú kontrolu: jeden objekt, jedna metóda, jedna platnosť.
- Funguje u každého poskytovateľa, ktorý podporuje podpisovanie SigV4.
Čo nezískate:
- Žiadne heslo. Ktokoľvek, kto má URL, ju môže použiť, koľkokrát chce, kým nevyprší.
- Žiadny limit stiahnutí ani zrušenie jednotlivých odkazov. URL môžete predčasne zneplatniť len zrušením kľúčov, ktoré ju podpísali.
- Žiadne priečinky. Podpisujete objekt po objekte, takže zdieľanie priečinka s 300 súbormi znamená 300 URL.
- Súkromie názvov. URL ukazuje názov vášho bucketu, kľúč objektu a ID vášho prístupového kľúča.
Podrobný mechanizmus vrátane nahrávania, každého parametra X-Amz-* a kódu SDK nájdete v článku Presigned URL v S3.
Možnosť 2: podpísané URL a podpísané cookies CloudFront
Ak bucket už poskytujete cez Amazon CloudFront, môžete pri cache behavior vyžadovať podpísané URL alebo podpísané cookies. Bucket zostáva súkromný za origin access control (OAC), ktorý AWS odporúča namiesto staršieho origin access identity: bucket policy dovolí čítať objekty len vašej distribúcii. Verejné kľúče zaregistrujete v dôveryhodnej skupine kľúčov a podpisujete zodpovedajúcim súkromným kľúčom.
- Podpísané URL sa hodia na jednotlivé súbory. S vlastnou politikou môžete nastaviť aj čas začiatku a rozsah IP adries a jednu politiku použiť pre mnoho súborov pomocou zástupných znakov. Môžu mať krátku platnosť alebo platiť roky.
- Podpísané cookies sa hodia na mnoho súborov naraz, napríklad všetky segmenty videa, bez zmeny vašich URL.
Je to správny nástroj, keď prevádzkujete aplikáciu, ktorá už overuje používateľov a poskytuje obsah vo veľkom. Na odovzdanie niekoľkých súborov ľuďom mimo vášho tímu to znamená nastaviť distribúciu, spravovať kľúče a napísať kód, ktorý podpisuje každú požiadavku.
Obmedzenie bucket policy na pevný rozsah IP adries je ďalšia natívna možnosť, ale pomôže len vtedy, keď poznáte siete príjemcov, čo pri ľuďoch mimo vašej organizácie platí zriedka.
Možnosť 3: odkazy na zdieľanie s Nubbo
Nubbo sa pripojí k vášmu bucketu a dá vám odkazy na zdieľanie s kontrolami, ktoré presigned URL chýbajú, bez písania kódu. Pod kapotou stále používa presigned URL: Nubbo najprv skontroluje pravidlá odkazu a až potom vydá URL s krátkou platnosťou, takže jednotlivé súbory putujú priamo z vášho bucketu do prehliadača príjemcu.
Krok 1: pripojte svoj bucket
Zaregistrujte sa zadarmo, overte svoj e-mail, potom otvorte Buckety a stlačte Pripojiť bucket. Sprievodca sa spýta na poskytovateľa (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 alebo vlastný S3 kompatibilný endpoint), spôsob pripojenia (automatické nastavenie s kľúčom s plným prístupom alebo kľúč obmedzený na jeden bucket), váš kľúč a váš bucket. Overí kľúč aj bucket a na záver otestuje CORS skutočným nahratím z vášho prehliadača. Bucket zostane súkromný a vaše kľúče sú uložené zašifrované pomocou AES-256-GCM. Bezplatný plán zahŕňa 2 pripojenia.
Krok 2: vyberte súbor alebo priečinok
Nájdite položku v prehliadači súborov a zvoľte Zdieľať. Môžete tiež prejsť na stránku Zdieľané, stlačiť Nový odkaz a vybrať tam bucket a súbor alebo priečinok.
Krok 3: nastavte ochranu
Všetky tri kontroly sú voliteľné a dostupné v každom pláne:
| Kontrola | Ako funguje |
|---|---|
| Heslo | 4 až 50 znakov. Po 10 nesprávnych pokusoch sa odkaz zamkne na 15 minút. |
| Dátum vypršania | Predvolene vypnutý: odkaz zostáva aktívny, kým je súbor alebo priečinok vo vašom úložisku. |
| Max. počet stiahnutí | Prázdne znamená neobmedzene. Po dosiahnutí počtu odkaz prestane súbor poskytovať. |
Krok 4: vytvorte a pošlite odkaz
Stlačte Vytvoriť odkaz, skopírujte ho a pošlite e-mailom, cez chat alebo čokoľvek, čo používate. Príjemca otvorí prehľadnú stránku na stiahnutie a nepotrebuje účet. Odkaz na priečinok mu umožní priečinok prehliadať, sťahovať jednotlivé súbory alebo si všetko vziať ako ZIP, ktorý jeho prehliadač zostaví tak, že stiahne každý súbor priamo z vášho bucketu.
Krok 5: pošlite heslo zvlášť
Poslať heslo v tej istej správe ako odkaz popiera celý zmysel. Ak má odkaz heslo, Odoslať heslo emailom ho doručí ako jednorazový odkaz na zobrazenie: heslo sa zobrazí raz, odkaz na zobrazenie vyprší po 24 hodinách, 3 dňoch alebo 7 dňoch a môžete pridať krátku poznámku. Keď ho niekto otvorí, dostanete upozornenie.
Krok 6: sledujte a rušte
Stránka Zdieľané uvádza každý odkaz s jeho stavom a počtom stiahnutí. Môžete upraviť heslo, platnosť alebo limit, deaktivovať odkaz (okamžite prestane vydávať nové URL na stiahnutie) a neskôr ho znova otvoriť s tou istou adresou.
Zdieľanie s konkrétnymi ľuďmi namiesto odkazu
Odkaz funguje pre každého, kto ho má. Keď chcete, aby sa dostali dnu len vymenovaní ľudia, Zdieľanie s ľuďmi v Nubbo (v plánoch Personal a Pro) pošle súbor alebo priečinok na konkrétne e-mailové adresy s oprávnením na zobrazenie alebo stiahnutie, voliteľnou platnosťou a limitom stiahnutí a zaznamená každý prístup. Príjemcovia potrebujú účet Nubbo a položku nájdu v Zdieľané so mnou. Personal umožňuje 10 ľudí na položku a 50 aktívnych zdieľaní; Pro umožňuje 50 a 500.
Platené plány ponúkajú aj šifrované odkazy: prehliadač vytvorí zapečatenú kópiu súboru a kľúč putuje len v samotnom odkaze, takže Nubbo ho nemôže prečítať.
Ktorú možnosť použiť?
- Jeden súbor, raz, a máte nastavené AWS CLI: presigned URL je najrýchlejšia cesta.
- Aplikácia, ktorá už prihlasuje používateľov a poskytuje veľa obsahu: podpísané URL alebo cookies CloudFront.
- Opakované zdieľanie s ľuďmi mimo vášho tímu, celé priečinky alebo čokoľvek, čo potrebuje heslo či limit: odkaz na zdieľanie ušetrí čas aj chyby.
Viac než jeden odkaz
Dve súvisiace funkcie pokrývajú ďalšie bežné prípady. Žiadosti o súbory vám dajú verejný odkaz na nahrávanie, cez ktorý vám ľudia môžu posielať súbory do bucketu bez toho, aby v ňom videli čokoľvek iné. Galérie premenia priečinok fotiek alebo videí na prehľadnú stránku s rozloženiami, vodoznakom a vlastným heslom. V pláne Bezplatný máte 3 z každého a neobmedzené odkazy na zdieľanie; Personal a Pro tieto limity odstraňujú. Jedna úprimná poznámka: náhľady sa generujú na serveri Nubbo a ukladajú sa do vášho vlastného bucketu pod .nubbo-thumbs/.
Časté otázky
Ako zdieľať súbor z S3 bez toho, aby bol verejný?
Ponechajte bucket súkromný a namiesto toho rozdávajte podpísaný prístup: presigned URL pre jeden objekt (z AWS CLI alebo SDK), podpísanú URL alebo cookie CloudFront, ak bucket už poskytujete cez CloudFront, alebo odkaz na zdieľanie z nástroja ako Nubbo, ktorý k presigned URL pridáva heslo, platnosť a limit stiahnutí.
Je Amazon S3 bezpečný na zdieľanie súborov?
Áno, pokiaľ bucket zostane súkromný. Nové buckety predvolene nepovoľujú verejný prístup a S3 Block Public Access zabráni komukoľvek ich neskôr otvoriť. Riziko vzniká zverejnením objektov alebo únikom podpísaných odkazov, ktoré fungujú pre každého, kto ich má, kým nevypršia.
Sú nové buckety S3 predvolene súkromné?
Áno. AWS uvádza, že nové buckety, prístupové body a objekty predvolene nepovoľujú verejný prístup a štyri nastavenia Block Public Access majú prednosť pred akoukoľvek politikou alebo ACL, ktorá by ich neskôr otvorila.
Potrebuje príjemca účet AWS alebo Nubbo?
Nie. Presigned URL, podpísaná URL CloudFront aj odkaz na zdieľanie Nubbo fungujú v akomkoľvek prehliadači bez účtu. Len Zdieľanie s ľuďmi, ktoré posiela položku konkrétnym ľuďom, vyžaduje, aby mali účet Nubbo.
Ako dlho môže zdieľaný odkaz z S3 platiť?
Presigned URL platí najviac 7 dní, keď je podpísaná kľúčmi používateľa IAM, a menej s dočasnými prihlasovacími údajmi. Podpísané URL CloudFront platia tak dlho, ako určuje vaša politika. Odkaz na zdieľanie Nubbo nevyprší, kým platnosť nenastavíte, pretože pri každom stiahnutí vydá novú URL s krátkou platnosťou.
Prechádzajú súbory cez Nubbo, keď niekto sťahuje zo zdieľaného odkazu?
Nie: prehliadač stiahne jednotlivé súbory priamo z vášho bucketu cez presigned URL. ZIP s viacerými súbormi sa zostavuje v prehliadači, ktorý stiahne každý súbor priamo z vášho bucketu: Nubbo obsah nikdy nevidí.
Zdroje
Ceny a limity pochádzajú z oficiálnych stránok uvedených nižšie. Poskytovatelia ich menia, preto si ich pred rozhodnutím overte.
- Amazon S3: blokovanie verejného prístupu k úložisku
- Amazon S3: sťahovanie a nahrávanie objektov cez presigned URL
- Referencia AWS CLI: s3 presign
- Amazon CloudFront: obmedzenie prístupu k originu Amazon S3 (OAC)
- Amazon CloudFront: používanie podpísaných URL
- Amazon CloudFront: podpísané URL alebo podpísané cookies