Artikkel

Kuidas jagada S3 faile ilma bucketit avalikuks tegemata

Turvaline S3 jagamine privaatse bucketiga: presigned URL-id, CloudFronti allkirjastatud URL-id või lingid parooli, aegumise ja allalaadimispiiranguga.

Saad jagada faile Amazon S3-st ilma bucketit kunagi avalikuks tegemata. Hoia see privaatsena, jäta Block Public Access sisse ja anna inimestele selle asemel allkirjastatud juurdepääs kindlatele objektidele: presigned URL ühekordse faili jaoks, CloudFronti allkirjastatud URL-id, kui sul on bucketi ees juba CDN, või jagamislink, mis lisab parooli, aegumiskuupäeva ja allalaadimiste piirangu. Kõik kolm töötavad samamoodi S3-ühilduvate teenusepakkujate juures nagu Cloudflare R2, DigitalOcean Spaces, Wasabi ja Backblaze B2 (CloudFront on ainult AWS-is).

Turvalise S3 failijagamise valikud lühidalt

MeetodSobib kõige pareminiParoolAllalaadimiste piirangÜhe lingi tühistamineTerved kaustadVajalik kood
Avalik objekt või bucketPäriselt avalikele failidele (veebisait)EiEiEiJahEi
Presigned URLÜks fail, üks kord, CLI-st või sinu rakendusestEiEiEiEiCLI või SDK
CloudFronti allkirjastatud URLRakendustele, mis juba autendivad kasutajaidEiEiEiAllkirjastatud küpsistegaJah
Nubbo jagamislinkKorduvaks jagamiseks väliste inimestegaJahJahJahJah, ZIP-igaEi

Miks mitte lihtsalt faili avalikuks teha

Kiireim viis S3-st faili jagamiseks on teha see avalikuks ja saata objekti URL. See on ka kõige riskantsem: kõike avalikku saab kätte igaüks, kes aadressi leiab või ära arvab, ilma paroolita, aegumiseta ja ilma igasuguse märketa selle kohta, kes selle võttis. Unustatud avalikud bucketid on klassikaline andmelekete allikas ja need paljastavad nii failinimed kui ka sisu.

AWS teatab, et uued bucketid, pääsupunktid ja objektid ei luba vaikimisi avalikku juurdepääsu. Lisaks on S3 Block Public Accessil neli seadet (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy ja RestrictPublicBuckets), mis alistavad iga poliitika või ACL-i, mis bucketi hiljem avaks. Neid saab määrata bucketi, konto või terve AWS Organizationi kohta ning S3 rakendab kõige piiravamat kombinatsiooni. AWS soovitab lülitada kõik neli sisse konto tasemel, välja arvatud juhul, kui majutad tõesti avalikku sisu, näiteks staatilist veebisaiti.

Jäta see lüliti sisse. Kõik allpool toodu töötab, kui see on sees.

Valik 1: presigned URL-id

Presigned URL on objekti URL, mille päringustringis on allkiri. See lubab ühe toimingu (tavaliselt allalaadimise) ühel objektil, kuni see aegub, ja S3 kontrollib allkirja igal päringul.

aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400

See URL töötab 24 tundi. CLI vaikeväärtus on üks tund ja maksimum 604 800 sekundit (7 päeva), kui allkirjastad IAM-kasutaja võtmetega. Kui allkirjastad ajutiste mandaatidega, näiteks võetud rolliga, sureb URL koos nende mandaatide aegumisega.

Mida sa saad:

  • Bucketis ega selle poliitikates ei muutu midagi.
  • Täpne kontroll: üks objekt, üks meetod, üks aegumisaeg.
  • Töötab iga teenusepakkujaga, kes toetab SigV4 presigned allkirjastamist.

Mida sa ei saa:

  • Parooli pole. Kellel URL on, saab seda kasutada nii mitu korda, kui soovib, kuni see aegub.
  • Allalaadimiste piirangut ega lingipõhist tühistamist pole. URL-i saad varem lõpetada ainult selle allkirjastanud võtmete tühistamisega.
  • Kaustu pole. Allkirjastad objekt-objekti haaval, nii et 300 failiga kausta jagamine tähendab 300 URL-i.
  • Nimede privaatsus. URL näitab sinu bucketi nime, objekti võtit ja sinu ligipääsuvõtme ID-d.

Mehhanismi põhjalikumaks käsitluseks, sealhulgas üleslaadimised, iga X-Amz-* parameeter ja SDK kood, vaata S3 presigned URL-id selgitatuna.

Valik 2: CloudFronti allkirjastatud URL-id ja küpsised

