Architecture Decision Record

Active theme: Light

← निर्णय नोंद उदाहरणे

गुपिते साठवणे

सामग्री:

सारांश

समस्या

आम्हाला पासवर्ड, खासगी की, प्रमाणीकरण टोकन इत्यादी गुपिते साठवायची आहेत.

काही गुपिते वापरकर्ता-केंद्रित आहेत. उदाहरणार्थ, आमच्या विकासकाला त्यांचा मोबाइल फोन वापरून एखाद्या सेवेचा पासवर्ड शोधता यायला हवा.

काही गुपिते प्रणाली-केंद्रित आहेत. उदाहरणार्थ, आमच्या सतत वितरण पाइपलाइनला आमच्या क्लाउड होस्टिंगची क्रेडेन्शियल्स शोधता यायला हवीत.

निर्णय

वापरकर्ता-केंद्रित गुपितांसाठी Bitwarden

प्रणाली-केंद्रित गुपितांसाठी HashiCorp चे Vault.

स्थिती

ठरले. नवीन पर्याय आल्यास आम्ही त्यांच्यासाठी खुले आहोत.

तपशील

गृहीतके

या उद्देशासाठी, आणि आमच्या सध्याच्या स्थितीत, आम्ही वापरण्यायोग्य मोबाइल अॅप्स यांसारख्या वापरकर्ता-केंद्रित सोयीला महत्त्व देतो.

  • ऑन-कॉल सिस्टम विश्वासार्हता अभियांत्रिकी करणाऱ्या विकासकासारख्या व्यक्तीसाठी, प्रवासात जलद सोपा प्रवेश आम्हाला सुनिश्चित करायचा आहे.

  • आम्हाला काही गुपिते निवडक लोकांमध्ये, जसे की संघात, वाटून घेता यावीत.

आम्ही एकल-पुरवठादारासाठी, म्हणजे सर्व गुपिते केवळ Amazon किंवा Azure किंवा Google वर साठवण्यासाठी, उपाय शोधत नाही आहोत.

आम्हाला "लक्षात ठेवा" किंवा "चिठ्ठीवर लिहा" किंवा "साठवण्याचा स्वतःचा मार्ग शोधा" यांसारखे तदर्थ दृष्टिकोन नको आहेत.

या उद्देशासाठी आमचे सुरक्षा मॉडेल SaaS पासवर्ड व्यवस्थापन साधनांसारख्या सुप्रतिष्ठित COTS विक्रेत्यांचा वापर करण्यास मान्य आहे.

मर्यादा

आत्ता आम्हाला असे काहीतरी हवे आहे जे सोपे आहे म्हणजे कोड लिहिण्याची गरज नाही, सर्व्हर बसवण्याची गरज नाही, मोठी बांधिलकी करण्याची गरज नाही, सर्वांना प्रमाणित करण्याची गरज नाही.

मते

आम्ही विचार केला:

१. वापरकर्ता-केंद्रित तयार पासवर्ड व्यवस्थापक: LastPass, 1Password, Bitwarden, Dashlane, KeePass, pass, GPG इत्यादी.

२. प्रणाली-केंद्रित COTS पासवर्ड व्यवस्थापक: AWS KMS, HashiCorp चे Vault, EnvKey, Thycotic चे Secret Server, Devolutions Password Server, Lyft चे Confidant.

३. वाटून घेण्यावर केंद्रित दृष्टिकोन: सामायिक Google दस्तऐवज, किंवा सामायिक Slack चॅनेल, किंवा सामायिक नेटवर्क फोल्डर इत्यादी वापरणे.

४. कमी-तंत्रज्ञानाचे तदर्थ दृष्टिकोन, जसे की लक्षात ठेवणे, चिठ्ठी लिहिणे, किंवा प्रत्येक वापरकर्त्यावर स्वतःचा मार्ग शोधण्यासाठी अवलंबून राहणे.

युक्तिवाद

