क्रेडेंशियल (लॉगिन की जानकारी, keys और टोकन) हर समय एक टीम से दूसरी टीम तक जाते रहते हैं। प्लेटफ़ॉर्म टीम किसी प्रोडक्ट टीम को डिप्लॉय key देती है, सपोर्ट टीम को किसी वेंडर पोर्टल का एडमिन लॉगिन मिलता है, फ़ाइनेंस टीम किसी इंटीग्रेशन के लिए बैंक का API टोकन इंजीनियरिंग को देती है। हर हैंडओवर रोज़ का काम है, और ज़्यादातर यहीं कोई क्रेडेंशियल हमेशा के लिए किसी Slack थ्रेड में पड़ा रह जाता है।
टीमों के बीच क्रेडेंशियल सुरक्षित तरीके से सौंपने के लिए कोई स्मार्ट टूल उतना ज़रूरी नहीं, जितना एक साफ़ नियम कि दो में से कौन-सा टूल इस्तेमाल करें, और उसके साथ कुछ आदतें। यह गाइड वह नियम और वे आदतें बताती है: क्रेडेंशियल का दायरा सीमित करें, उसे किसी मैसेज में डाले बिना पहुंचाएं, एक ज़िम्मेदार व्यक्ति तय करें, और समय पर उसे हटा दें।
एक फ़ैसला जो मायने रखता है: वॉल्ट या वन-टाइम लिंक
बाकी सब इस पर निर्भर है कि पाने वाली टीम क्रेडेंशियल का इस्तेमाल कैसे करेगी।
| पाने वाली टीम | क्या इस्तेमाल करें | क्यों |
|---|---|---|
| इसे आगे भी इस्तेमाल करेगी, कई लोग, अनिश्चित समय तक | आपके पासवर्ड या सीक्रेट मैनेजर में एक साझा वॉल्ट | नाम से ऐक्सेस, वापस लेना और बदलना, सब एक जगह |
| इसे एक बार इस्तेमाल करेगी, या एक व्यक्ति को थोड़े समय के लिए चाहिए | वन-टाइम सीक्रेट लिंक | मैसेज में सिर्फ़ लिंक जाता है, पहली बार खुलते ही कॉपी मिट जाती है |
| इसे कोड या CI से चलाएगी | मशीन आइडेंटिटी वाला सीक्रेट मैनेजर | वैल्यू कोई इंसान कभी नहीं देखता |
वॉल्ट ही आधिकारिक रिकॉर्ड रखता है। अगर क्रेडेंशियल को हैंडओवर के बाद भी इस्तेमाल होना है, तो उसकी जगह ऐसा साझा वॉल्ट है जो पाने वाली टीम का हो और जिसमें सदस्य नाम से जोड़े जाएं। ज़्यादातर बिज़नेस पासवर्ड मैनेजर और Vault या AWS Secrets Manager जैसे टूल यह काम अच्छी तरह करते हैं।
वन-टाइम लिंक, यानी एक बार खुलने वाला लिंक, हैंडओवर के उस पल के लिए है जब वॉल्ट सही नहीं बैठता: प्राप्तकर्ता आपके वॉल्ट में नहीं है, क्रेडेंशियल अस्थायी है, या आपको अभी किसी एक व्यक्ति को कोई वैल्यू देनी है। सीक्रेट आपके ब्राउज़र में ही एन्क्रिप्ट होता है, लिंक पहली बार खुलते ही स्टोर की गई कॉपी मिट जाती है, और अगर कोई लिंक नहीं खोलता, तो लिंक तय समय पर एक्सपायर हो जाता है। सीक्रेट लिंक बनाम पासवर्ड मैनेजर में खास मामलों पर बात की गई है।
ईमेल, चैट, साझा डॉक्यूमेंट या टिकट कभी नहीं। ये सब कॉपी रखते हैं, ये सब ऐसे डिवाइस पर सिंक होते हैं जो आपके कंट्रोल में नहीं हैं, और अकाउंट तक पहुंचने वाला अगला व्यक्ति इन सबमें सर्च कर सकता है।
सौंपने से पहले क्रेडेंशियल का दायरा सीमित करें
अच्छा चैनल ज़रूरत से ज़्यादा अधिकार वाले क्रेडेंशियल को ठीक नहीं कर सकता।
- किसी एक व्यक्ति से जुड़ा अकाउंट उधार देने के बजाय पाने वाली टीम या व्यक्ति के लिए अलग अकाउंट बनाएं। साझा आइडेंटिटी का ऑडिट नहीं हो सकता और उसे साफ़ तरीके से हटाया नहीं जा सकता।
- उतनी ही अनुमतियां दें जितनी काम के लिए चाहिए। जो टीम रिपोर्ट पढ़ती है, उसे लिखने का ऐक्सेस नहीं चाहिए। जो टीम डिप्लॉय करती है, उसे बिलिंग नहीं चाहिए।
- अगर वैल्यू इधर-उधर जा चुकी है, तो पहले उसे बदलें। अगर मौजूदा key कई जगह पेस्ट हो चुकी है, तो पुरानी key को और फैलाने के बजाय हैंडओवर के लिए नई key जारी करें।
- आसपास की सामग्री में सर्च करें। काम से जुड़े टिकट, रनबुक, उदाहरण वाली कॉन्फ़िग और स्क्रिप्ट में अक्सर वही क्रेडेंशियल होता है जिसे आप सौंपने वाले हैं। हैंडओवर से पहले उसे वहां से हटाएं, वरना हैंडओवर आपके जोखिम का सबसे छोटा हिस्सा होगा।
हैंडओवर कैसे करें
- प्राप्तकर्ता की पुष्टि करें, ऐसे चैनल से जिस पर आपकी संस्था पहले से भरोसा करती है: टिकट, कोई जाना-पहचाना मैनेजर, वीडियो कॉल। मिलते-जुलते एड्रेस और अपने आप भरे गए नाम ही आम तौर पर सीक्रेट के गलत हाथों में जाने की वजह होते हैं।
- चुने गए टूल से पहुंचाएं। वॉल्ट: व्यक्ति को साझा कलेक्शन में जोड़ें। लिंक: वैल्यू को वन-टाइम सीक्रेट लिंक टूल में पेस्ट करें, एक्सपायरी असली ज़रूरत के हिसाब से रखें (अगर वे इंतज़ार कर रहे हैं तो एक घंटा, अलग टाइम ज़ोन में हों तो एक दिन), देखने की लिमिट एक रखें, किसी भी संवेदनशील चीज़ के लिए Pro अकाउंट पर पासफ़्रेज़ जोड़ें, और लिंक भेज दें।
- संदर्भ अलग से भेजें। यूज़रनेम, होस्ट और यह कि क्रेडेंशियल से क्या खुलता है, ये सब एक सामान्य मैसेज में जाएं, लिंक के साथ कभी नहीं। किसी एक लीक हुए मैसेज में दोनों हिस्से कभी नहीं होने चाहिए।
- हैंडओवर को अपने आधिकारिक रिकॉर्ड में दर्ज करें, सीक्रेट के बिना: प्राप्तकर्ता, मकसद, सिस्टम, ज़िम्मेदार व्यक्ति, अंत की तारीख।
- ऐक्सेस की पुष्टि मांगें, वैल्यू की नहीं। “क्या आप लॉग इन कर पा रहे हैं?” सही सवाल है। “जांचने के लिए key मुझे वापस भेज दें” नहीं।
जो टीम यह काम अक्सर करती है, उसके लिए LinkPilot Slack ऐप चैनल के अंदर ही पेस्ट किए गए पासवर्ड को वन-टाइम लिंक में बदल देता है। तब यह आदत इस पर निर्भर नहीं रहती कि हर किसी को कोई दूसरा टूल खोलना याद रहे।
ज़िम्मेदार व्यक्ति तय करें, फिर तय समय पर समीक्षा करें
जिस क्रेडेंशियल का कोई ज़िम्मेदार नहीं होता, वह न कभी बदला जाता है, न हटाया जाता है। पाने वाली टीम को एक व्यक्ति तय करना चाहिए जो उस वैल्यू के लिए जवाबदेह हो: वह किसके पास है, किसे और उसकी ज़रूरत है, और वह कब हटाई जाएगी।
- रोल के हिसाब से कम से कम अधिकार, और जहां इससे एडमिनिस्ट्रेशन आसान हो, वहां रोल या ग्रुप, ताकि किसी एक के जाने पर हर सिस्टम में अलग रीसेट न करना पड़े।
- वॉल्ट पर मल्टी-फ़ैक्टर ऑथेंटिकेशन, क्योंकि अब हमला करने लायक चीज़ वॉल्ट ही है।
- संवेदनशीलता के हिसाब से समीक्षा का समय: ज़्यादातर साझा क्रेडेंशियल के लिए हर तिमाही, प्रोडक्शन ऐक्सेस के लिए टीम में हर बदलाव पर।
- हैंडओवर का ऑडिट करें। वॉल्ट दिखाता है कि किसने क्या ऐक्सेस किया। Pro LinkPilot अकाउंट हर सीक्रेट लिंक की ऑडिट टाइमलाइन दिखाता है, ताकि आप देख सकें कि एक बार दिखने वाला सीक्रेट कब खोला गया और उसे प्राप्तकर्ता की पुष्टि से मिला सकें।
एक्सपायरी, रोटेशन और एक्सपोज़र
क्रेडेंशियल का इस्तेमाल शुरू होने से पहले ही तय कर लें कि वह कब खत्म होगा।
- अस्थायी ऐक्सेस तय तारीख पर खत्म होता है। अकाउंट या वॉल्ट की सदस्यता हटा दें, और जो वन-टाइम लिंक कभी नहीं खुला, उसे वापस ले लें।
- रोटेशन जोखिम के हिसाब से होता है, सिर्फ़ कैलेंडर से नहीं: किसी के जाने के बाद, वेंडर बदलने के बाद, किसी भी संदिग्ध एक्सपोज़र के बाद, और लंबे समय तक चलने वाली हर चीज़ के लिए तय समय पर।
- लीक का शक भी लीक है, जब तक उल्टा साबित न हो। उस सिस्टम पर क्रेडेंशियल रोटेट करें जो उसे स्वीकार करता है, ज़िम्मेदार व्यक्ति को बताएं, और पुरानी वैल्यू पर निर्भर जॉब और सर्विस अपडेट करें। API key गाइड में रोटेशन की एक चेकलिस्ट है जो ज़्यादातर तरह के क्रेडेंशियल पर लागू होती है।
दो टूल, उनमें से चुनने का एक नियम, और हर वैल्यू का एक ज़िम्मेदार व्यक्ति। पूरा सिस्टम इतना ही है, और यह किसी भी ऐसे पॉलिसी डॉक्यूमेंट से कहीं ज़्यादा हैंडओवर में काम आता है जिसे लोग पढ़ना छोड़ देते हैं।
