Artikel

Sådan deler du S3-filer uden at gøre bucketen offentlig

Sikker deling af S3-filer med en privat bucket: presigned URLs, CloudFront signed URLs eller delingslinks med adgangskode, udløbsdato og downloadgrænse.

Du kan dele filer fra Amazon S3 uden nogensinde at gøre bucketen offentlig. Hold den privat, lad Block Public Access være slået til, og giv i stedet folk signeret adgang til bestemte objekter: en presigned URL til en enkelt fil, CloudFront signed URLs, når du allerede har et CDN foran bucketen, eller et delingslink, der tilføjer adgangskode, udløbsdato og downloadgrænse. Alle tre virker på samme måde hos S3-kompatible udbydere som Cloudflare R2, DigitalOcean Spaces, Wasabi og Backblaze B2 (CloudFront findes kun hos AWS).

Muligheder for sikker deling af S3-filer i overblik

MetodeBedst tilAdgangskodeDownloadgrænseTilbagekald ét linkHele mapperKræver kode
Offentligt objekt eller bucketReelt offentlige filer (et website)NejNejNejJaNej
Presigned URLÉn fil, én gang, fra CLI’en eller din appNejNejNejNejCLI eller SDK
CloudFront signed URLApps, der allerede godkender brugereNejNejNejMed signed cookiesJa
Delingslink i NubboTilbagevendende deling med personer udefraJaJaJaJa, med ZIPNej

Hvorfor ikke bare gøre filen offentlig

Den hurtigste måde at dele en fil fra S3 på er at gøre den offentlig og sende objektets URL. Det er også den mest risikable: alt offentligt kan hentes af alle, der finder eller gætter adressen, uden adgangskode, uden udløb og uden registrering af, hvem der tog det. Glemte offentlige buckets er en klassisk kilde til datalæk, og de afslører både filnavne og indhold.

AWS oplyser, at nye buckets, access points og objekter som standard ikke tillader offentlig adgang. Oveni har S3 Block Public Access fire indstillinger (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy og RestrictPublicBuckets), der tilsidesætter enhver politik eller ACL, der ville åbne bucketen senere. De kan sættes pr. bucket, pr. konto eller for en hel AWS Organization, og S3 anvender den mest restriktive kombination. AWS anbefaler at slå alle fire til på kontoniveau, medmindre du reelt hoster offentligt indhold, f.eks. et statisk website.

Lad den kontakt være slået til. Alt nedenfor virker med den aktiveret.

Mulighed 1: presigned URLs

En presigned URL er en objekt-URL med en signatur i forespørgselsstrengen. Den giver adgang til én operation (som regel en download) på ét objekt, indtil den udløber, og S3 tjekker signaturen ved hver forespørgsel.

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

Den URL virker i 24 timer. CLI’ens standard er én time, og maksimum er 604.800 sekunder (7 dage), når du signerer med nøgler til en IAM-bruger. Signerer du med midlertidige loginoplysninger, f.eks. en assumed role, dør URL’en, når de loginoplysninger udløber.

Det får du:

  • Ingen ændring af bucketen eller dens politikker.
  • Præcis kontrol: ét objekt, én metode, ét udløb.
  • Virker hos enhver udbyder, der understøtter SigV4-presigning.

Det får du ikke:

  • Ingen adgangskode. Den, der har URL’en, kan bruge den, så mange gange vedkommende vil, indtil den udløber.
  • Ingen downloadgrænse og ingen tilbagekaldelse pr. link. Du kan kun stoppe en URL før tid ved at tilbagekalde de nøgler, der signerede den.
  • Ingen mapper. Du signerer objekt for objekt, så at dele en mappe med 300 filer betyder 300 URL’er.
  • Navne holdes ikke private. URL’en viser bucketens navn, objektnøglen og dit access key ID.

For mekanikken i dybden, inklusive uploads, hver X-Amz-*-parameter og SDK-kode, se presigned URLs i S3 forklaret.