Bitwarden, LastPass, 1Password आणि Dashlane ही सर्व व्यावसायिक तयार उत्पादने आहेत.

  • वापरकर्ते, संघ, संस्था इत्यादींसाठी तशाच प्रकारची वैशिष्ट्ये.

  • Windows आणि Mac साठी डेस्कटॉप क्षमता, आणि Android आणि iOS साठी मोबाइल क्षमता.

  • फॉर्म आपोआप भरण्यासाठी इत्यादींसाठी Chrome आणि Firefox साठी ब्राउझर विस्तार.

Bitwarden चे इतरांपेक्षा दोन फायदे आहेत:

  • Bitwarden ओपन सोर्स आहे, म्हणजे सुरक्षेचे समवयस्क पुनरावलोकन करता येते आणि सुरक्षा-केंद्रित विकासकांमध्ये कंपनीचे मोठ्या प्रमाणात कौतुक केले जाते.

  • सॉफ्टवेअर कामगारांचे किस्से इतरांपेक्षा Bitwarden ला लक्षणीय पसंती दर्शवतात.

एक सामान्य चांगला लेख: https://jcs.org/2017/11/17/bitwarden

एक सामान्य शेजारी-शेजारी मतदान संकेतस्थळ: https://stackshare.io/stackups/bitwarden-vs-dashlane

आम्ही KeyPass, pass, GPG इत्यादी पुढे ढकलतो कारण त्यात अतिरिक्त गुंतागुंत आहे. हे सर्व तांत्रिक वापरकर्त्यांसाठी चांगले उपाय दिसतात. आदेश-केंद्रित, सर्व-प्रणालींवरील क्षमता हव्या असलेल्या तांत्रिक वापरकर्त्यांसाठी GPG विशेषतः चांगले दिसते.

आम्ही KMS पुढे ढकलतो कारण त्यात एकल-पुरवठादार बंधन आहे.

प्रणाली-केंद्रित गरजांसाठी आम्ही Vault निवडतो, कारण पुनरावलोकने आश्चर्यकारकरीत्या सकारात्मक आहेत, आणि कारण HashiCorp चा उच्च-गुणवत्तेचे सॉफ्टवेअर आणि समर्थन देण्याचा उत्कृष्ट इतिहास आहे.

आम्ही सामायिक दस्तऐवज, सामायिक चॅनेल, सामायिक नेटवर्क फोल्डर इत्यादींद्वारे वाटून घेण्याच्या दृष्टिकोनांना नकार देतो. हे आम्हाला हवे असलेले सुरक्षा गुण देत नाहीत.

आम्ही कमी-तंत्रज्ञानाच्या तदर्थ दृष्टिकोनांना नकार देतो, कारण आम्हा सर्वांना मान्य आहे की हा दीर्घकालीन पुढे जाण्याचा मार्ग नाही.

परिणाम

विकासकांना गुपिते दोन ठिकाणी ट्रॅक करावी लागू शकतात: वापरकर्ता-केंद्रित प्रवेशासाठी Bitwarden, आणि प्रणाली-केंद्रित प्रवेशासाठी Vault.

संबंधित

संबंधित निर्णय

कोणता CI/CD सर्व्हर वापरायचा या निर्णयात गुपितांना प्रवेश करण्याच्या क्षमतेचा पुरावा समाविष्ट असला पाहिजे.

धोरणे, फिरवणे, संस्था इत्यादींच्या दृष्टीने गुपिते कशी व्यवस्थापित करायची हे आम्हाला ठरवावे लागेल.

संबंधित आवश्यकता

गुपितांसाठी अनुपालन, लेखापरीक्षण आणि HR ऑनबोर्डिंग/ऑफबोर्डिंग यांच्या संबंधित आवश्यकता असतील.

संबंधित आर्टिफॅक्ट्स

आम्ही काही गुपिते पर्यावरण चलांमध्ये निर्यात करू अशी अपेक्षा आहे.

संबंधित तत्त्वे

सहज पलटवता येण्याजोगे.

सहज समांतर म्हणजे विविध पासवर्ड व्यवस्थापक वापरणे सोपे आहे.

