تأمين أسرارك مع Ansible Vault



تشرح مدونة Ansible vault هذه كيفية تخزين البيانات الحساسة (كلمات المرور / المفتاح السري / ملفات الشهادة) في ملفات مشفرة ومضمنة في Ansible Playbooks.

كلما زاد استخدام التكنولوجيا ، زاد التهديد المحتمل للأمن. يتطلب إعداد Ansible النموذجي منك تغذية 'الأسرار'. يمكن أن تكون هذه الأسرار حرفياً أي شيء ، أو كلمات مرور ، أو رموز API ، أو مفاتيح SSH عامة أو خاصة ، أو شهادات SSL ، وما إلى ذلك. كيف نحافظ على أمان هذه الأسرار؟ يوفر Ansible ميزة تسمى Ansible Vault.

في هذه المدونة ، سأوضح كيفية استخدام Ansible Vault واستكشف بعضًا من أفضل الممارسات للحفاظ على أمان البيانات.





المواضيع المغطاة في هذه المدونة:

إذا كنت ترغب في إتقان DevOps ، ' بالطبع سيكون الخيار المفضل لديك.



ما هو Ansible Vault؟

إن امتلاك بنية تحتية كرمز يمكن أن يشكل تهديدًا بتعريض بياناتك الحساسة للعالم ، مما يؤدي إلى مشكلات أمنية غير مرغوب فيها. Ansible Vault هي ميزة تتيح لك الحفاظ على أمان جميع أسرارك. يمكنه تشفير ملفات كاملة أو كتب تشغيل YAML بأكملها أو حتى بعض المتغيرات. إنه يوفر وسيلة لا يمكنك من خلالها تشفير البيانات الحساسة فحسب ، بل يمكنك أيضًا دمجها في كتيبات اللعب الخاصة بك.

يتم تنفيذ Vault بدقة على مستوى الملف حيث تكون الملفات إما مشفرة بالكامل أو غير مشفرة تمامًا. يستخدم نفس كلمة المرور للتشفير وكذلك لفك تشفير الملفات مما يجعل استخدام Ansible Vault سهل الاستخدام للغاية.

لماذا استخدام Ansible Vault؟

نظرًا لاستخدام Ansible للأتمتة ، فهناك احتمال كبير بأن تحتوي كتيبات التشغيل على بيانات اعتماد معينة أو شهادات SSL أو بيانات حساسة أخرى. يعد حفظ مثل هذه البيانات الحساسة كنص عادي فكرة سيئة. يمكن أن يتسبب ارتكاب خطأ واحد في GitHub أو سرقة الكمبيوتر المحمول في خسارة كبيرة للمؤسسة. هذا هو المكان الذي يأتي فيه Ansible vault في الصورة. إنها طريقة رائعة للحصول على بنية تحتية كرمز ، دون المساومة على الأمان.



لنفترض أن لدينا دليل التشغيل الذي يوفر مثيل EC2 الخاص بك على AWS. تحتاج إلى تقديم معرف مفتاح الوصول إلى AWS ومفتاح AWS السري في دليل التشغيل. لا تشارك هذه المفاتيح مع الآخرين لأسباب واضحة. كيف تبقيهم غير مكشوفين؟ هناك طريقتان - إما تشفير هذين المتغيرين وتضمينهما في قواعد اللعبة أو تشفير قواعد اللعبة بالكامل.

كان هذا مجرد واحد من السيناريوهات حيث يمكن استخدام الخزنة غير الآمنة. يمكننا إما تشفير ملفات كاملة أو مجرد تشفير بعض المتغيرات التي قد تحتوي على بيانات حساسة ثم يقوم Ansible تلقائيًا بفك تشفيرها أثناء وقت التشغيل. الآن يمكننا الالتزام بهذه القيم بأمان في GitHub.

إنشاء ملف مشفر

لإنشاء ملف مشفر ، استخدم ملحق ansible- قبو خلق الأمر وتمرير اسم الملف.

$ ansible-vault يُنشئ filename.yaml

سيُطلب منك إنشاء كلمة مرور ثم تأكيدها عن طريق إعادة كتابتها.

إنشاء قبو غير مرغوب فيه - Ansible Vault - Edureka

بمجرد تأكيد كلمة المرور الخاصة بك ، سيتم إنشاء ملف جديد وسيفتح نافذة تحرير. بشكل افتراضي ، محرر Ansible Vault هو vi. يمكنك إضافة البيانات والحفظ والخروج.

وملفك مشفر.

تحرير الملفات المشفرة

إذا كنت تريد تحرير ملف مشفر ، فيمكنك تحريره باستخدام ansible-vault تحرير أمر.

$ ansible-vault تحرير secrets.txt

حيث يكون secrets.txt ملفًا تم إنشاؤه بالفعل ومشفرًا.

سيُطلب منك إدخال كلمة مرور المخزن. سيتم فتح الملف (الإصدار الذي تم فك تشفيره) في محرر vi ومن ثم يمكنك إجراء التغييرات المطلوبة.

إذا قمت بفحص الإخراج ، فسترى أنه سيتم تشفير نصك تلقائيًا عند الحفظ والإغلاق.

عرض ملف مشفر

إذا كنت ترغب فقط في عرض ملف مشفر ، فيمكنك استخدام ملحق عرض ansible-vault أمر.

عرض ملف $ ansible-vault.yml

