Voit jakaa tiedostoja Amazon S3:sta tekemättä bucketista koskaan julkista. Pidä se yksityisenä, jätä Block Public Access päälle ja anna ihmisille sen sijaan allekirjoitettu pääsy tiettyihin objekteihin: presigned URL yksittäiselle tiedostolle, CloudFrontin allekirjoitetut URL:t, kun bucketin edessä on jo CDN, tai jakolinkki, joka lisää salasanan, vanhenemispäivän ja latausrajan. Kaikki kolme toimivat samoin S3-yhteensopivilla palveluntarjoajilla, kuten Cloudflare R2:lla, DigitalOcean Spacesilla, Wasabilla ja Backblaze B2:lla (CloudFront on vain AWS:ssä).
Turvallisen S3-jakamisen vaihtoehdot lyhyesti
| Tapa | Paras käyttö | Salasana | Latausraja | Yhden linkin peruminen | Kokonaiset kansiot | Tarvitaanko koodia |
|---|---|---|---|---|---|---|
| Julkinen objekti tai bucket | Todella julkiset resurssit (verkkosivusto) | Ei | Ei | Ei | Kyllä | Ei |
| Presigned URL | Yksi tiedosto kerran CLI:stä tai sovelluksestasi | Ei | Ei | Ei | Ei | CLI tai SDK |
| CloudFrontin allekirjoitettu URL | Sovellukset, jotka jo todentavat käyttäjät | Ei | Ei | Ei | Allekirjoitetuilla evästeillä | Kyllä |
| Nubbon jakolinkki | Toistuva jakaminen ulkopuolisille ihmisille | Kyllä | Kyllä | Kyllä | Kyllä, ZIP:llä | Ei |
Miksi tiedostoa ei kannata vain tehdä julkiseksi
Nopein tapa jakaa tiedosto S3:sta on tehdä se julkiseksi ja lähettää objektin URL. Se on myös riskialttein: kuka tahansa, joka löytää tai arvaa osoitteen, voi hakea julkisen sisällön ilman salasanaa, vanhenemista tai tietoa siitä, kuka sen otti. Unohtuneet julkiset bucketit ovat klassinen tietovuotojen lähde, ja ne paljastavat tiedostonimet sisällön lisäksi.
AWS:n mukaan uudet bucketit, access pointit ja objektit eivät oletuksena salli julkista pääsyä. Lisäksi S3 Block Public Accessissa on neljä asetusta (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy ja RestrictPublicBuckets), jotka ohittavat kaikki käytännöt tai ACL:t, jotka avaisivat bucketin myöhemmin. Ne voi asettaa bucketkohtaisesti, tilikohtaisesti tai koko AWS Organizationille, ja S3 soveltaa rajoittavinta yhdistelmää. AWS suosittelee kaikkien neljän ottamista käyttöön tilitasolla, ellet todella isännöi julkista sisältöä, kuten staattista verkkosivustoa.
Pidä tämä kytkin päällä. Kaikki alla oleva toimii sen ollessa käytössä.
Vaihtoehto 1: presigned URL:t
Presigned URL on objektin URL, jonka kyselymerkkijonossa on allekirjoitus. Se sallii yhden toiminnon (yleensä latauksen) yhdelle objektille, kunnes se vanhenee, ja S3 tarkistaa allekirjoituksen jokaisella pyynnöllä.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Tuo URL toimii 24 tuntia. CLI:n oletus on yksi tunti, ja enimmäisarvo on 604 800 sekuntia (7 päivää), kun allekirjoitat IAM-käyttäjän avaimilla. Jos allekirjoitat väliaikaisilla tunnuksilla, kuten otetulla roolilla, URL kuolee, kun tunnukset vanhenevat.
Mitä saat:
- Ei muutoksia bucketiin tai sen käytäntöihin.
- Tarkka hallinta: yksi objekti, yksi metodi, yksi voimassaoloaika.
- Toimii millä tahansa palveluntarjoajalla, joka tukee SigV4-allekirjoitusta.
Mitä et saa:
- Ei salasanaa. Kuka tahansa URL:n haltija voi käyttää sitä niin monta kertaa kuin haluaa, kunnes se vanhenee.
- Ei latausrajaa eikä linkkikohtaista perumista. Voit lopettaa URL:n etuajassa vain perumalla sen allekirjoittaneet avaimet.
- Ei kansioita. Allekirjoitat objekti kerrallaan, joten 300 tiedoston kansion jakaminen tarkoittaa 300 URL:ää.
- Nimien yksityisyys. URL näyttää bucketisi nimen, objektin avaimen ja käyttöavaimesi tunnuksen.
Mekaniikasta perusteellisemmin, lähetykset, jokainen X-Amz-*-parametri ja SDK-koodi mukaan lukien, kertoo artikkeli S3:n presigned URL -osoitteet selitettynä.
Vaihtoehto 2: CloudFrontin allekirjoitetut URL:t ja allekirjoitetut evästeet
Jos jaat bucketin jo Amazon CloudFrontin kautta, voit vaatia välimuistikäyttäytymiselle allekirjoitettuja URL-osoitteita tai evästeitä. Bucket pysyy yksityisenä origin access controlin (OAC) takana, jota AWS suosittelee vanhemman origin access identityn sijaan: bucket policy antaa vain jakelusi lukea objekteja. Rekisteröit julkiset avaimet luotettuun avainryhmään ja allekirjoitat vastaavalla yksityisellä avaimella.
- Allekirjoitetut URL:t sopivat yksittäisille tiedostoille. Mukautetulla käytännöllä voit myös asettaa alkamisajan ja IP-alueen ja käyttää yhtä käytäntöä monille tiedostoille jokerimerkeillä. Ne voivat olla lyhytikäisiä tai kestää vuosia.
- Allekirjoitetut evästeet sopivat monille tiedostoille kerralla, kuten videon jokaiselle segmentille, muuttamatta URL-osoitteitasi.
Tämä on oikea työkalu, kun ajat sovellusta, joka jo todentaa käyttäjät ja jakaa sisältöä suuressa mittakaavassa. Muutaman tiedoston antamiseen tiimisi ulkopuolisille se tarkoittaa jakelun pystyttämistä, avainten hallintaa ja koodia, joka allekirjoittaa jokaisen pyynnön.
Bucket policyn rajaaminen kiinteään IP-alueeseen on toinen natiivi vaihtoehto, mutta siitä on apua vain, kun tiedät vastaanottajien verkot, mikä on harvoin tilanne organisaatiosi ulkopuolisten ihmisten kanssa.
Vaihtoehto 3: jakolinkit Nubbolla
Nubbo yhdistää bucketiisi ja antaa sinulle jakolinkit niillä hallintakeinoilla, jotka presigned URL:istä puuttuvat, ilman koodin kirjoittamista. Pinnan alla se käyttää edelleen presigned URL -osoitteita: Nubbo tarkistaa ensin linkin säännöt ja antaa vasta sitten lyhytikäisen URL:n, joten yksittäiset tiedostot kulkevat suoraan bucketistasi vastaanottajan selaimeen.
Vaihe 1: yhdistä bucketisi
Rekisteröidy ilmaiseksi, vahvista sähköpostisi, avaa sitten Bucketit ja paina Yhdistä bucket. Ohjattu toiminto kysyy palveluntarjoajasi (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 tai mukautettu S3-yhteensopiva endpoint), yhdistämistavan (automaattinen määritys täyden pääsyn avaimella tai yhteen bucketiin rajattu avain), avaimesi ja bucketisi. Se tarkistaa avaimen ja bucketin ja päättää testaamalla CORSin oikealla lähetyksellä selaimestasi. Bucket pysyy yksityisenä, ja avaimesi tallennetaan AES-256-GCM-salattuina. Ilmainen-tilaukseen sisältyy 2 yhteyttä.
Vaihe 2: valitse tiedosto tai kansio
Etsi kohde tiedostoselaimesta ja valitse Jaa. Voit myös mennä Jaetut-sivulle, painaa Uusi linkki ja valita siellä bucketin sekä tiedoston tai kansion.
Vaihe 3: määritä suojaus
Kaikki kolme hallintakeinoa ovat valinnaisia ja käytettävissä jokaisessa tilauksessa:
| Hallintakeino | Miten se toimii |
|---|---|
| Salasana | 4-50 merkkiä. 10 väärän yrityksen jälkeen linkki lukittuu 15 minuutiksi. |
| Vanhenemispäivä | Oletuksena pois: linkki pysyy aktiivisena niin kauan kuin tiedosto tai kansio on tallennustilassasi. |
| Latausten enimmäismäärä | Tyhjä tarkoittaa rajatonta. Kun määrä täyttyy, linkki lakkaa jakamasta tiedostoa. |
Vaihe 4: luo ja lähetä linkki
Paina Luo linkki, kopioi se ja lähetä se sähköpostilla, chatissa tai millä tahansa käyttämälläsi tavalla. Vastaanottaja avaa selkeän lataussivun eikä tarvitse tiliä. Kansiolinkillä hän voi selata kansiota, ladata yksittäisiä tiedostoja tai ottaa kaiken ZIP-tiedostona, jonka hänen selaimensa kokoaa lataamalla jokaisen tiedoston suoraan bucketistasi.
Vaihe 5: lähetä salasana erikseen
Salasanan lähettäminen samassa viestissä kuin linkki vie pohjan koko ajatukselta. Jos linkissä on salasana, Lähetä salasana sähköpostilla toimittaa sen kertakäyttöisenä paljastuslinkkinä: salasana näytetään kerran, paljastuslinkki vanhenee 24 tunnin, 3 päivän tai 7 päivän kuluttua, ja voit lisätä lyhyen viestin. Saat ilmoituksen, kun se avataan.
Vaihe 6: seuraa ja peru
Jaetut-sivu luettelee jokaisen linkin tilan ja latausmäärän. Voit muokata salasanaa, vanhenemista tai rajaa, poistaa linkin käytöstä (se lakkaa heti antamasta uusia latausosoitteita) ja avata sen myöhemmin uudelleen samalla osoitteella.
Jakaminen tietyille ihmisille linkin sijaan
Linkki toimii kenelle tahansa, jolla se on. Kun haluat vain nimettyjen ihmisten pääsevän sisään, Nubbon Jaa henkilöille (Personal- ja Pro-tilauksissa) lähettää tiedoston tai kansion tiettyihin sähköpostiosoitteisiin katselu- tai latausoikeudella, valinnaisella vanhenemisella ja latauskatolla ja kirjaa jokaisen käyttökerran. Vastaanottajat tarvitsevat Nubbo-tilin ja löytävät kohteen kohdasta Jaettu kanssani. Personal sallii 10 ihmistä kohdetta kohti ja 50 aktiivista jakoa; Pro sallii 50 ja 500.
Maksullisissa tilauksissa on myös salatut linkit: selain tekee tiedostosta sinetöidyn kopion, ja avain kulkee vain itse linkissä, joten Nubbo ei voi lukea sitä.
Minkä vaihtoehdon valitset?
- Yksi tiedosto kerran, ja AWS CLI on määritetty: presigned URL on nopein reitti.
- Sovellus, joka jo kirjaa käyttäjät sisään ja jakaa paljon sisältöä: CloudFrontin allekirjoitetut URL:t tai evästeet.
- Toistuva jakaminen tiimisi ulkopuolisille ihmisille, kokonaiset kansiot tai mikä tahansa, mikä tarvitsee salasanan tai rajan: jakolinkki säästää aikaa ja virheitä.
Yksittäistä linkkiä pidemmälle
Kaksi läheistä ominaisuutta kattaa muut yleiset tapaukset. Tiedostopyynnöt antavat sinulle julkisen lähetyslinkin, jotta ihmiset voivat lähettää tiedostoja bucketiisi näkemättä siitä mitään muuta. Galleriat muuttavat valokuva- tai videokansion selattavaksi sivuksi, jossa on asettelut, vesileima ja oma salasana. Ilmainen-tilauksessa saat kumpaakin 3 ja rajattomasti jakolinkkejä; Personal ja Pro poistavat nämä rajat. Yksi rehellinen huomio: pikkukuvat luodaan Nubbon palvelimella ja tallennetaan omaan bucketiisi kansioon .nubbo-thumbs/.
Usein kysytyt kysymykset
Miten jaan tiedoston S3:sta tekemättä siitä julkista?
Pidä bucket yksityisenä ja jaa sen sijaan allekirjoitettu pääsy: presigned URL yhdelle objektille (AWS CLI:llä tai SDK:lla), CloudFrontin allekirjoitettu URL tai eväste, jos jaat bucketin jo CloudFrontin kautta, tai jakolinkki työkalusta, kuten Nubbosta, joka lisää presigned URL -osoitteiden päälle salasanan, vanhenemisajan ja latausrajan.
Onko Amazon S3 turvallinen tiedostojen jakamiseen?
On, kunhan bucket pysyy yksityisenä. Uudet bucketit eivät oletuksena salli julkista pääsyä, ja S3 Block Public Access estää ketään avaamasta niitä myöhemmin. Riski syntyy objektien tekemisestä julkisiksi tai allekirjoitettujen linkkien vuotamisesta, sillä ne toimivat kenelle tahansa, jolla ne ovat, kunnes ne vanhenevat.
Ovatko uudet S3-bucketit oletuksena yksityisiä?
Ovat. AWS:n mukaan uudet bucketit, access pointit ja objektit eivät oletuksena salli julkista pääsyä, ja neljä Block Public Access -asetusta ohittavat kaikki käytännöt tai ACL:t, jotka avaisivat ne myöhemmin.
Tarvitseeko vastaanottaja AWS- tai Nubbo-tilin?
Ei. Presigned URL, CloudFrontin allekirjoitettu URL ja Nubbon jakolinkki toimivat kaikki missä tahansa selaimessa ilman tiliä. Vain Jaa henkilöille, joka lähettää kohteen nimetyille ihmisille, vaatii heiltä Nubbo-tilin.
Kuinka kauan jaettu S3-linkki voi olla voimassa?
Presigned URL on voimassa enintään 7 päivää, kun se allekirjoitetaan IAM-käyttäjän avaimilla, ja vähemmän väliaikaisilla tunnuksilla. CloudFrontin allekirjoitetut URL:t ovat voimassa niin kauan kuin käytäntösi määrää. Nubbon jakolinkki ei vanhene, ellet aseta vanhenemista, koska se antaa jokaisella latauksella uuden lyhytikäisen URL:n.
Kulkevatko tiedostot Nubbon kautta, kun joku lataa jaetusta linkistä?
Eivät: selain lataa yksittäiset tiedostot suoraan bucketistasi presigned URL:llä. Usean tiedoston ZIP-lataukset kootaan selaimessa, joka lataa jokaisen tiedoston suoraan bucketistasi: Nubbo ei koskaan näe sisältöä.
Lähteet
Hinnat ja rajat ovat alla olevilta virallisilta sivuilta. Palveluntarjoajat muuttavat niitä, joten tarkista ne ennen kuin sitoudut.
- Amazon S3: tallennustilan julkisen pääsyn estäminen
- Amazon S3: objektien lataaminen ja lähettäminen presigned URL -osoitteilla
- AWS CLI -viite: s3 presign
- Amazon CloudFront: pääsyn rajoittaminen Amazon S3 -alkuperään (OAC)
- Amazon CloudFront: allekirjoitettujen URL-osoitteiden käyttö
- Amazon CloudFront: allekirjoitetut URL:t vai allekirjoitetut evästeet