वापरून पाहण्यास स्वस्त म्हणजे मोफत चाचणी आहे आणि कोणतीही बांधिलकी नाही.

टिपा

मूल्यमापनाच्या टिपा येथे. टिपा या विविध devops चर्चा मंचांवरील सर्व सार्वजनिक टिप्पण्या आहेत.

HashiCorp चे Vault

Vault हेच तुम्हाला येथे हवे आहे.

तरीही Vault थेट उत्पादनात टाकू नका, आधी ते चाचणी वातावरणात उभे करा, कारण HashiCorp ची उत्पादने अद्भुत असली तरी त्यांचे दस्तऐवजीकरण बरेच अपुरे असू शकते.

शिकण्याची चढण खूप तीव्र आहे आणि ते उभे करणे सोपे नाही.

सुरुवातीचा सेटअप थोडा त्रासदायक आहे. तरीही ते फायद्याचे आहे, आणि समुदाय तुम्हाला पुढे जाण्यासाठी पुरेसे समर्थन देईल.

भयंकर दस्तऐवज, पण लोकांनी ते सेट केल्याचे अनेक मार्गदर्शक ऑनलाइन आहेत आणि त्यातील काही एकत्र केल्यास तुमचा सेटअप चालू होईल.

सुरुवातीचा सेटअप त्यांच्या helm chart (vault आणि consul) मध्ये फेरबदल करण्यात गेला. तांत्रिकदृष्ट्या तुम्ही अनेक इतर बॅक-एंड वापरू शकता, तरी मी खरोखर त्याची शिफारस करत नाही. साठवण्यासाठी भरपूर डेटा नसल्यास बॅक-एंड/consul अगदी लहान असू शकतो.

CLI वापरण्यात नक्कीच सोयीस्कर/परिचित व्हा, कारण GUI हे त्यांच्या एंटरप्राइझ आवृत्तीसाठीच्या संकल्पना-सिद्धता/जाहिरात पोर्टलसारखे आहे.

तुम्ही ते फक्त "भरू" शकत नाही हे त्रासदायक आहे. उदाहरणार्थ तुमच्याकडे ५ फील्ड असतील तर तुम्हाला प्रत्येक आयटमसाठी प्रत्येक फील्ड हाताने जोडावे लागेल. म्हणजे एखाद्या विशिष्ट वर्गासाठी फील्ड आधीच परिभाषित करून त्या वर्गातील सर्व आयटमसाठी ते फील्ड भरणे असे नाही, ते "तुम्ही प्रत्येक वेळी सर्वकाही तयार करता" असे अधिक आहे, जे (माझ्या मते) डोकेदुखी आहे.

vault च्या वर UI म्हणून तुम्ही goldfish देखील पाहू शकता. तुमच्या संघाला त्यासोबत सामावून घेणे बरेच छान होते. त्यांच्याकडे डेमो देखील आहे. १. consul सेट करा. २. consul कडे निर्देश करणारा vault सेट करा. ३. vault कडे निर्देश करणारा goldfish सेट करा. ३. बॅकअपसाठी consul snapshot चालवण्यासाठी एखादे cron job सेट करा.

LastPass

LastPass Teams. आम्ही ते वापरतो, त्यात सानुकूल साचे, ACL आहेत, माझ्या मते काहीही गहाळ नाही.

मी माझ्या संस्थेत LastPass लागू केले आणि त्याला C+/B- गुण देतो. अलीकडील सर्वात मोठी समस्या म्हणजे विश्वासार्हतेचा अभाव. गेल्या ९० दिवसांत अनेक तास व्हॉल्ट ऑफलाइन मोडमध्ये सक्तीने टाकले गेले. २०+ सामायिक फोल्डरमध्ये अक्षरशः ४,०००+ पासवर्ड साठवलेले असल्याने माझ्या संस्थेसाठी हे आदर्श नाही. तुम्ही कल्पना करू शकता की इतक्या पासवर्डसह दररोज किमान काही अद्ययावत होतात किंवा जोडले जातात. समस्या एक-दोन तासांपेक्षा जास्त राहिल्यास आमच्याकडे DR योजना आहे: एक स्क्रिप्ट दररोज रात्री व्हॉल्टचा CSV डंप स्वाक्षरीकृत करून एन्क्रिप्ट करते जो keepass मध्ये आयात करता येतो.

