वेबसाइट

एक साइट के लिए ऐप सीक्रेट्स को स्टोर करना

The Secrets tab is an encrypted store for the sensitive configuration values a Node.js app needs, such as API keys, signing secrets and third-party tokens, kept per environment so your production…

सीक्रेट्स टैब एक एनक्रिप्टेड स्टोर है जिसमें Node.js ऐप को आवश्यक संवेदनशील कॉन्फ़िगरेशन वैल्यूज़ जैसे API कीज़, साइनिंग सीक्रेट्स और थर्ड-पार्टी टोकन रहते हैं, जो प्रत्येक एनवायरनमेंट के लिए अलग रखे जाते हैं ताकि आपके प्रोडक्शन क्रेडेंशियल्स और आपके प्रीव्यू क्रेडेंशियल्स कभी मिक्स न हों।

सीक्रेट्स कहां स्थित होते हैं

Websites को खोलें, साइट पर क्लिक करें, साइट टैब स्ट्रिप में Advanced मेनू को खोलें, और Secrets चुनें। टैब को Secrets कहा जाता है।

यह टैब केवल Node.js साइट्स पर दिखाई देता है। WordPress, PHP और static साइट्स इसे नहीं दिखाती हैं, क्योंकि उनका कॉन्फ़िगरेशन डिस्क पर फ़ाइलों में रहता है: WordPress के लिए wp-config.php, और सादे PHP ऐप के लिए जो भी आपका फ्रेमवर्क पढ़ता है।

KPanel में Node.js साइट के लिए सीक्रेट्स टैब

वैल्यूज़ कैसे सुरक्षित होती हैं

प्रत्येक वैल्यू डेटाबेस को छूने से पहले एनक्रिप्ट की जाती है। कुछ भी पठनीय टेक्स्ट के रूप में स्टोर नहीं किया जाता है, और लिस्ट व्यू कभी पूरी वैल्यू नहीं दिखाता है: यह केवल आखिरी चार वर्णों के साथ एक मास्क दिखाता है, ताकि आप दोनों को एक्सपोज़ किए बिना दो समान कीज़ को अलग बता सकें।

प्रत्येक पंक्ति में एक Encrypted पिल होती है जो इसकी याद दिलाता है। वैल्यू को वापस पढ़ना एक अलग, जानबूझकर की गई कार्रवाई है न कि कुछ ऐसा जो सिर्फ पेज खोलने से होता है।

सीक्रेट सेट करना, रिविल करना और डिलीट करना सभी के लिए sites:write अनुमति की आवश्यकता होती है। एक रीड-ऑनली टीम सदस्य देख सकता है कि कौन सी कीज़ मौजूद हैं और उनके मास्क, लेकिन उनकी वैल्यूज़ नहीं।

दो एनवायरनमेंट्स

पेज के शीर्ष पर एक सेग्मेंटेड कंट्रोल production और preview के बीच स्विच करता है। ये पूरी तरह अलग सेट की कीज़ हैं। STRIPE_SECRET_KEY को production में सेट करने से यह preview में नहीं बनता है, और इसे preview से डिलीट करने से production को प्रभावित नहीं होता है।

यह विभाजन इस फीचर का मकसद है। प्रीव्यू बिल्ड्स एकबारी उपयोग की एनवायरनमेंट्स हैं जिन्हें रिपोज़िटरी एक्सेस वाला कोई भी ट्रिगर कर सकता है, इसलिए उन्हें टेस्ट क्रेडेंशियल्स रखने चाहिए, लाइव वाले नहीं। प्रीव्यू एनवायरनमेंट्स कैसे बनाई जाती हैं इसके लिए Preview Deploys For Pull Requests देखें।

सीक्रेट जोड़ना या अपडेट करना

  1. सेग्मेंटेड कंट्रोल के साथ एनवायरनमेंट चुनें।
  2. KEY_NAME फ़ील्ड में नाम टाइप करें। फ़ील्ड जैसे-जैसे आप टाइप करते हैं अपरकेस को मजबूर करता है।
  3. दूसरी फ़ील्ड में वैल्यू डालें। यह टाइप करते समय मास्क की जाती है।
  4. Set पर क्लिक करें।

एक कुंजी सेट करना जो पहले से मौजूद है उसे ओवरराइट करता है। ओवरराइट के लिए कोई अलग एडिट एक्शन नहीं है और कोई कन्फर्मेशन स्टेप नहीं है, इसलिए Set पर क्लिक करने से पहले एनवायरनमेंट टैब की जांच करें।

कुंजी नाम नियम

एक कुंजी को बड़े अक्षर से शुरू होना चाहिए और फिर इसमें 128 वर्णों तक बड़े अक्षर, अंक और अंडरस्कोर हो सकते हैं। DATABASE_URL, API_KEY_V2 और SENTRY_DSN सभी वैध हैं। कुछ और सभी को संदेश के साथ अस्वीकार किया जाता है: Key must be UPPER_SNAKE_CASE letters/numbers/underscore

दो अन्य सीमाएं जानने योग्य हैं:

  • एक वैल्यू खाली नहीं हो सकती। एक खाली वैल्यू सबमिट करने से value required वापस आता है।
  • एक वैल्यू 16 KB से अधिक नहीं हो सकती। यह एक टोकन के लिए उदार है लेकिन पूर्ण प्रमाणपत्र चेन के लिए पर्याप्त नहीं है, जो सीक्रेट के बजाय फ़ाइल में होना चाहिए।

वैल्यू को वापस पढ़ना

पंक्ति पर Copy क्लिक करें। KPanel सर्वर-साइड पर वैल्यू को डिक्रिप्ट करता है और इसे सीधे आपके क्लिपबोर्ड पर डालता है, Value copied to clipboard कन्फर्मेशन के साथ। वैल्यू स्क्रीन पर प्रिंट नहीं की जाती है, इसलिए स्क्रीन शेयर या शोल्डर-सर्फर इसे नहीं उठाते हैं।

