आप Amazon S3 से फ़ाइलें बकेट को कभी पब्लिक किए बिना शेयर कर सकते हैं। उसे निजी रखें, Block Public Access चालू रहने दें और इसके बजाय लोगों को खास ऑब्जेक्ट का साइन किया हुआ एक्सेस दें: एक बार की फ़ाइल के लिए presigned URL, जब आप पहले से बकेट के आगे CDN चलाते हैं तो CloudFront signed URL, या ऐसा शेयर लिंक जो पासवर्ड, समाप्ति तिथि और डाउनलोड सीमा जोड़ता है। तीनों Cloudflare R2, DigitalOcean Spaces, Wasabi और Backblaze B2 जैसे S3-compatible प्रोवाइडर पर एक जैसे काम करते हैं (CloudFront सिर्फ़ AWS पर है)।
एक नज़र में S3 फ़ाइलों की सुरक्षित शेयरिंग के विकल्प
| तरीका | किसके लिए सबसे अच्छा | पासवर्ड | डाउनलोड सीमा | एक लिंक रद्द करना | पूरे फ़ोल्डर | कोड चाहिए |
|---|---|---|---|---|---|---|
| पब्लिक ऑब्जेक्ट या बकेट | सच में पब्लिक assets (एक वेबसाइट) | नहीं | नहीं | नहीं | हाँ | नहीं |
| Presigned URL | एक फ़ाइल, एक बार, CLI या आपके ऐप से | नहीं | नहीं | नहीं | नहीं | CLI या SDK |
| CloudFront signed URL | ऐसे ऐप जो पहले से यूज़र को authenticate करते हैं | नहीं | नहीं | नहीं | signed cookies के साथ | हाँ |
| Nubbo शेयर लिंक | बाहर के लोगों के साथ बार-बार शेयरिंग | हाँ | हाँ | हाँ | हाँ, ZIP के साथ | नहीं |
फ़ाइल को बस पब्लिक क्यों न कर दें
S3 से फ़ाइल शेयर करने का सबसे तेज़ तरीका उसे पब्लिक करके ऑब्जेक्ट URL भेजना है। यह सबसे जोखिम भरा भी है: पब्लिक कोई भी चीज़ हर उस व्यक्ति को मिल सकती है जो पता खोज ले या अंदाज़ा लगा ले, न पासवर्ड, न समाप्ति और न यह रिकॉर्ड कि किसने लिया। भूले हुए पब्लिक बकेट डेटा लीक का क्लासिक स्रोत हैं, और वे सामग्री के साथ फ़ाइल नाम भी उजागर करते हैं।
AWS के अनुसार नए बकेट, access points और ऑब्जेक्ट डिफ़ॉल्ट रूप से पब्लिक एक्सेस की अनुमति नहीं देते। इसके ऊपर, S3 Block Public Access की चार सेटिंग्स (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy और RestrictPublicBuckets) किसी भी ऐसी policy या ACL को निष्प्रभावी कर देती हैं जो बकेट को बाद में खोलती। इन्हें प्रति बकेट, प्रति अकाउंट या पूरे AWS Organization के लिए सेट किया जा सकता है, और S3 सबसे सख्त संयोजन लागू करता है। AWS सलाह देता है कि जब तक आप सच में पब्लिक सामग्री, जैसे static वेबसाइट, होस्ट नहीं करते, चारों को अकाउंट स्तर पर चालू रखें।
यह स्विच चालू रखें। नीचे दिया सब कुछ इसके चालू रहते काम करता है।
विकल्प 1: presigned URL
presigned URL एक ऑब्जेक्ट URL है जिसकी query string में signature होता है। यह समाप्त होने तक एक ऑब्जेक्ट पर एक ऑपरेशन (आमतौर पर डाउनलोड) की अनुमति देता है, और S3 हर request पर signature जाँचता है।
aws s3 presign s3://my-bucket/reports/q3.pdf --expires-in 86400
वह URL 24 घंटे काम करता है। CLI का डिफ़ॉल्ट एक घंटा है और IAM यूज़र keys से साइन करने पर अधिकतम 604,800 सेकंड (7 दिन)। अगर आप अस्थायी क्रेडेंशियल, जैसे assumed role, से साइन करते हैं, तो उन क्रेडेंशियल के समाप्त होने पर URL बंद हो जाता है।
आपको क्या मिलता है:
- बकेट या उसकी policies में कोई बदलाव नहीं।
- सटीक नियंत्रण: एक ऑब्जेक्ट, एक method, एक समाप्ति।
- SigV4 presigning सपोर्ट करने वाले किसी भी प्रोवाइडर पर काम करता है।
आपको क्या नहीं मिलता:
- कोई पासवर्ड नहीं। जिसके पास URL है वह समाप्त होने तक जितनी बार चाहे उसे इस्तेमाल कर सकता है।
- न डाउनलोड सीमा और न प्रति लिंक रद्द करना। आप URL को समय से पहले सिर्फ़ उसे साइन करने वाली keys रद्द करके बंद कर सकते हैं।
- कोई फ़ोल्डर नहीं। आप ऑब्जेक्ट दर ऑब्जेक्ट साइन करते हैं, इसलिए 300 फ़ाइलों वाला फ़ोल्डर शेयर करने का मतलब है 300 URL।
- नामों की गोपनीयता। URL आपके बकेट का नाम, ऑब्जेक्ट key और आपकी access key ID दिखाता है।
अपलोड, हर X-Amz-* पैरामीटर और SDK कोड समेत पूरी कार्यप्रणाली के लिए S3 presigned URL की पूरी जानकारी देखें।
विकल्प 2: CloudFront signed URL और signed cookies
अगर आप पहले से बकेट को Amazon CloudFront से भेजते हैं, तो आप किसी cache behavior पर signed URL या signed cookies अनिवार्य कर सकते हैं। बकेट origin access control (OAC) के पीछे निजी रहता है, जिसकी सलाह AWS पुराने origin access identity के बजाय देता है: एक bucket policy सिर्फ़ आपके distribution को ऑब्जेक्ट पढ़ने देती है। आप public keys को एक trusted key group में दर्ज करते हैं और मेल खाती private key से साइन करते हैं।
- Signed URL अलग-अलग फ़ाइलों के लिए ठीक हैं। custom policy के साथ आप शुरुआत का समय और IP range भी सेट कर सकते हैं, और wildcards के साथ कई फ़ाइलों के लिए एक policy दोबारा इस्तेमाल कर सकते हैं। ये थोड़े समय के भी हो सकते हैं या सालों तक चल सकते हैं।
- Signed cookies एक साथ कई फ़ाइलों के लिए ठीक हैं, जैसे किसी वीडियो का हर segment, आपके URL बदले बिना।
यह सही टूल है जब आप ऐसा ऐप्लिकेशन चलाते हैं जो पहले से यूज़र को authenticate करता है और बड़े पैमाने पर सामग्री भेजता है। अपनी टीम के बाहर के लोगों को कुछ फ़ाइलें देने के लिए, इसका मतलब है एक distribution सेट करना, keys मैनेज करना और हर request साइन करने वाला कोड लिखना।
bucket policy को एक तय IP range तक सीमित करना एक और मूल विकल्प है, लेकिन यह तभी मदद करता है जब आप प्राप्तकर्ताओं के नेटवर्क जानते हों, जो आपके संगठन के बाहर के लोगों के साथ शायद ही कभी होता है।
विकल्प 3: Nubbo के साथ शेयर लिंक
Nubbo आपके बकेट से कनेक्ट होता है और आपको वे नियंत्रण वाले शेयर लिंक देता है जो presigned URL में नहीं हैं, बिना कोड लिखे। अंदर से यह अब भी presigned URL इस्तेमाल करता है: Nubbo पहले लिंक के नियम जाँचता है और तभी थोड़े समय का URL देता है, इसलिए एक-एक फ़ाइल सीधे आपके बकेट से प्राप्तकर्ता के ब्राउज़र तक जाती है।
चरण 1: अपना बकेट कनेक्ट करें
मुफ़्त में साइन अप करें, अपना ईमेल सत्यापित करें, फिर बकेट खोलें और बकेट कनेक्ट करें दबाएँ। विज़ार्ड आपका प्रोवाइडर पूछता है (Amazon S3, Cloudflare R2, DigitalOcean Spaces, Wasabi, Backblaze B2 या कोई custom S3-compatible endpoint), कनेक्ट करने का तरीका (पूर्ण एक्सेस वाली key के साथ स्वचालित सेटअप, या एक बकेट तक सीमित key), आपकी key और आपका बकेट। यह key और बकेट जाँचता है, और आपके ब्राउज़र से एक असली अपलोड के साथ CORS टेस्ट करके पूरा होता है। बकेट निजी रहता है और आपकी keys AES-256-GCM से एन्क्रिप्ट करके स्टोर की जाती हैं। निःशुल्क प्लान में 2 कनेक्शन शामिल हैं।
चरण 2: फ़ाइल या फ़ोल्डर चुनें
एक्सप्लोरर में आइटम ढूँढें और साझा करें चुनें। आप साझा किया गया पेज पर भी जा सकते हैं, नया लिंक दबा सकते हैं और वहाँ बकेट और फ़ाइल या फ़ोल्डर चुन सकते हैं।
चरण 3: सुरक्षा सेट करें
तीनों नियंत्रण वैकल्पिक हैं और हर प्लान में उपलब्ध हैं:
| नियंत्रण | यह कैसे काम करता है |
|---|---|
| पासवर्ड | 4 से 50 अक्षर। 10 गलत कोशिशों के बाद लिंक 15 मिनट के लिए लॉक हो जाता है। |
| समाप्ति तिथि | डिफ़ॉल्ट रूप से बंद: जब तक फ़ाइल या फ़ोल्डर आपके स्टोरेज में है, लिंक सक्रिय रहता है। |
| अधिकतम डाउनलोड | खाली का मतलब असीमित। गिनती पूरी होने पर लिंक फ़ाइल देना बंद कर देता है। |
चरण 4: लिंक बनाएँ और भेजें
लिंक बनाएं दबाएँ, उसे कॉपी करें और ईमेल, चैट या जो भी आप इस्तेमाल करते हैं, उससे भेजें। प्राप्तकर्ता एक साफ़ डाउनलोड पेज खोलता है और उसे अकाउंट की ज़रूरत नहीं होती। फ़ोल्डर लिंक से वे फ़ोल्डर ब्राउज़ कर सकते हैं, एक-एक फ़ाइल डाउनलोड कर सकते हैं या सब कुछ ZIP के रूप में ले सकते हैं, जिसे उनका ब्राउज़र हर फ़ाइल सीधे आपके बकेट से डाउनलोड करके बनाता है।
चरण 5: पासवर्ड अलग से भेजें
लिंक वाले संदेश में ही पासवर्ड भेजना उसका मकसद खत्म कर देता है। अगर लिंक में पासवर्ड है, तो ईमेल द्वारा पासवर्ड भेजें उसे एक बार दिखने वाले लिंक के रूप में भेजता है: पासवर्ड एक बार दिखाया जाता है, दिखाने वाला लिंक 24 घंटे, 3 दिन या 7 दिन बाद समाप्त हो जाता है, और आप एक छोटा नोट जोड़ सकते हैं। इसके खुलने पर आपको सूचना मिलती है।
चरण 6: ट्रैक करें और रद्द करें
साझा किया गया पेज हर लिंक को उसकी स्थिति और डाउनलोड गिनती के साथ सूचीबद्ध करता है। आप पासवर्ड, समाप्ति या सीमा एडिट कर सकते हैं, किसी लिंक को निष्क्रिय कर सकते हैं (वह तुरंत नए डाउनलोड URL देना बंद कर देता है) और बाद में उसे उसी पते के साथ फिर से चालू कर सकते हैं।
लिंक के बजाय चुनिंदा लोगों के साथ शेयर करना
लिंक हर उस व्यक्ति के लिए काम करता है जिसके पास वह है। जब आप चाहते हैं कि सिर्फ़ नाम से चुने गए लोग अंदर आएँ, तो Nubbo का लोगों के साथ साझा करें (Personal और Pro प्लान में) किसी फ़ाइल या फ़ोल्डर को खास ईमेल पतों पर देखने या डाउनलोड करने की अनुमति, वैकल्पिक समाप्ति और डाउनलोड सीमा के साथ भेजता है, और हर एक्सेस को रिकॉर्ड करता है। प्राप्तकर्ताओं को Nubbo अकाउंट चाहिए और वे आइटम मेरे साथ साझा किया गया में पाते हैं। Personal में प्रति आइटम 10 लोग और 50 सक्रिय शेयर की अनुमति है; Pro में 50 और 500।
पेड प्लान एन्क्रिप्टेड लिंक भी देते हैं: ब्राउज़र फ़ाइल की एक सील की हुई कॉपी बनाता है और key सिर्फ़ लिंक के अंदर ही जाती है, इसलिए Nubbo उसे नहीं पढ़ सकता।
आपको कौन-सा विकल्प इस्तेमाल करना चाहिए?
- एक फ़ाइल, एक बार, और आपका AWS CLI कॉन्फ़िगर है: presigned URL सबसे तेज़ रास्ता है।
- ऐसा ऐप्लिकेशन जो पहले से यूज़र को लॉग इन करता है और बहुत सारी सामग्री भेजता है: CloudFront signed URL या cookies।
- अपनी टीम के बाहर के लोगों के साथ बार-बार शेयरिंग, पूरे फ़ोल्डर या कुछ भी जिसे पासवर्ड या सीमा चाहिए: शेयर लिंक समय और गलतियाँ बचाता है।
एक लिंक से आगे
दो संबंधित सुविधाएँ बाकी आम मामलों को कवर करती हैं। फ़ाइल अनुरोध आपको एक पब्लिक अपलोड लिंक देते हैं ताकि लोग आपके बकेट में फ़ाइलें भेज सकें, उसमें और कुछ देखे बिना। गैलरी फ़ोटो या वीडियो के फ़ोल्डर को layouts, watermark और अपने पासवर्ड वाले ब्राउज़ करने योग्य पेज में बदल देती हैं। निःशुल्क प्लान में आपको दोनों के 3 और असीमित शेयर लिंक मिलते हैं; Personal और Pro ये सीमाएँ हटा देते हैं। एक ईमानदार बात: thumbnails, Nubbo के सर्वर पर बनाए जाते हैं और आपके अपने बकेट में .nubbo-thumbs/ के अंदर स्टोर होते हैं।
अक्सर पूछे जाने वाले सवाल
S3 से कोई फ़ाइल पब्लिक किए बिना कैसे शेयर करें?
बकेट को निजी रखें और इसके बजाय साइन किया हुआ एक्सेस दें: एक ऑब्जेक्ट के लिए presigned URL (AWS CLI या SDK से), अगर आप पहले से बकेट को CloudFront से भेजते हैं तो CloudFront signed URL या cookie, या Nubbo जैसे टूल का शेयर लिंक, जो presigned URL के ऊपर पासवर्ड, समाप्ति तिथि और डाउनलोड सीमा जोड़ता है।
क्या फ़ाइल शेयरिंग के लिए Amazon S3 सुरक्षित है?
हाँ, जब तक बकेट निजी रहता है। नए बकेट डिफ़ॉल्ट रूप से पब्लिक एक्सेस की अनुमति नहीं देते और S3 Block Public Access किसी को उन्हें बाद में खोलने से रोकता है। जोखिम ऑब्जेक्ट को पब्लिक करने या साइन किए गए लिंक लीक होने से आता है, जो समाप्त होने तक हर उस व्यक्ति के लिए काम करते हैं जिसके पास वे हैं।
क्या नए S3 बकेट डिफ़ॉल्ट रूप से निजी होते हैं?
हाँ। AWS के अनुसार नए बकेट, access points और ऑब्जेक्ट डिफ़ॉल्ट रूप से पब्लिक एक्सेस की अनुमति नहीं देते, और Block Public Access की चार सेटिंग्स किसी भी ऐसी policy या ACL को निष्प्रभावी कर देती हैं जो उन्हें बाद में खोलती।
क्या प्राप्तकर्ता को AWS या Nubbo अकाउंट चाहिए?
नहीं। presigned URL, CloudFront signed URL और Nubbo शेयर लिंक, सभी किसी भी ब्राउज़र में बिना अकाउंट के काम करते हैं। सिर्फ़ लोगों के साथ साझा करें, जो किसी आइटम को नाम से चुने गए लोगों को भेजता है, के लिए उनके पास Nubbo अकाउंट होना ज़रूरी है।
शेयर किया गया S3 लिंक कितने समय तक चल सकता है?
IAM यूज़र keys से साइन किया गया presigned URL अधिकतम 7 दिन चलता है, और अस्थायी क्रेडेंशियल के साथ कम। CloudFront signed URL उतने समय चलते हैं जितना आपकी policy कहती है। Nubbo शेयर लिंक की कोई समाप्ति नहीं होती जब तक आप सेट न करें, क्योंकि यह हर डाउनलोड पर थोड़े समय का नया URL देता है।
जब कोई शेयर किया गया लिंक डाउनलोड करता है, क्या फ़ाइलें Nubbo से होकर गुज़रती हैं?
नहीं: ब्राउज़र एक-एक फ़ाइल presigned URL से सीधे आपके बकेट से डाउनलोड करता है। कई फ़ाइलों वाले ZIP डाउनलोड ब्राउज़र में ही बनते हैं, जो हर फ़ाइल सीधे आपके बकेट से डाउनलोड करता है: Nubbo कभी सामग्री नहीं देखता।
स्रोत
कीमतें और सीमाएँ नीचे दिए आधिकारिक पेजों से ली गई हैं। प्रोवाइडर इन्हें बदलते रहते हैं, इसलिए फ़ैसला लेने से पहले जाँच लें।