Artikkel

Slik deler du S3-filer uten å gjøre bucketen offentlig

Sikker deling av S3-filer fra en privat bucket: forhåndssignerte URL-er, signerte CloudFront-URL-er eller delingslenker med passord, utløp og grense.

Du kan dele filer fra Amazon S3 uten noen gang å gjøre bucketen offentlig. Hold den privat, la Block Public Access være slått på og gi folk signert tilgang til bestemte objekter i stedet: en forhåndssignert URL for en enkeltfil, signerte CloudFront-URL-er når du allerede har et CDN foran bucketen, eller en delingslenke som legger til passord, utløpsdato og nedlastingsgrense. Alle tre fungerer på samme måte hos S3-kompatible leverandører som Cloudflare R2, DigitalOcean Spaces, Wasabi og Backblaze B2 (CloudFront finnes bare hos AWS).

Alternativer for sikker deling av S3-filer i korte trekk

MetodeBest forPassordNedlastingsgrenseTrekke tilbake én lenkeHele mapperKode nødvendig
Offentlig objekt eller bucketVirkelig offentlige ressurser (et nettsted)NeiNeiNeiJaNei
Forhåndssignert URLÉn fil, én gang, fra CLI eller appen dinNeiNeiNeiNeiCLI eller SDK
Signert CloudFront-URLApper som allerede autentiserer brukereNeiNeiNeiMed signerte informasjonskapslerJa
Delingslenke i NubboGjentatt deling med personer utenforJaJaJaJa, med ZIPNei

Hvorfor ikke bare gjøre filen offentlig

Den raskeste måten å dele en fil fra S3 på, er å gjøre den offentlig og sende objekt-URL-en. Det er også den mest risikable: alt som er offentlig, kan hentes av alle som finner eller gjetter adressen, uten passord, uten utløp og uten noen oversikt over hvem som tok det. Glemte offentlige buckets er en klassisk kilde til datalekkasjer, og de avslører filnavn i tillegg til innhold.

AWS sier at nye buckets, tilgangspunkter og objekter ikke tillater offentlig tilgang som standard. I tillegg har S3 Block Public Access fire innstillinger (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy og RestrictPublicBuckets) som overstyrer enhver policy eller ACL som ville åpnet bucketen senere. De kan settes per bucket, per konto eller for en hel AWS Organization, og S3 bruker den mest restriktive kombinasjonen. AWS anbefaler å slå på alle fire på kontonivå med mindre du virkelig hoster offentlig innhold, for eksempel et statisk nettsted.

La den bryteren være på. Alt nedenfor fungerer med den slått på.

Alternativ 1: forhåndssignerte URL-er

En forhåndssignert URL er en objekt-URL med en signatur i spørrestrengen. Den gir tilgang til én operasjon (vanligvis en nedlasting) på ett objekt til den utløper, og S3 sjekker signaturen ved hver forespørsel.

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

Den URL-en fungerer i 24 timer. Standard i CLI er én time, og maksimum er 604 800 sekunder (7 dager) når du signerer med nøkler for en IAM-bruker. Hvis du signerer med midlertidig legitimasjon, for eksempel en antatt rolle, dør URL-en når den legitimasjonen utløper.

Dette får du:

  • Ingen endring av bucketen eller policyene.
  • Presis kontroll: ett objekt, én metode, én utløpstid.
  • Fungerer hos alle leverandører som støtter forhåndssignering med SigV4.

Dette får du ikke:

  • Ikke noe passord. Den som har URL-en, kan bruke den, så mange ganger de vil, til den utløper.
  • Ingen nedlastingsgrense og ingen tilbaketrekking per lenke. Du kan bare stoppe en URL tidlig ved å trekke tilbake nøklene som signerte den.
  • Ingen mapper. Du signerer objekt for objekt, så å dele en mappe med 300 filer betyr 300 URL-er.
  • Navn holdes ikke private. URL-en viser navnet på bucketen, objektnøkkelen og tilgangsnøkkel-ID-en din.

For mekanikken i dybden, inkludert opplastinger, hver X-Amz-*-parameter og SDK-kode, se Forhåndssignerte URL-er i S3 forklart.