Mulighed 2: CloudFront signed URLs og signed cookies

Hvis du allerede leverer bucketen gennem Amazon CloudFront, kan du kræve signed URLs eller signed cookies på en cache behavior. Bucketen forbliver privat bag origin access control (OAC), som AWS anbefaler frem for den ældre origin access identity: en bucket policy lader kun din distribution læse objekterne. Du registrerer offentlige nøgler i en trusted key group og signerer med den tilsvarende private nøgle.

  • Signed URLs passer til enkelte filer. Med en tilpasset politik kan du også sætte et starttidspunkt og et IP-interval og genbruge én politik til mange filer med jokertegn. De kan være kortlivede eller gælde i årevis.
  • Signed cookies passer til mange filer på én gang, f.eks. alle segmenter af en video, uden at ændre dine URL’er.

Det er det rigtige værktøj, når du driver en applikation, der allerede godkender brugere og leverer indhold i stor skala. Til at give nogle få filer til personer uden for dit team betyder det at opsætte en distribution, administrere nøgler og skrive kode, der signerer hver forespørgsel.

At begrænse en bucket policy til et fast IP-interval er en anden indbygget mulighed, men den hjælper kun, når du kender modtagernes netværk, hvilket sjældent er tilfældet med personer uden for din organisation.

Nubbo forbinder til din bucket og giver dig delingslinks med de kontroller, presigned URLs mangler, uden at du skal skrive kode. Under motorhjelmen bruger den stadig presigned URLs: Nubbo tjekker først linkets regler og udsteder først derefter en kortlivet URL, så enkeltfiler går direkte fra din bucket til modtagerens browser.

Trin 1: forbind din bucket

Tilmeld dig gratis, bekræft din e-mail, åbn derefter Buckets, og tryk på Forbind bucket. Forbindelsesguiden spørger om din udbyder (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 eller et tilpasset S3-kompatibelt endpoint), hvordan du vil forbinde (automatisk opsætning med en nøgle med fuld adgang eller en nøgle, der er begrænset til én bucket), din nøgle og din bucket. Den tjekker nøglen og bucketen og slutter med at teste CORS med en rigtig upload fra din browser. Bucketen forbliver privat, og dine nøgler gemmes krypteret med AES-256-GCM. Gratis-planen omfatter 2 forbindelser.

Trin 2: vælg filen eller mappen

Find elementet i stifinderen, og vælg Del. Du kan også gå til siden Delt, trykke på Nyt link og vælge bucketen og filen eller mappen der.

Trin 3: indstil beskyttelsen

Alle tre kontroller er valgfri og tilgængelige på alle planer:

KontrolSådan virker den
Adgangskode4 til 50 tegn. Efter 10 forkerte forsøg låses linket i 15 minutter.
UdløbsdatoSlået fra som standard: linket forbliver aktivt, så længe filen eller mappen er i din lagring.
Maks. downloadsTomt betyder ubegrænset. Når antallet er nået, holder linket op med at levere filen.

Trin 4: opret og send linket

Tryk på Opret link, kopiér det, og send det på e-mail, i en chat eller hvad du nu bruger. Modtageren åbner en ren downloadside og behøver ingen konto. Et link til en mappe lader dem gennemse mappen, downloade enkeltfiler eller tage det hele som ZIP, som deres browser samler ved at hente hver fil direkte fra din bucket.

Trin 5: send adgangskoden for sig

At sende adgangskoden i samme besked som linket ødelægger pointen. Hvis linket har en adgangskode, leverer Send adgangskode via e-mail den som et engangslink: adgangskoden vises én gang, linket udløber efter 24 timer, 3 dage eller 7 dage, og du kan tilføje en kort note. Du får besked, når det åbnes.

Trin 6: følg med, og tilbagekald

Siden Delt viser alle links med deres status og antal downloads. Du kan redigere adgangskoden, udløbet eller grænsen, deaktivere et link (det holder straks op med at udstede nye download-URL’er) og genåbne det senere med den samme adresse.

