विचार यह है कि हमारे सभी संवेदनशील डेटा [...]
इस वाक्य में "सभी" का अर्थ उस योजना को लागू करने से पहले बहुत सावधानी से विश्लेषण किया जाना चाहिए।
Ansible वॉल्ट एक बहुत ही उपयोगी उपकरण है, लेकिन इसका उपयोग केवल उन रहस्यों को संग्रहीत करने के लिए किया जाना चाहिए जो हैं:
- विशेष रूप से ansible परिनियोजन के लिए आवश्यक है
- आसानी से मालिकों के लिए बेकार बना दिया जाना चाहिए जो उनके बारे में अनभिज्ञ हों, लेकिन यह नाजायज रूप से उन्हें "याद" कर सकता है (आमतौर पर ऑफ-बोर्ड किए गए कर्मचारी)
दूसरा बिंदु महत्वपूर्ण है।
बहुत से लोग, और संभावित रूप से पूरी DevOps टीम, के पास पहुंच योग्य वॉल्ट पासवर्ड और इसलिए सभी रहस्य होंगे।
इसलिए, तिजोरी में संग्रहीत सभी रहस्यों के लिए, एक शर्त होनी चाहिए जिसके लिए किसी व्यक्ति या मशीन के पास अनधिकृत पहुंच हो, यदि वह वांछित है, तो उनका कोई उपयोग करने में असमर्थ होना चाहिए।
ठोस शब्दों में, यदि आप डेटाबेस और उसके उपयोगकर्ताओं को तैनात करने के लिए ansible का उपयोग करते हैं, तो आप पासवर्ड को तिजोरी में स्टोर कर सकते हैं, लेकिन आपको बहुत सावधानी बरतनी होगी (और सबसे अधिक संभावना एक अन्य समाधान पर विचार करें) यदि वह सेवा इंटरनेट से उपलब्ध होगी। और किसी भी वीपीएन प्रमाणीकरण की आवश्यकता के बिना!
उपयोगकर्ता (DevOps) गुप्त के संपर्क में, "याद रहे" पासवर्ड का उपयोग करने में असमर्थ होना चाहिए, यदि एक सुरक्षा अवरोधक उन पर लगाया जाता है (उदाहरण के लिए, वीपीएन एक्सेस निरस्त)। इसके अलावा, स्रोत कोड रिपॉजिटरी (जहां वॉल्ट संग्रहीत है) तक पहुंच को पासवर्ड बदलने से पहले ही रद्द कर दिया जाना चाहिए।
इन शर्तों के तहत, एसिबल वॉल्ट एक बहुत ही उपयोगी उपकरण है।
तिजोरी में इंटरनेट पर किसी भी व्यक्ति या मशीन द्वारा उपयोग किए जा सकने वाले रहस्य को संग्रहीत करने की कोशिश एक गलती के बजाय होगी (उदाहरण के लिए, उपयोगकर्ताओं के वीपीएन क्रेडेंशियल)।
क्या कोई अन्य विकल्प है, जो ansible-वॉल्ट पासवर्ड को स्टोर करने का सबसे अच्छा (और सुरक्षित) तरीका है
पिछले पैराग्राफ से शर्तों के तहत, मुझे लगता है कि एक अच्छा अभ्यास होगा:
- तिजोरी का पासवर्ड किसी बाहरी सुरक्षित तिजोरी ( HashiCorp की तिजोरी या क्रेडेंशियल मैनेजमेंट के लिए कोई सास) से संग्रहीत करें
- DevOps को बाहरी तिजोरी आइटम तक पहुँचने की अनुमति दें (उन्हें परीक्षण के लिए पासवर्ड की आवश्यकता होगी) और CI / CD सिस्टम या ansible custom
रहस्यों का उपयोग करने के लिए एक सम्मेलन रखें ! आप रहस्यों में परिवर्तन की समीक्षा नहीं कर पाएंगे और आप रहस्यों की फाइलों में मौजूद चरों के लिए जीआरपी नहीं बना पाएंगे! इसलिए शुरुआत से ही पूरी तरह से तैयार रहें। एक अच्छा सम्मेलन एक secret_
उपसर्ग के साथ ansible वॉल्ट में संग्रहीत सभी चर का नाम है । जब आप कुछ इस तरह देखेंगे:
postgres.yml:
postgres_password: "{{ secret_postgres_password }}"
आपको पता चल जाएगा कि मूल्य को अनजान तिजोरी में रखा गया है।