Alternativ 2: signerte CloudFront-URL-er og signerte informasjonskapsler

Hvis du allerede leverer bucketen via Amazon CloudFront, kan du kreve signerte URL-er eller signerte informasjonskapsler på en cache behavior. Bucketen forblir privat bak origin access control (OAC), som AWS anbefaler fremfor den eldre origin access identity: en bucket policy lar bare distribusjonen din lese objektene. Du registrerer offentlige nøkler i en trusted key group og signerer med den tilhørende private nøkkelen.

  • Signerte URL-er passer for enkeltfiler. Med en egendefinert policy kan du også angi et starttidspunkt og et IP-område, og gjenbruke én policy for mange filer med jokertegn. De kan være kortlivede eller vare i årevis.
  • Signerte informasjonskapsler passer for mange filer på én gang, for eksempel alle segmentene i en video, uten å endre URL-ene dine.

Dette er riktig verktøy når du kjører en applikasjon som allerede autentiserer brukere og leverer innhold i stor skala. For å gi noen få filer til personer utenfor teamet ditt betyr det å sette opp en distribusjon, administrere nøkler og skrive kode som signerer hver forespørsel.

Å begrense en bucket policy til et fast IP-område er et annet innebygd alternativ, men det hjelper bare når du kjenner nettverkene til mottakerne, noe som sjelden er tilfellet med personer utenfor organisasjonen din.

Alternativ 3: delingslenker med Nubbo

Nubbo kobler seg til bucketen din og gir deg delingslenker med kontrollene som forhåndssignerte URL-er mangler, uten at du skriver kode. Under panseret brukes fortsatt forhåndssignerte URL-er: Nubbo sjekker reglene for lenken først og utsteder først da en kortlivet URL, så enkeltfiler går rett fra bucketen din til nettleseren til mottakeren.

Steg 1: koble til bucketen din

Registrer deg gratis, bekreft e-postadressen din, og åpne deretter Buckets og trykk på Koble til bucket. Veiviseren spør etter leverandøren din (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 eller et egendefinert S3-kompatibelt endepunkt), hvordan du vil koble til (et automatisk oppsett med en nøkkel med full tilgang, eller en nøkkel som er begrenset til én bucket), nøkkelen din og bucketen din. Den sjekker nøkkelen og bucketen, og avslutter med å teste CORS med en ekte opplasting fra nettleseren din. Bucketen forblir privat, og nøklene dine lagres kryptert med AES-256-GCM. Gratis-abonnementet inkluderer 2 tilkoblinger.

Steg 2: velg filen eller mappen

Finn elementet i utforskeren og velg Del. Du kan også gå til siden Delt, trykke på Ny lenke og velge bucketen og filen eller mappen der.

Steg 3: velg beskyttelsen

Alle tre kontrollene er valgfrie og tilgjengelige i alle abonnementer:

KontrollSlik fungerer den
Passord4 til 50 tegn. Etter 10 feil forsøk låses lenken i 15 minutter.
UtløpsdatoAv som standard: lenken forblir aktiv så lenge filen eller mappen ligger i lagringen din.
Maks nedlastingerTomt betyr ubegrenset. Når antallet er nådd, slutter lenken å levere filen.

Steg 4: opprett og send lenken

Trykk på Opprett lenke, kopier den og send den på e-post, i chat eller det du ellers bruker. Mottakeren åpner en ryddig nedlastingsside og trenger ikke konto. En mappelenke lar dem bla gjennom mappen, laste ned enkeltfiler eller ta alt som ZIP, som nettleseren deres bygger ved å laste ned hver fil rett fra bucketen din.

Steg 5: send passordet separat

Å sende passordet i samme melding som lenken gjør hele poenget meningsløst. Hvis lenken har passord, leverer Send passord på e-post det som en engangslenke: passordet vises én gang, lenken utløper etter 24 timer, 3 dager eller 7 dager, og du kan legge til en kort melding. Du får beskjed når den åpnes.

Steg 6: følg med og trekk tilbake

Siden Delt viser alle lenkene med status og antall nedlastinger. Du kan endre passordet, utløpstiden eller grensen, deaktivere en lenke (den slutter umiddelbart å utstede nye nedlastings-URL-er) og åpne den igjen senere med den samme adressen.

