Developer Security
6 मिनट

टीम के साथ .env फ़ाइल और एनवायरनमेंट वेरिएबल सुरक्षित तरीके से कैसे शेयर करें

डेटाबेस पासवर्ड और API कीज़ Slack पर भेजना बंद करें। जानें कि अपनी डेवलपमेंट टीम के साथ .env फ़ाइलें सुरक्षित रूप से कैसे शेयर करें — तुरंत वाले उपायों से लेकर लंबे समय के समाधानों तक।

LOCK.PUB
टीम के साथ .env फ़ाइल और एनवायरनमेंट वेरिएबल सुरक्षित तरीके से कैसे शेयर करें

टीम के साथ .env फ़ाइल और एनवायरनमेंट वेरिएबल सुरक्षित तरीके से कैसे शेयर करें

ऑनबोर्डिंग का वह पल जिससे हम सब डरते हैं

टीम में एक नया डेवलपर आता है। वह अपना लोकल एनवायरनमेंट सेट कर रहा है और वही सवाल पूछता है जो आना ही था:

"कोई मुझे .env फ़ाइल भेज सकता है?"

आगे क्या होता है, यह निराशाजनक रूप से तय है। कोई सीनियर डेवलपर अपनी .env फ़ाइल का पूरा कंटेंट — डेटाबेस पासवर्ड, API कीज़, थर्ड-पार्टी सीक्रेट्स — कॉपी करके Slack DM या WhatsApp चैट में डाल देता है। अब वह मैसेज किसी सर्वर पर हमेशा के लिए पड़ा रहता है, और उसे खोजा जा सकता है।

हम सबने ऐसा किया है। और यह ज़्यादातर टीमों की सोच से कहीं बड़ा खतरा है।

.env फ़ाइलों को असुरक्षित तरीके से शेयर करना खतरनाक क्यों है

आपकी .env फ़ाइल असल में क्रेडेंशियल्स का खज़ाना है:

  • डेटाबेस कनेक्शन स्ट्रिंग — होस्ट, पोर्ट, यूज़रनेम, पासवर्ड, डेटाबेस का नाम
  • API कीज़ — Stripe, AWS, Firebase और दूसरी सेवाएँ, जिनका दुरुपयोग होने पर असली पैसे लगते हैं
  • थर्ड-पार्टी सीक्रेट्स — OAuth क्लाइंट सीक्रेट्स, वेबहुक साइनिंग कीज़, एन्क्रिप्शन कीज़
  • आंतरिक सर्विस टोकन — एक माइक्रोसर्विस से दूसरी माइक्रोसर्विस का ऑथेंटिकेशन

जब आप इन्हें Slack या Messenger में पेस्ट करते हैं, तो वह डेटा उनके सर्वर पर सेव हो जाता है। वर्कस्पेस एक्सेस वाला कोई भी व्यक्ति महीनों या सालों बाद उन मैसेज को खोजकर ढूँढ सकता है। और अगर कोई डिवाइस खो जाए या हैक हो जाए, तो वे क्रेडेंशियल्स भी उसके साथ चले जाते हैं।

टीमें .env फ़ाइलें किन आम (और खतरनाक) तरीकों से शेयर करती हैं

तरीका खतरा क्यों है
Slack / Teams DM प्रोवाइडर के सर्वर पर अक्सर सालों तक सेव, और एडमिन एक्सपोर्ट व eDiscovery से इन तक पहुँच सकते हैं
ईमेल अटैचमेंट मेल सर्वर पर पड़ा रहता है, फ़ॉरवर्ड हो सकता है, स्टोरेज में शायद ही एन्क्रिप्टेड होता है
Google Docs लिंक लीक = कोई भी खोल सकता है, वर्शन हिस्ट्री में कंटेंट बचा रहता है
git में कमिट डिलीट किए गए कमिट भी git log हिस्ट्री में रहते हैं, बॉट्स सेकंडों में GitHub स्कैन करते हैं
Notion / Confluence पेज अक्सर डिफ़ॉल्ट रूप से पूरे वर्कस्पेस को दिखते हैं और प्रतिबंधित न करने पर समाप्त नहीं होते

git कमिट वाला मामला खास तौर पर बेरहम है। ऑटोमेटेड बॉट्स लीक हुए क्रेडेंशियल्स के लिए पब्लिक GitHub रिपॉज़िटरी लगातार स्कैन करते रहते हैं। अगर आपने गलती से .env फ़ाइल पुश कर दी, तो कुछ ही मिनटों में आपकी AWS कीज़ का दुरुपयोग हो सकता है।

.env फ़ाइलें शेयर करने के सुरक्षित तरीके

1. सीक्रेट्स मैनेजर

Doppler, HashiCorp Vault और AWS Secrets Manager खास इसी काम के लिए बने हैं। ये आपके एनवायरनमेंट वेरिएबल्स को एक जगह रखते हैं और बारीक एक्सेस कंट्रोल, ऑडिट लॉग और ऑटोमैटिक रोटेशन देते हैं। अगर आपकी टीम में गिने-चुने से ज़्यादा डेवलपर हैं, तो यही सबसे बेहतरीन तरीका है।

2. टीम पासवर्ड मैनेजर

1Password Teams और Bitwarden Organization दोनों शेयर्ड वॉल्ट सपोर्ट करते हैं, जिनमें आप .env का कंटेंट सुरक्षित नोट के रूप में रख सकते हैं। एक्सेस हर उपयोगकर्ता के हिसाब से नियंत्रित होता है, और सब कुछ एंड-टू-एंड एन्क्रिप्टेड होता है।

3. पासवर्ड-सुरक्षित एक बार वाले मेमो