Et link virker for alle, der har det. Når kun navngivne personer skal have adgang, sender Nubbos Del med personer (på planerne Personal og Pro) en fil eller mappe til bestemte e-mailadresser med tilladelse til at se eller downloade, valgfri udløbsdato og downloadloft, og registrerer hver adgang. Modtagerne skal have en Nubbo-konto og finder elementet under Delt med mig. Personal tillader 10 personer pr. element og 50 aktive delinger; Pro tillader 50 og 500.

Betalte planer tilbyder også krypterede links: browseren laver en forseglet kopi af filen, og nøglen findes kun i selve linket, så Nubbo ikke kan læse den.

Hvilken mulighed skal du bruge?

  • Én fil, én gang, og du har AWS CLI konfigureret: en presigned URL er den hurtigste vej.
  • En applikation, der allerede logger brugere ind og leverer meget indhold: CloudFront signed URLs eller cookies.
  • Tilbagevendende deling med personer uden for dit team, hele mapper eller alt, der kræver adgangskode eller en grænse: et delingslink sparer tid og fejl.

To beslægtede funktioner dækker de andre almindelige tilfælde. Filanmodninger giver dig et offentligt uploadlink, så folk kan sende filer til din bucket uden at se noget andet i den. Gallerier gør en mappe med fotos eller videoer til en side, man kan bladre i, med layouts, vandmærke og egen adgangskode. På Gratis-planen får du 3 af hver og ubegrænsede delingslinks; Personal og Pro fjerner de lofter. En ærlig bemærkning: miniaturer genereres på Nubbos server og gemmes i din egen bucket under .nubbo-thumbs/.

Ofte stillede spørgsmål

Hvordan deler jeg en fil fra S3 uden at gøre den offentlig?

Hold bucketen privat, og udlever signeret adgang i stedet: en presigned URL til ét objekt (fra AWS CLI eller et SDK), en CloudFront signed URL eller cookie, hvis du allerede leverer bucketen gennem CloudFront, eller et delingslink fra et værktøj som Nubbo, der lægger adgangskode, udløbsdato og downloadgrænse oven på presigned URLs.

Er Amazon S3 sikker til fildeling?

Ja, så længe bucketen forbliver privat. Nye buckets tillader som standard ikke offentlig adgang, og S3 Block Public Access forhindrer, at nogen åbner dem senere. Risikoen opstår, når man gør objekter offentlige eller lækker signerede links, som virker for alle, der har dem, indtil de udløber.

Er nye S3-buckets private som standard?

Ja. AWS oplyser, at nye buckets, access points og objekter som standard ikke tillader offentlig adgang, og de fire indstillinger i Block Public Access tilsidesætter enhver politik eller ACL, der ville åbne dem senere.

Skal modtageren have en AWS- eller Nubbo-konto?

Nej. En presigned URL, en CloudFront signed URL og et delingslink fra Nubbo virker alle i enhver browser uden konto. Kun Del med personer, der sender et element til navngivne personer, kræver, at de har en Nubbo-konto.

Hvor længe kan et delt S3-link gælde?

En presigned URL gælder højst 7 dage, når den signeres med nøgler til en IAM-bruger, og kortere med midlertidige loginoplysninger. CloudFront signed URLs gælder så længe, din politik siger. Et delingslink i Nubbo har ingen udløbsdato, medmindre du sætter en, fordi det udsteder en ny kortlivet URL ved hver download.

Passerer filerne gennem Nubbo, når nogen downloader fra et delt link?

Nej: browseren downloader enkeltfiler direkte fra din bucket med en presigned URL. ZIP-downloads med flere filer samles i browseren, som henter hver fil direkte fra din bucket: Nubbo ser aldrig indholdet.

Kilder

Priser og grænser stammer fra de officielle sider nedenfor. Udbyderne ændrer dem, så tjek dem, før du binder dig.