प्रत्येक reveal को साइट की ऑडिट ट्रेल में लिखा जाता है, साथ ही किसने किया और कौन सी कुंजी, और Site Activity Log में दिखाई देता है।

यदि आप यह जांचना चाहते हैं कि कोई वैल्यू बिना उजागर किए सही है, तो इसके बजाय मास्क की तुलना करें। आखिरी चार वर्ण इस बात की पुष्टि के लिए पर्याप्त हैं कि आपके पास सही टोकन है, और वे पहले से ही स्क्रीन पर हैं।

अपने ऐप में सीक्रेट का उपयोग करना

वैल्यू को कहीं कॉपी करें जहां आपका एप्लिकेशन सर्वर पर अपनी कॉन्फ़िगरेशन पढ़ता है। एक Node.js ऐप के लिए यह सामान्यतः एक एनवायरनमेंट वेरिएबल है जो आपके प्रोसेस मैनेजर द्वारा सेट किया जाता है, या एक .env फ़ाइल ऐप रूट में जिसे आपका कोड स्टार्टअप पर लोड करता है।

उस फ़ाइल को अपनी रिपोज़िटरी में कमिट न करें। इसे बनाने से पहले .env को .gitignore में जोड़ें। एक सीक्रेट जो git रिमोट में पुश किया गया है उसे लीक किया हुआ माना जाना चाहिए और प्रोवाइडर पर रोटेट किया जाना चाहिए, क्योंकि यह फ़ाइल को डिलीट करने के बाद भी हिस्ट्री में रहता है।

सीक्रेट्स टैब वह रिकॉर्ड है कि वैल्यू क्या है, एनक्रिप्टेड और ऑडिटेड रखी गई है, न कि पासवर्ड मैनेजर में एक नोट या एक मैसेज थ्रेड में। इसे सच्चाई के स्रोत के रूप में रखें: जब आप प्रोवाइडर में कुंजी रोटेट करते हैं, तो एक ही समय में इसे यहां अपडेट करें, ताकि अगले व्यक्ति के पास अगली डिप्लॉयमेंट के समय वर्तमान वैल्यू हो।

सीक्रेट को डिलीट करना

पंक्ति पर Delete क्लिक करें। KPanel आपको Delete {KEY}? के साथ कन्फर्म करने के लिए कहता है और चेतावनी देता है कि ऐप को अगली रीस्टार्ट पर इस वैल्यू का एक्सेस खो जाएगा। कोई अंडू नहीं है और कोई कॉपी रखी नहीं है, इसलिए यदि आपको वैल्यू की फिर से आवश्यकता हो सकती है, तो पहले इसे कॉपी करें।

सीक्रेट को डिलीट करें जब अंतर्निहित क्रेडेंशियल को प्रोवाइडर पर रिवोक किया गया हो, या जब वह कोड हटा दिया गया हो जो इसका उपयोग करता था। स्टेल कीज़ के चारों ओर रखना यह बताना मुश्किल बनाता है, बाद में, कौन सी वास्तव में महत्वपूर्ण हैं।

सुरक्षित तरीके से क्रेडेंशियल को रोटेट करना

सुरक्षित क्रम हमेशा यह है: प्रोवाइडर पर नई क्रेडेंशियल बनाएं, इसे यहां अपडेट करें, डिप्लॉय करें, पुष्टि करें कि ऐप काम करता है, फिर प्रोवाइडर पर पुरानी क्रेडेंशियल को रिवोक करें।

इसे दूसरे तरीके से करना, पहले रिवोक करना, एक विंडो देता है जहां रनिंग ऐप एक मृत क्रेडेंशियल धारण कर रहा है और हर अनुरोध जिसे इसकी आवश्यकता है विफल हो जाता है। यदि परिवर्तन जोखिम भरा है, तो पहले एक बैकअप लें ताकि आप एक ज्ञात-अच्छी स्थिति में वापस जा सकें: Taking a Backup देखें।

समस्या निवारण

सीक्रेट्स टैब मेनू में नहीं है। साइट एक Node.js साइट नहीं है। पेज के शीर्ष पर साइट नाम के आगे स्टैक पिल की जांच करें।

Set बटन कुछ नहीं करता है। दोनों फ़ील्ड आवश्यक हैं। बटन Key + value required रिपोर्ट करता है यदि कोई खाली है।

कुंजी अस्वीकृत की गई थी। छोटे अक्षर, हाइफन, डॉट्स और रिक्त स्थान की अनुमति नहीं है। api-key और Api_Key दोनों विफल होते हैं; API_KEY पास होता है।

Copy ने क्लिपबोर्ड पर कुछ भी नहीं डाला। कुछ ब्राउज़र निष्क्रिय टैब पर क्लिपबोर्ड राइट को ब्लॉक करते हैं। पहले पेज पर क्लिक करें, फिर Copy को फिर से क्लिक करें।

अगले कहां जाएं

  • Preview Deploys For Pull Requests, प्रोडक्शन और प्रीव्यू स्प्लिट का दूसरा आधा।
  • Git Deploy For a Site उस कोड को पुश करने के लिए जो इन वैल्यूज़ को पढ़ता है।
  • Site Activity Log यह देखने के लिए कि किसने सीक्रेट सेट, रिविल या डिलीट किया।

क्या आपको अभी भी सहायता की आवश्यकता है?

हमें ईमेल करें support@kapsulehost.com या KPanel में चैट खोलें।

KPanel खोलें
एक साइट के लिए ऐप सीक्रेट्स को स्टोर करना