LastPass मध्ये अनोंदवलेले सेवा अधःपतनाचे क्षणिक प्रकार झाले आहेत: लॉगिन 'काम करते' पण साइट्स खेचत नाही, अॅडमिन पॅनेलमध्ये यादृच्छिक वैशिष्ट्ये बिघडतात, आणि नवीन सर्वोच्च-स्तरीय सामायिक फोल्डरसाठी की योग्यरीत्या वाटल्या जात नाहीत. माझ्याकडे प्रत्येक गटात असलेला विशिष्ट 'की पुश'/बॅकअप वापरकर्ता आहे. सहसा त्या वापरकर्त्याच्या नावाने लॉग इन केल्यास की वाटपाच्या कोणत्याही समस्या दुरुस्त होतात, पण स्टेटस पेज काहीही सांगत असले तरी सेवा अधःपतित असताना नाही...

एकत्रीकरणासाठी, तुमच्याकडे किमान विशेषाधिकार मॉडेलसह योग्य ACL असतील तर ते सोपे असू शकते, उदा. एखाद्या वापरकर्त्याला एखाद्या नोंदीवर किंवा फोल्डरवर वाचन आणि लेखन व फक्त वाचन असतील तर त्यांना फक्त वाचन परवानग्या मिळतात. दुर्दैवाने माझ्या संस्थेचे ACL सर्वोत्तम नाहीत म्हणून माझ्या शेकडो ACL च्या अवलंबी स्वरूपाचे किमान विशेषाधिकार मॉडेलशी नीट जुळणे नसल्यामुळे मी JSON प्रोव्हिजनिंग API आणि ~५०० ओळींचा python वापरला. मी वापरकर्ता ज्या सर्व ACL मध्ये आहे ते मिळवले आणि एक प्रकारची अवलंबित्व पडताळणी केली.

तुमचे ACL किंवा गट रचना आधीच किमान विशेषाधिकार रचना लक्षात घेऊन बनवली असेल तर Windows साठीचे AD/LDAP सिंक साधन चांगले काम करेल.

त्यांच्या विक्री संघाशी संपर्क साधा आणि ते तुम्हाला दीर्घ Enterprise चाचणी देऊ शकतात. निर्णय घेण्यापूर्वी त्याच्या मर्यादा पूर्णपणे समजून घेतल्याची खात्री करा. आम्हाला वाढीच्या चांगल्या वेदना झाल्या पण सर्व्हर बाजूचे खंड किंवा बिघाड वगळता ते अविश्वसनीयरीत्या सुरळीत राहिले आहे.

Bitwarden

Bitwarden भोवती चांगली साधने आहेत (WebUI, CLI, मोबाइल, डेस्कटॉप). स्वयं-होस्ट करता येते आणि सेट करणे बरेच सोपे आहे. बऱ्यापैकी चांगले दस्तऐवजीकरण आणि PrivacyTools ने शिफारस केलेले साधन.

EnvKey

https://www.envkey.com/ हे एक saas आहे. अंमलात आणणे, एकत्रित करणे आणि व्यवस्थापित करणे खरोखर सोपे.

वैशिष्ट्ये:

  • API की आणि क्रेडेन्शियल्सचे संरक्षण करा.

  • कॉन्फिगरेशन सर्वत्र समकालिक ठेवा.

  • हुशार, एंड-टू-एंड एन्क्रिप्टेड कॉन्फिगरेशन आणि गुपिते व्यवस्थापन.

  • असुरक्षित वाटणी आणि कॉन्फिग पसरणे रोखा.

  • मिनिटांत एकत्रित करा.