जल्दी और एक बार की शेयरिंग के लिए — जैसे किसी नए डेवलपर की ऑनबोर्डिंग — LOCK.PUB जैसा टूल अच्छा काम करता है। अपनी .env का कंटेंट गुप्त मेमो में पेस्ट करें, पासवर्ड सेट करें, उसे सिर्फ़ एक बार खुलने या तय समय पर समाप्त होने के लिए सेट करें (Pro), फिर लिंक Slack पर और पासवर्ड किसी अलग चैनल से भेजें (जैसे WhatsApp या फ़ोन कॉल)। उसके बाद लिंक खुलना बंद हो जाता है — Slack में सिर्फ़ एक बेकार लिंक रह जाता है, आपके क्रेडेंशियल्स नहीं। Pro नहीं है? बिना Pro के भी पासवर्ड वाला गुप्त मेमो बनाया जा सकता है — बस उसमें एक बार खुलने और समाप्ति की सुविधा नहीं होगी।

4. GPG से एन्क्रिप्ट की गई फ़ाइलें

सुरक्षा को लेकर सजग टीमें शेयर करने से पहले .env फ़ाइल को GPG से एन्क्रिप्ट कर सकती हैं। कमी यह है कि टीम के हर सदस्य को GPG कीज़ संभालनी पड़ती हैं, जिससे झंझट बढ़ती है।

.env मैनेजमेंट के सबसे अच्छे तरीके

  1. .env को तुरंत .gitignore में जोड़ें — नया प्रोजेक्ट बनाते समय सबसे पहले यही करना चाहिए।
  2. एक .env.example फ़ाइल रखें — हर वेरिएबल को प्लेसहोल्डर वैल्यू के साथ शामिल करें, ताकि नए डेवलपर जान सकें कि क्या-क्या चाहिए।
  3. हर एनवायरनमेंट के लिए अलग क्रेडेंशियल्स रखें — डेवलपमेंट, स्टेजिंग और प्रोडक्शन में कभी एक जैसी कीज़ नहीं होनी चाहिए।
  4. सीक्रेट्स नियमित रूप से बदलें — कम से कम हर तिमाही कीज़ रोटेट करें।
  5. लोगों के जाने पर एक्सेस हटाएँ — जब टीम का कोई सदस्य जाए, तो हर वह सीक्रेट रोटेट करें जिस तक उसकी पहुँच थी। सिर्फ़ उसका अकाउंट नहीं — असली क्रेडेंशियल्स।

तुरंत सेटअप: .gitignore + .env.example

इसे अभी अपनी .gitignore में जोड़ें:

# Environment variables
.env
.env.local
.env.*.local

फिर एक .env.example बनाएँ जो डॉक्यूमेंटेशन का काम करे:

# .env.example
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxx
FIREBASE_API_KEY=your_firebase_api_key_here
NEXT_PUBLIC_BASE_URL=http://localhost:3000

यह फ़ाइल अपनी रिपॉज़िटरी में कमिट करें। इससे हर नए डेवलपर को ठीक-ठीक पता चल जाता है कि उसे कौन-से वेरिएबल चाहिए, और कोई असली वैल्यू सामने नहीं आती।

सीक्रेट्स को सादे टेक्स्ट में भेजना बंद करें

.env फ़ाइलें शेयर करना वर्कफ़्लो की छोटी-सी बात लग सकती है, लेकिन यह क्रेडेंशियल लीक के सबसे आम स्रोतों में से एक है। चाहे आप पूरा सीक्रेट्स मैनेजर अपनाएँ या समाप्ति तिथि के साथ क्रेडेंशियल्स शेयर करने के लिए LOCK.PUB इस्तेमाल करें, असली बात है चैट मैसेज में सीक्रेट्स पेस्ट करने की आदत तोड़ना।

अभी यह करके देखें: अपने Slack वर्कस्पेस में DATABASE_URL या API_KEY खोजें। नतीजे आपको चौंका सकते हैं।

मेमो बनाएं

मेमो बनाएं

कीवर्ड

.env फ़ाइल सुरक्षित तरीके से शेयर करें
टीम के साथ एनवायरनमेंट वेरिएबल शेयर करें
डेवलपर सीक्रेट्स मैनेजमेंट

यह भी पढ़ें

पासवर्ड-सुरक्षित लिंक से ऑनलाइन सीक्रेट शेयर करें

जानें कि कोई सीक्रेट, पासवर्ड, निजी नोट, फ़ाइल, इमेज, ऑडियो या अनुरोध सुरक्षित सीक्रेट लिंक से कैसे शेयर करें। समय सीमा, एक्सेस लिमिट और रीड रिसीट से संवेदनशील जानकारी को ज़्यादा सुरक्षित रखें।

Secure Sharing

सुरक्षित रिक्वेस्ट लिंक से फाइल, फोटो, नोट और ऑडियो कैसे लें

दस्तावेज, फोटो, नोट और वॉइस मैसेज एक ही लिंक से लें — भेजने वाले के ब्राउजर में ही ऐसी कुंजी से एन्क्रिप्ट होकर, जिसे सिर्फ आप अनलॉक कर सकते हैं।

Secure Sharing

ईमेल पर 25MB से बड़ी फाइल भेजने के 5 तरीके

Gmail और Outlook की 25MB अटैचमेंट सीमा से बचने के 5 मुफ्त, सुरक्षित और बिना साइन-अप वाले तरीके।

File Sharing
टीम के साथ .env फ़ाइल और एनवायरनमेंट वेरिएबल सुरक्षित तरीके से कैसे शेयर करें | LOCK.PUB Blog