Kui serveerid bucketit juba Amazon CloudFronti kaudu, saad vahemälu käitumisel nõuda allkirjastatud URL-e või allkirjastatud küpsiseid. Bucket jääb privaatseks origin access controli (OAC) taha, mida AWS soovitab vanema origin access identity asemel: bucketi poliitika lubab objekte lugeda ainult sinu distributsioonil. Registreerid avalikud võtmed usaldatud võtmerühmas ja allkirjastad vastava privaatvõtmega.

  • Allkirjastatud URL-id sobivad üksikute failide jaoks. Kohandatud poliitikaga saad määrata ka algusaja ja IP-vahemiku ning kasutada üht poliitikat metamärkidega paljude failide jaoks. Need võivad olla lühiajalised või kesta aastaid.
  • Allkirjastatud küpsised sobivad paljude failide jaoks korraga, näiteks video iga segmendi jaoks, ilma sinu URL-e muutmata.

See on õige tööriist, kui käitad rakendust, mis juba autendib kasutajaid ja serveerib sisu suures mahus. Mõne faili andmiseks väljaspool sinu meeskonda olevatele inimestele tähendab see distributsiooni seadistamist, võtmete haldamist ja koodi kirjutamist, mis allkirjastab iga päringu.

Bucketi poliitika piiramine kindla IP-vahemikuga on veel üks sisseehitatud võimalus, kuid see aitab ainult siis, kui tead saajate võrke, mis on väljaspool sinu organisatsiooni olevate inimeste puhul harva nii.

Valik 3: jagamislingid Nubboga

Nubbo ühendub sinu bucketiga ja annab sulle ilma koodi kirjutamata jagamislingid kontrollidega, mis presigned URL-idest puuduvad. Kapoti all kasutab see endiselt presigned URL-e: Nubbo kontrollib kõigepealt lingi reegleid ja alles siis väljastab lühiajalise URL-i, nii et üksikfailid liiguvad otse sinu bucketist saaja brauserisse.

1. samm: ühenda oma bucket

Registreeru tasuta, kinnita oma e-post, seejärel ava Bucketid ja vajuta Ühenda bucket. Viisard küsib sinu teenusepakkujat (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 või kohandatud S3-ühilduv lõpp-punkt), ühendusviisi (automaatne seadistus täieliku juurdepääsuga võtmega või ühe bucketiga piiratud võti), sinu võtit ja sinu bucketit. See kontrollib võtit ja bucketit ning lõpetab CORS-i testimisega päris üleslaadimise abil sinu brauserist. Bucket jääb privaatseks ja sinu võtmed salvestatakse AES-256-GCM-iga krüpteeritult. Tasuta pakett sisaldab 2 ühendust.

2. samm: vali fail või kaust

Leia üksus failihalduris ja vali Jaga. Võid minna ka lehele Jagatud, vajutada Uus link ja valida seal bucketi ning faili või kausta.

3. samm: määra kaitse

Kõik kolm kontrolli on valikulised ja saadaval igas paketis:

KontrollKuidas see töötab
Parool4 kuni 50 tähemärki. Pärast 10 valet katset lukustub link 15 minutiks.
AegumiskuupäevVaikimisi väljas: link jääb aktiivseks seni, kuni fail või kaust on sinu salvestuses.
Allalaadimiste piirarvTühi tähendab piiramatut. Kui arv on täis, lõpetab link faili serveerimise.

Vajuta Loo link, kopeeri see ja saada e-posti, vestluse või muu sinu kasutatava kanali kaudu. Saaja avab puhta allalaadimislehe ega vaja kontot. Kaustalink laseb tal kausta sirvida, üksikuid faile alla laadida või võtta kõik ZIP-ina, mille tema brauser koostab, laadides iga faili otse sinu bucketist alla.

5. samm: saada parool eraldi

Parooli saatmine lingiga samas sõnumis nullib mõtte. Kui lingil on parool, edastab Saada parool e-postiga selle ühekordse avamislingina: parooli näidatakse üks kord, avamislink aegub 24 tunni, 3 päeva või 7 päeva pärast ja saad lisada lühikese märkuse. Sind teavitatakse, kui see avatakse.

6. samm: jälgi ja tühista

Leht Jagatud loetleb iga lingi koos selle oleku ja allalaadimiste arvuga. Saad muuta parooli, aegumist või piirangut, deaktiveerida lingi (see lõpetab kohe uute allalaadimis-URL-ide väljastamise) ja avada selle hiljem sama aadressiga uuesti.