क्षमता:

  • तुमच्या सर्व अॅप्स, वातावरणे आणि संघांसाठी कॉन्फिगरेशन आणि प्रवेश स्तर एकाच ठिकाणी व्यवस्थापित करा.

  • फक्त एका पर्यावरण चलाने कोणतेही विकास किंवा सर्व्हर वातावरण कॉन्फिगर करा.

फायदे:

  • चांगले मुख्यपृष्ठ.

  • स्पष्ट मूल्य प्रस्ताव.

  • दृश्यदृष्ट्या उत्कृष्ट वेब अॅप.

  • उत्कृष्ट उदाहरण डेटा उदा. Algolia, AWS, Datadog, GitHub, Stripe इत्यादी.

  • कंपनी, UI इत्यादींबद्दल संस्थापकाशी ३० मिनिटे बोललो. Dane माहितीपूर्ण, फायद्या-तोट्यांबद्दल प्रामाणिक आणि व्यवहार्य भागीदार वाटतो.

  • कंपनी मूलतः १ संस्थापक असलेली सामान्य Y Combinator कंपनी आहे. 2018-01 मध्ये $120K उभे केले.

  • लक्ष एंटरप्राइझ वैशिष्ट्यांपर्यंत पोहोचण्यावर आहे, विशेषतः EnvKey क्लाउड-होस्टिंगवरून ऑन-प्रिम किंवा BYOC कडे जाण्यावर.

  • वापरातील सुलभतेसाठी EnvKey ने सुरुवात करून, नंतर (किंवा समांतरपणे) Vault जोडण्याचा संभाव्य पुढचा मार्ग.

Lyft चे Confidant

https://lyft.github.io/confidant/

Confidant ही ओपन सोर्स गुपिते व्यवस्थापन सेवा आहे जी Lyft मधील विकासकांकडून, गुपितांचा वापरकर्ता-अनुकूल संग्रह आणि सुरक्षित प्रवेश पुरवते.

KMS प्रमाणीकरण: Confidant प्रमाणीकरणाची कोंबडी-आणि-अंडे समस्या AWS KMS आणि IAM वापरून सोडवते, ज्यामुळे IAM भूमिका Confidant द्वारे पडताळता येणारी सुरक्षित प्रमाणीकरण टोकन तयार करू शकतात. Confidant तुमच्या IAM भूमिकांसाठी KMS अनुदानेही व्यवस्थापित करते, ज्यामुळे IAM भूमिका सेवा-ते-सेवा प्रमाणीकरणासाठी किंवा सेवांमध्ये एन्क्रिप्टेड संदेश पाठवण्यासाठी वापरता येणारी टोकन तयार करू शकतात.

आवृत्ती असलेल्या गुपितांचे विश्रांती-स्थितीतील एन्क्रिप्शन: Confidant गुपिते DynamoDB मध्ये फक्त-जोडण्याच्या पद्धतीने साठवते, Fernet सममित प्रमाणीकृत क्रिप्टोग्राफी वापरून प्रत्येक गुपिताच्या प्रत्येक आवृत्तीसाठी अद्वितीय KMS डेटा की तयार करते.

गुपिते व्यवस्थापित करण्यासाठी वापरकर्ता-अनुकूल वेब इंटरफेस: Confidant AngularJS वेब इंटरफेस पुरवते जो अंतिम-वापरकर्त्यांना गुपिते, गुपितांचे सेवांशी मॅपिंग आणि बदलांचा इतिहास सहज व्यवस्थापित करू देतो.

Devolutions Password Server

https://server.devolutions.net/

विशेषाधिकारप्राप्त खाती आणि सत्रांचा प्रवेश सुरक्षित करा, व्यवस्थापित करा आणि त्यावर लक्ष ठेवा.

सर्वसमावेशक, अत्यंत सुरक्षित पासवर्ड व्हॉल्ट जो तुम्हाला तुमच्या विशेषाधिकारप्राप्त खात्यांच्या प्रवेशावर नियंत्रण ठेवू देतो, आणि त्याचवेळी sysadmin साठी एकूण नेटवर्क दृश्यमानता सुधारतो आणि अंतिम वापरकर्त्यांना अखंड अनुभव देतो.