Dele med bestemte personer i stedet for en lenke

En lenke fungerer for alle som har den. Når du bare vil slippe inn navngitte personer, sender Del med personer i Nubbo (i abonnementene Personal og Pro) en fil eller mappe til bestemte e-postadresser med visnings- eller nedlastingstillatelse, valgfri utløpstid og et tak på nedlastinger, og logger hver tilgang. Mottakerne trenger en Nubbo-konto og finner elementet under Delt med meg. Personal tillater 10 personer per element og 50 aktive delinger; Pro tillater 50 og 500.

Betalte abonnementer tilbyr også krypterte lenker: nettleseren lager en forseglet kopi av filen, og nøkkelen finnes bare i selve lenken, så Nubbo kan ikke lese den.

Hvilket alternativ bør du bruke?

  • Én fil, én gang, og du har AWS CLI konfigurert: en forhåndssignert URL er den raskeste veien.
  • En applikasjon som allerede logger inn brukere og leverer mye innhold: signerte CloudFront-URL-er eller informasjonskapsler.
  • Gjentatt deling med personer utenfor teamet ditt, hele mapper eller alt som trenger passord eller en grense: en delingslenke sparer tid og feil.

Mer enn én lenke

To beslektede funksjoner dekker de andre vanlige tilfellene. Filforespørsler gir deg en offentlig opplastingslenke, slik at folk kan sende filer til bucketen din uten å se noe annet i den. Gallerier gjør en mappe med bilder eller videoer om til en side du kan bla gjennom, med oppsett, vannmerke og eget passord. I Gratis-abonnementet får du 3 av hver og ubegrenset med delingslenker; Personal og Pro fjerner disse grensene. Én ærlig merknad: miniatyrbilder genereres på Nubbos server og lagres i din egen bucket under .nubbo-thumbs/.

Ofte stilte spørsmål

Hvordan deler jeg en fil fra S3 uten å gjøre den offentlig?

Hold bucketen privat og del ut signert tilgang i stedet: en forhåndssignert URL for ett objekt (fra AWS CLI eller et SDK), en signert CloudFront-URL eller -informasjonskapsel hvis du allerede leverer bucketen via CloudFront, eller en delingslenke fra et verktøy som Nubbo, som legger passord, utløpstid og nedlastingsgrense oppå forhåndssignerte URL-er.

Er Amazon S3 trygt for fildeling?

Ja, så lenge bucketen forblir privat. Nye buckets tillater ikke offentlig tilgang som standard, og S3 Block Public Access hindrer at noen åpner dem senere. Risikoen kommer av å gjøre objekter offentlige eller av å lekke signerte lenker, som fungerer for alle som har dem, til de utløper.

Er nye S3-buckets private som standard?

Ja. AWS sier at nye buckets, tilgangspunkter og objekter ikke tillater offentlig tilgang som standard, og de fire Block Public Access-innstillingene overstyrer enhver policy eller ACL som ville åpnet dem senere.

Trenger mottakeren en AWS- eller Nubbo-konto?

Nei. En forhåndssignert URL, en signert CloudFront-URL og en delingslenke fra Nubbo fungerer alle i hvilken som helst nettleser uten konto. Bare Del med personer, som sender et element til navngitte personer, krever at de har en Nubbo-konto.

Hvor lenge kan en delt S3-lenke vare?

En forhåndssignert URL varer høyst 7 dager når den er signert med nøkler for en IAM-bruker, og kortere med midlertidig legitimasjon. Signerte CloudFront-URL-er varer så lenge policyen din sier. En delingslenke i Nubbo utløper ikke med mindre du angir det, fordi den utsteder en ny kortlivet URL ved hver nedlasting.

Går filene via Nubbo når noen laster ned fra en delt lenke?

Nei: nettleseren laster ned enkeltfiler rett fra bucketen din med en forhåndssignert URL. ZIP-nedlastinger med flere filer settes sammen i nettleseren, som laster ned hver fil rett fra bucketen din: Nubbo ser aldri innholdet.

Kilder

Priser og grenser er hentet fra de offisielle sidene nedenfor. Leverandørene endrer dem, så sjekk før du bestemmer deg.