Kindlate inimestega jagamine lingi asemel

Link töötab igaühe jaoks, kellel see on. Kui tahad, et sisse pääseksid ainult nimelised inimesed, saadab Nubbo funktsioon Jaga inimestega (Personal- ja Pro-paketis) faili või kausta kindlatele e-posti aadressidele vaatamis- või allalaadimisõigusega, valikulise aegumise ja allalaadimiste piiranguga ning logib iga juurdepääsu. Saajad vajavad Nubbo kontot ja leiavad üksuse jaotisest Minuga jagatud. Personal lubab 10 inimest üksuse kohta ja 50 aktiivset jagamist; Pro lubab 50 ja 500.

Tasulised paketid pakuvad ka krüpteeritud linke: brauser teeb failist pitseeritud koopia ja võti liigub ainult lingis endas, nii et Nubbo ei saa seda lugeda.

Millist valikut kasutada?

  • Üks fail, üks kord ja sul on AWS CLI seadistatud: presigned URL on kiireim tee.
  • Rakendus, mis juba logib kasutajaid sisse ja serveerib palju sisu: CloudFronti allkirjastatud URL-id või küpsised.
  • Korduv jagamine väljaspool sinu meeskonda olevate inimestega, terved kaustad või kõik, mis vajab parooli või piirangut: jagamislink säästab aega ja vigu.

Kaks seotud funktsiooni katavad teised levinud juhtumid. Failipäringud annavad sulle avaliku üleslaadimislingi, et inimesed saaksid saata faile sinu bucketisse, nägemata selles midagi muud. Galeriid muudavad fotode või videote kausta sirvitavaks leheks koos paigutuste, vesimärgi ja oma parooliga. Tasuta paketis saad kumbagi 3 ja piiramatult jagamislinke; Personal ja Pro eemaldavad need piirangud. Üks aus märkus: pisipildid genereeritakse Nubbo serveris ja salvestatakse sinu enda bucketisse kausta .nubbo-thumbs/.

Korduma kippuvad küsimused

Kuidas jagada faili S3-st ilma seda avalikuks tegemata?

Hoia bucket privaatsena ja anna selle asemel välja allkirjastatud juurdepääs: presigned URL ühele objektile (AWS CLI-st või SDK-st), CloudFronti allkirjastatud URL või küpsis, kui serveerid bucketit juba CloudFronti kaudu, või jagamislink tööriistast nagu Nubbo, mis lisab presigned URL-idele parooli, aegumise ja allalaadimiste piirangu.

Kas Amazon S3 on failide jagamiseks turvaline?

Jah, kuni bucket jääb privaatseks. Uued bucketid ei luba vaikimisi avalikku juurdepääsu ja S3 Block Public Access takistab kellelgi neid hiljem avamast. Risk tuleneb objektide avalikuks tegemisest või allkirjastatud linkide lekkimisest, mis töötavad igaühe jaoks, kellel need on, kuni need aeguvad.

Kas uued S3 bucketid on vaikimisi privaatsed?

Jah. AWS teatab, et uued bucketid, pääsupunktid ja objektid ei luba vaikimisi avalikku juurdepääsu ning neli Block Public Accessi seadet alistavad iga poliitika või ACL-i, mis neid hiljem avaks.

Kas saaja vajab AWS-i või Nubbo kontot?

Ei. Presigned URL, CloudFronti allkirjastatud URL ja Nubbo jagamislink töötavad kõik igas brauseris ilma kontota. Ainult Jaga inimestega, mis saadab üksuse nimelistele inimestele, nõuab, et neil oleks Nubbo konto.

Kui kaua jagatud S3 link võib kesta?

Presigned URL kestab IAM-kasutaja võtmetega allkirjastatuna kõige rohkem 7 päeva ja ajutiste mandaatidega vähem. CloudFronti allkirjastatud URL-id kestavad nii kaua, kui sinu poliitika ütleb. Nubbo jagamislingil pole aegumist, kui sa seda ei määra, sest see väljastab iga allalaadimise jaoks uue lühiajalise URL-i.

Kas failid läbivad Nubbot, kui keegi jagatud lingi kaudu alla laadib?

Ei: brauser laadib üksikfailid otse sinu bucketist presigned URL-iga alla. Mitme faili ZIP-allalaadimised koostatakse brauseris, mis laadib iga faili otse sinu bucketist alla: Nubbo ei näe kunagi sisu.

Allikad

Hinnad ja piirangud pärinevad allpool toodud ametlikelt lehtedelt. Teenusepakkujad muudavad neid, seega kontrolli enne otsustamist.