वैशिष्ट्ये: केंद्रीकृत संस्था पासवर्ड व्हॉल्ट, वापरकर्ता-विशिष्ट खासगी व्हॉल्ट, पासवर्ड व्यवस्थापक, क्रेडेन्शियल इंजेक्शन, Active Directory एकत्रीकरण, भूमिका-आधारित प्रवेश नियंत्रण, द्वि-घटक प्रमाणीकरण, उद्योग-सज्ज, IP निर्बंध, व्यवस्थापन क्षमता, स्वयंचलित पासवर्ड जनरेटर, मोबाइल अॅप प्रवेश, पासवर्ड इतिहास, प्रवेश अहवाल, ईमेल सूचना.

  • डेटा एन्क्रिप्शनला समर्थन देते

  • अनेक स्रोतांकडून MFA च्या समर्थनासह LDAP, O365 आणि स्थानिक वापरकर्त्यांसह अनेक प्रमाणीकरण योजनांना समर्थन देते

  • अनेक संघांसाठी सूक्ष्म प्रवेश नियंत्रणांसह अनेक रेपॉझिटरी/व्हॉल्ट

  • आधुनिक वेब UI

  • वैयक्तिक क्रेडेन्शियल/जोडण्यांसाठी खासगी क्रेडेन्शियल आणि जोडणी व्हॉल्ट

  • IOS/Android साठी मोबाइल अॅप्स

  • प्रत्येक नोंदीसाठी लेखापरीक्षण लॉग, कोणी/काय/केव्हा आणि ते प्रवेश का करत आहेत याचा ऐच्छिक प्रश्नासह

  • सानुकूल करता येण्याजोगे साचे (जरी ते शेकडो जोडणी प्रकारांना मूळतः समर्थन देतात)

  • अनेक आणखी वैशिष्ट्ये आणि Windows/Mac जाड क्लायंट (Remote Desktop Manager) ज्याच्याशी तुम्ही सिंक करू शकता आणि जो पर्याय मोठ्या प्रमाणात वाढवतो...एका क्लिकची जोडणी

  • किंमत इतकी वाईट नाही - १५ वापरकर्त्यांपर्यंत पासवर्ड सर्व्हरसाठी वर्षाला $५०० आहे

Thycotic चे Secret Server

https://thycotic.com/products/secret-server/

ऑन-प्रिमाइसेस आवृत्तीची वैशिष्ट्ये:

  • तुमच्या एंड-टू-एंड सुरक्षा प्रणाली आणि पायाभूत सुविधांवर संपूर्ण नियंत्रण

  • सॉफ्टवेअर तुमच्या ऑन-प्रिमाइसेस डेटा सेंटरमध्ये किंवा तुमच्या स्वतःच्या व्हर्च्युअल खासगी क्लाउड इन्स्टन्समध्ये डिप्लॉय करा

  • सर्व डेटा आणि प्रणाली ऑन प्रिमाइसेस असण्याची आवश्यकता असलेली कायदेशीर आणि नियामक बंधने पूर्ण करा

क्लाउड आवृत्तीची वैशिष्ट्ये:

  • सेवा-म्हणून-सॉफ्टवेअर मॉडेल तुम्हाला साइन अप करून लगेच सुरुवात करू देते

  • तुम्ही वाढता तसे लवचिक प्रमाण वाढवण्याची क्षमता

  • 99.9% अपटाइम SLA सह Azure द्वारे पुरवलेली नियंत्रणे आणि अतिरिक्तता

वापरकर्ता अभिप्राय:

  • आम्ही ते उत्पादन वापरत असू. ते खूप सहज टाळता आले आणि नियम फक्त हुशार लोकांसाठीच काम करतात. आळशी किंवा मूर्ख वापरकर्ते संघ क्षेत्रात ते सहज बिघडवू शकतात. त्यांच्याशी बोलल्यास किंमती वाटाघाटीयोग्य असतात.

  • तुम्ही ते SQL express आणि Win 7 बॉक्स वापरून चालवू शकता.

  • स्वस्त.