مرة أخرى ستتم مطالبتك بكلمة مرور.

وسترى نتيجة مماثلة.

إعادة كتابة كلمة مرور Vault

بالطبع ، هناك أوقات تريد فيها تغيير كلمة مرور المخزن. يمكنك استخدام ال ansible-vault rekey أمر.

ansible-vault rekey secrets.txt

ستتم مطالبتك بكلمة المرور الحالية للمخزن ثم كلمة المرور الجديدة ويتم ذلك أخيرًا عن طريق تأكيد كلمة المرور الجديدة.

تشفير الملفات غير المشفرة

لنفترض أن لديك ملفًا ترغب في تشفيره ، يمكنك استخدام ملحق تشفير غير قابل للتثبيت أمر.

$ ansible-vault تشفير filename.txt

سيُطلب منك إدخال كلمة المرور وتأكيدها وسيتم تشفير ملفك.

الآن بعد أن نظرت إلى محتويات الملف ، فكلها مشفرة.

فك تشفير الملفات

إذا كنت تريد فك تشفير ملف مشفر ، يمكنك استخدام ansible-vault فك تشفير أمر.

$ ansible-vault فك تشفير filename.txt

كالعادة ، سيطالبك بإدخال كلمة مرور المخزن وتأكيدها.

تشفير متغيرات محددة

أفضل الممارسات أثناء استخدام Ansible Vault هي تشفير البيانات الحساسة فقط. في المثال الموضح أعلاه ، لا يرغب فريق التطوير في مشاركة كلمة المرور الخاصة بهم مع فريق الإنتاج والفريق المرحلي ، ولكنهم قد يحتاجون إلى الوصول إلى بيانات معينة لتنفيذ مهمتهم الخاصة. في مثل هذه الحالات ، يجب أن تقوم فقط بتشفير البيانات التي لا تريد مشاركتها مع الآخرين ، وترك الباقي كما هو.

يسمح لك Ansible Vault بتشفير متغيرات محددة فقط. يمكنك استخدام ال ansible-vault encrypt_string الأمر لهذا.

encrypt_string $ ansible-vault

سيُطلب منك إدخال كلمة مرور المخزن ثم تأكيدها. يمكنك بعد ذلك البدء في إدخال قيمة السلسلة التي ترغب في تشفيرها. اضغط على ctrl-d لإنهاء الإدخال. الآن يمكنك تعيين هذا المشفرالقيمةلسلسلة في كتاب التشغيل.

يمكنك أيضًا تحقيق نفس الشيء في سطر واحد.

$ ansible-vault encrypt_string 'سلسلة' - اسم 'Variable_name'

فك تشفير الملفات أثناء وقت التشغيل

إذا كنت ترغب في فك تشفير ملف أثناء وقت التشغيل ، فيمكنك استخدام - مهمة قبو تمريرة علم.

$ ansible-playbook launch.yml --ask-vault-pass

سيؤدي هذا إلى فك تشفير جميع الملفات المشفرة التي يتم استخدامها من أجل تشغيل play.yml playbook هذا. أيضًا ، هذا ممكن فقط إذا تم تشفير جميع الملفات بنفس كلمة المرور.

يمكن أن تصبح مطالبات كلمة المرور مزعجة. يصبح الغرض من الأتمتة عديم الجدوى. كيف نجعل هذا أفضل؟ Ansible له ميزة تسمى 'ملف كلمة المرور' والتي تشير إلى ملف يحتوي على كلمة المرور. يمكنك بعد ذلك فقط تمرير ملف كلمة المرور هذا أثناء وقت التشغيل لأتمتة ذلك.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt

من الممكن أيضًا وجود برنامج نصي منفصل يحدد كلمات المرور. تحتاج إلى التأكد من أن ملف البرنامج النصي قابل للتنفيذ وأن كلمة المرور مطبوعة على الإخراج القياسي حتى تعمل دون أخطاء مزعجة.

كيفية الإدلاء بمضاعفة كثافة العمليات
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py

استخدام معرف Vault

معرف Vault هو طريقة لتوفير معرف لكلمة مرور مخزن معينة. يساعد Vault ID في تشفير الملفات المختلفة بكلمات مرور مختلفة ليتم الرجوع إليها داخل دليل التشغيل. ظهرت ميزة Ansible هذه مع إصدار Ansible 2.4. قبل هذا الإصدار ، كان يمكن استخدام كلمة مرور واحدة فقط لخزينة في كل عملية تنفيذ لقواعد اللعبة.

إذا كنت ترغب الآن في تنفيذ Ansible playbook الذي يستخدم ملفات متعددة مشفرة بكلمات مرور مختلفة ، فيمكنك استخدام Vault ID.

$ ansible-playbook - vault-id vault-pass1 --vault-id vault-pass2 filename.yml

بهذا ، وصلنا إلى نهاية مدونة Ansible Vault هذه. إنه لأمر مدهش اللحاق بالتكنولوجيا وتحقيق أقصى استفادة منها ولكن ليس من خلال المساومة على الأمن. هذه واحدة من أفضل الطرق للحصول على البنية التحتية كرمز (IaC).

إذا وجدت هذه المقالة مفيدة ، تحقق من ' مُقدم من Edureka. يغطي جميع الأدوات التي جعلت صناعة تكنولوجيا المعلومات أكثر ذكاءً.

لديك سؤال لنا؟ الرجاء نشره على وسنعاود الاتصال بك.