Failus no Amazon S3 var kopīgot, nekad nepadarot bucket publisku. Saglabājiet to privātu, atstājiet Block Public Access ieslēgtu un tā vietā dodiet cilvēkiem parakstītu piekļuvi konkrētiem objektiem: presigned URL vienreizējam failam, CloudFront parakstītus URL, ja jau darbināt CDN bucket priekšā, vai kopīgošanas saiti, kas pievieno paroli, derīguma termiņu un lejupielāžu ierobežojumu. Visi trīs darbojas vienādi arī pie ar S3 saderīgiem pakalpojumu sniedzējiem, piemēram, Cloudflare R2, DigitalOcean Spaces, Wasabi un Backblaze B2 (CloudFront ir tikai AWS).
Drošas S3 failu kopīgošanas iespējas īsumā
| Metode | Vislabāk piemērota | Parole | Lejupielāžu ierobežojums | Vienas saites atsaukšana | Veselas mapes | Vajadzīgs kods |
|---|---|---|---|---|---|---|
| Publisks objekts vai bucket | Patiesi publiskiem resursiem (vietnei) | Nē | Nē | Nē | Jā | Nē |
| Presigned URL | Vienam failam, vienreiz, no CLI vai jūsu lietotnes | Nē | Nē | Nē | Nē | CLI vai SDK |
| CloudFront parakstīts URL | Lietotnēm, kas jau autentificē lietotājus | Nē | Nē | Nē | Ar parakstītām sīkdatnēm | Jā |
| Nubbo kopīgošanas saite | Regulārai kopīgošanai ar cilvēkiem ārpus komandas | Jā | Jā | Jā | Jā, ar ZIP | Nē |
Kāpēc vienkārši nepadarīt failu publisku
Ātrākais veids, kā kopīgot failu no S3, ir padarīt to publisku un nosūtīt objekta URL. Tas ir arī visriskantākais: visu publisko var ielādēt ikviens, kas atrod vai uzmin adresi, bez paroles, bez derīguma termiņa un bez ieraksta par to, kas to paņēma. Aizmirsti publiski bucket ir klasisks datu noplūžu avots, un tie atklāj gan failu nosaukumus, gan saturu.
AWS norāda, ka jauni bucket, piekļuves punkti un objekti pēc noklusējuma neatļauj publisku piekļuvi. Turklāt S3 Block Public Access ir četri iestatījumi (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy un RestrictPublicBuckets), kas ignorē jebkuru politiku vai ACL, kas vēlāk atvērtu bucket. Tos var iestatīt katram bucket, kontam vai visai AWS Organization, un S3 piemēro visstingrāko kombināciju. AWS iesaka ieslēgt visus četrus konta līmenī, ja vien jūs patiešām nemitināt publisku saturu, piemēram, statisku vietni.
Atstājiet šo slēdzi ieslēgtu. Viss tālāk aprakstītais darbojas ar to.
1. iespēja: presigned URL
Presigned URL ir objekta URL ar parakstu vaicājuma virknē. Tas atļauj vienu darbību (parasti lejupielādi) ar vienu objektu līdz derīguma beigām, un S3 pārbauda parakstu katrā pieprasījumā.
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
Šis URL darbojas 24 stundas. CLI noklusējums ir viena stunda, un maksimums ir 604 800 sekundes (7 dienas), ja parakstāt ar IAM lietotāja atslēgām. Ja parakstāt ar pagaidu akreditācijas datiem, piemēram, pieņemtu lomu, URL pārstāj darboties, kad šiem datiem beidzas derīgums.
Ko jūs iegūstat:
- Nekādu izmaiņu bucket vai tā politikās.
- Precīzu kontroli: viens objekts, viena metode, viens derīguma termiņš.
- Darbojas pie jebkura pakalpojumu sniedzēja, kas atbalsta SigV4 parakstīšanu.
Ko jūs neiegūstat:
- Paroli. Ikviens, kam ir URL, var to izmantot tik reižu, cik vēlas, līdz derīguma beigām.
- Lejupielāžu ierobežojumu un atsaukšanu katrai saitei. URL var priekšlaikus apturēt, tikai atsaucot atslēgas, ar kurām tas parakstīts.
- Mapes. Jūs parakstāt objektu pēc objekta, tāpēc 300 failu mapes kopīgošana nozīmē 300 URL.
- Nosaukumu privātumu. URL rāda jūsu bucket nosaukumu, objekta atslēgu un jūsu piekļuves atslēgas ID.
Par mehānismu padziļināti, ieskaitot augšupielādes, katru X-Amz-* parametru un SDK kodu, skatiet S3 presigned URL skaidrojumu.
2. iespēja: CloudFront parakstīti URL un parakstītas sīkdatnes
Ja jau pasniedzat bucket caur Amazon CloudFront, kešatmiņas uzvedībai varat pieprasīt parakstītus URL vai parakstītas sīkdatnes. Bucket paliek privāts aiz origin access control (OAC), ko AWS iesaka vecākā origin access identity vietā: bucket politika ļauj objektus lasīt tikai jūsu izplatīšanai. Jūs reģistrējat publiskās atslēgas uzticamā atslēgu grupā un parakstāt ar atbilstošo privāto atslēgu.
- Parakstīti URL der atsevišķiem failiem. Ar pielāgotu politiku varat iestatīt arī sākuma laiku un IP diapazonu un atkārtoti izmantot vienu politiku daudziem failiem ar aizstājējzīmēm. Tie var būt īslaicīgi vai derīgi gadiem.
- Parakstītas sīkdatnes der daudziem failiem vienlaikus, piemēram, katram video segmentam, nemainot jūsu URL.
Tas ir pareizais rīks, ja darbināt lietotni, kas jau autentificē lietotājus un pasniedz saturu lielā apjomā. Lai iedotu dažus failus cilvēkiem ārpus komandas, tas nozīmē izplatīšanas iestatīšanu, atslēgu pārvaldību un koda rakstīšanu, kas paraksta katru pieprasījumu.
Bucket politikas ierobežošana ar fiksētu IP diapazonu ir vēl viena iebūvēta iespēja, bet tā palīdz tikai tad, ja zināt saņēmēju tīklus, kas ar cilvēkiem ārpus jūsu organizācijas reti tā ir.
3. iespēja: kopīgošanas saites ar Nubbo
Nubbo savienojas ar jūsu bucket un sniedz kopīgošanas saites ar kontrolēm, kuru trūkst presigned URL, nerakstot kodu. Zem pārsega tas joprojām izmanto presigned URL: Nubbo vispirms pārbauda saites noteikumus un tikai tad izsniedz īslaicīgu URL, tāpēc atsevišķi faili ceļo tieši no jūsu bucket uz saņēmēja pārlūku.
1. solis: pievienojiet savu bucket
Reģistrējieties bez maksas, apstipriniet savu e-pastu, pēc tam atveriet Buckets un nospiediet Pievienot bucket. Vednis prasa jūsu pakalpojumu sniedzēju (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 vai pielāgotu ar S3 saderīgu galapunktu), savienojuma veidu (automātisku iestatīšanu ar pilnas piekļuves atslēgu vai atslēgu, kas ierobežota ar vienu bucket), jūsu atslēgu un jūsu bucket. Tas pārbauda atslēgu un bucket un noslēgumā testē CORS ar reālu augšupielādi no jūsu pārlūka. Bucket paliek privāts, un jūsu atslēgas tiek glabātas šifrētas ar AES-256-GCM. Bezmaksas plāns ietver 2 savienojumus.
2. solis: izvēlieties failu vai mapi
Atrodiet vienumu pārlūkā un izvēlieties Kopīgot. Varat arī doties uz lapu Kopīgots, nospiest Jauna saite un tur izvēlēties bucket un failu vai mapi.
3. solis: iestatiet aizsardzību
Visas trīs kontroles nav obligātas un ir pieejamas katrā plānā:
| Kontrole | Kā tā darbojas |
|---|---|
| Parole | No 4 līdz 50 rakstzīmēm. Pēc 10 nepareiziem mēģinājumiem saite tiek bloķēta uz 15 minūtēm. |
| Derīguma termiņš | Pēc noklusējuma izslēgts: saite paliek aktīva, kamēr fails vai mape ir jūsu krātuvē. |
| Maksimālais lejupielāžu skaits | Tukšs nozīmē neierobežots. Kad skaits sasniegts, saite pārstāj pasniegt failu. |
4. solis: izveidojiet un nosūtiet saiti
Nospiediet Izveidot saiti, nokopējiet to un nosūtiet pa e-pastu, tērzēšanā vai kā vien izmantojat. Saņēmējs atver tīru lejupielādes lapu, un viņam nevajag kontu. Mapes saite ļauj pārlūkot mapi, lejupielādēt atsevišķus failus vai paņemt visu kā ZIP, ko viņa pārlūks saliek, lejupielādējot katru failu tieši no jūsu bucket.
5. solis: nosūtiet paroli atsevišķi
Paroles nosūtīšana tajā pašā ziņojumā, kur saite, zaudē jēgu. Ja saitei ir parole, Nosūtīt paroli pa e-pastu to piegādā kā vienreizējas atklāšanas saiti: parole tiek parādīta vienreiz, atklāšanas saites derīgums beidzas pēc 24 stundām, 3 dienām vai 7 dienām, un varat pievienot īsu piezīmi. Jums tiek paziņots, kad tā ir atvērta.
6. solis: sekojiet un atsauciet
Lapā Kopīgots ir uzskaitīta katra saite ar tās statusu un lejupielāžu skaitu. Varat rediģēt paroli, derīguma termiņu vai ierobežojumu, deaktivizēt saiti (tā uzreiz pārstāj izsniegt jaunus lejupielādes URL) un vēlāk atkārtoti to atvērt ar to pašu adresi.
Kopīgošana ar konkrētiem cilvēkiem saites vietā
Saite darbojas ikvienam, kam tā ir. Ja vēlaties, lai piekļūtu tikai konkrēti cilvēki, Nubbo funkcija Kopīgot ar cilvēkiem (plānos Personal un Pro) nosūta failu vai mapi konkrētām e-pasta adresēm ar skatīšanas vai lejupielādes atļauju, derīguma termiņu un lejupielāžu ierobežojumu pēc izvēles un reģistrē katru piekļuvi. Saņēmējiem vajag Nubbo kontu, un vienumu viņi atrod sadaļā Kopīgots ar mani. Personal atļauj 10 cilvēkus vienam vienumam un 50 aktīvas kopīgošanas; Pro atļauj 50 un 500.
Maksas plāni piedāvā arī šifrētas saites: pārlūks izveido faila aizzīmogotu kopiju, un atslēga ceļo tikai pašā saitē, tāpēc Nubbo to nevar nolasīt.
Kuru iespēju izmantot?
- Viens fails, vienreiz, un jums ir konfigurēts AWS CLI: presigned URL ir ātrākais ceļš.
- Lietotne, kas jau piesaka lietotājus un pasniedz daudz satura: CloudFront parakstīti URL vai sīkdatnes.
- Regulāra kopīgošana ar cilvēkiem ārpus jūsu komandas, veselas mapes vai jebkas, kam vajag paroli vai ierobežojumu: kopīgošanas saite ietaupa laiku un kļūdas.
Vairāk nekā viena saite
Divas saistītas funkcijas aptver citus izplatītus gadījumus. Failu pieprasījumi dod jums publisku augšupielādes saiti, lai cilvēki varētu sūtīt failus jūsu bucket, neredzot neko citu tajā. Galerijas pārvērš fotoattēlu vai video mapi pārlūkojamā lapā ar izkārtojumiem, ūdenszīmi un savu paroli. Bezmaksas plānā saņemat 3 no katra un neierobežotas kopīgošanas saites; Personal un Pro šos ierobežojumus noņem. Viena godīga piezīme: sīktēli tiek ģenerēti Nubbo serverī un glabāti jūsu paša bucket mapē .nubbo-thumbs/.
Biežāk uzdotie jautājumi
Kā kopīgot failu no S3, nepadarot to publisku?
Saglabājiet bucket privātu un tā vietā izsniedziet parakstītu piekļuvi: presigned URL vienam objektam (no AWS CLI vai SDK), CloudFront parakstītu URL vai sīkdatni, ja jau pasniedzat bucket caur CloudFront, vai kopīgošanas saiti no rīka, piemēram, Nubbo, kas virs presigned URL pievieno paroli, derīguma termiņu un lejupielāžu ierobežojumu.
Vai Amazon S3 ir drošs failu kopīgošanai?
Jā, ja vien bucket paliek privāts. Jauni bucket pēc noklusējuma neatļauj publisku piekļuvi, un S3 Block Public Access neļauj nevienam tos vēlāk atvērt. Risks rodas, padarot objektus publiskus vai nopludinot parakstītas saites, kas darbojas ikvienam, kam tās ir, līdz derīguma beigām.
Vai jauni S3 bucket pēc noklusējuma ir privāti?
Jā. AWS norāda, ka jauni bucket, piekļuves punkti un objekti pēc noklusējuma neatļauj publisku piekļuvi, un četri Block Public Access iestatījumi ignorē jebkuru politiku vai ACL, kas tos vēlāk atvērtu.
Vai saņēmējam vajag AWS vai Nubbo kontu?
Nē. Presigned URL, CloudFront parakstīts URL un Nubbo kopīgošanas saite visi darbojas jebkurā pārlūkā bez konta. Tikai Kopīgot ar cilvēkiem, kas nosūta vienumu konkrētiem cilvēkiem, prasa, lai viņiem būtu Nubbo konts.
Cik ilgi var būt derīga kopīgota S3 saite?
Presigned URL ir derīgs ne ilgāk par 7 dienām, ja parakstīts ar IAM lietotāja atslēgām, un mazāk ar pagaidu akreditācijas datiem. CloudFront parakstīti URL ir derīgi tik ilgi, cik nosaka jūsu politika. Nubbo kopīgošanas saitei nav derīguma beigu, ja vien to neiestatāt, jo tā katrai lejupielādei izsniedz jaunu īslaicīgu URL.
Vai faili iet caur Nubbo, kad kāds lejupielādē kopīgotu saiti?
Nē: pārlūks atsevišķus failus lejupielādē tieši no jūsu bucket ar presigned URL. Vairāku failu ZIP lejupielādes tiek saliktas pārlūkā, kas katru failu lejupielādē tieši no jūsu bucket: Nubbo nekad neredz saturu.
Avoti
Cenas un ierobežojumi ņemti no tālāk norādītajām oficiālajām lapām. Pakalpojumu sniedzēji tos maina, tāpēc pārbaudiet pirms izvēles.
- Amazon S3: publiskas piekļuves bloķēšana jūsu krātuvei
- Amazon S3: objektu lejupielāde un augšupielāde ar presigned URL
- AWS CLI atsauce: s3 presign
- Amazon CloudFront: piekļuves ierobežošana Amazon S3 izcelsmei (OAC)
- Amazon CloudFront: parakstītu URL izmantošana
- Amazon CloudFront: izvēle starp parakstītiem URL un parakstītām sīkdatnēm