‫الآن بعد أن رأينا أسرارًا مع الخدمات ، فلنلقِ نظرة على الأسرار باستخدام الأكوام. في هذا الدليل ، أنا في نموذج أسرار
‫اثنين ، وفي هذا
‫الدليل ، لدي ملف Compose ثم سرين مخزنين في ملفات نصية.
‫إذن هي كلمة المرور وأسماء المستخدمين المشابهة التي كانت لدينا في المحاضرة السابقة ، لكننا
‫الآن حددنا كل هذا في ملف Compose. لدينا عدة أشياء مختلفة هنا.
‫أول شيء هو أن إصدار ملف الإنشاء الآن يجب أن يكون 3. 1. من أجل الحصول على أسرار
‫، يجب أن نكون في. إصدار واحد من 3.
‫لذلك احتجنا إلى الحصول على 3 من أجل استخدام التكديس ، ولكن لاستخدام التكديس مع الأسرار ، نحتاج إلى أن تكون 3. 1 أو أحدث.
‫الشيء الثاني الذي نلاحظه هو أنه هنا في الأسفل لدينا مفتاح أسرار الجذر هذا الآن وهو المكان
‫الذي نحدد فيه أسرارنا.
‫الطريقتان اللتان يمكنك من خلالهما معرفة الأسرار في ملف Compose هما إما استخدام ملف لكل
‫سر ، أو إنشاء الأسرار مسبقًا.
‫نحن هنا في الواقع نستخدم الملفات فقط ، ولكن
‫ما يمكننا فعله هو إنشاء تلك الأسرار بمفردنا بطريقة أخرى إما من خلال CLI ، كما رأيت ، أو
‫ربما من خلال واجهة برمجة التطبيقات مباشرة. ثم بدلاً من الملف: تحته
‫، سيقول فقط خارجي: وسيكون اسم السر داخل قائمة الأسرار.
‫نحتاج إلى إخبار ملف الإنشاء بأسرارنا ومكان وجودها ، ثم نقوم بالفعل بتعيينها
‫للخدمات التي تحتاجها.
‫هذا أمر أساسي لأن ما نقوله هنا حقًا هو أن الحاوية التي تريد سرنا
‫فقط هي التي تحصل على سرنا. إذا كان هذا ملف إنشاء معقدًا حيث كانت لدينا خدمات متعددة ، فقد يكون لدينا
‫أسرار مختلفة للخدمات المختلفة.
‫سنقوم أولاً بتعريفها جميعًا في الأسفل ثم نقوم بتعيينها على وجه التحديد
‫في كل خدمة.
‫سأقول أن هذا يعتبر في الواقع النموذج المختصر أو الطريقة السهلة لكشف الأسرار في إطار
‫الخدمة.
‫يوجد في الواقع نموذج طويل يسمح لك بتحديد أشياء مثل الأذونات والمستخدمين المسموح لهم
‫بالوصول إلى ذلك باستخدام وضع Linux القياسي وبناء جمل معرف المستخدم.
‫لذلك إذا كنت تقوم بتشغيل التطبيقات كمستخدم غير جذر ، فأنت تريد استهداف هذه الأسرار فقط لهذا المستخدم
‫الذي يمكنه الوصول إليها.
‫ولكن من أجل التبسيط في المثال الأول ، فإننا نستخدم فقط الصيغة القصيرة.
‫كل ما علي فعله هو استخدام هذا الملف في أمر نشر مكدس قياسي. لذا ، انشر عامل إنشاء عامل الإرساء
‫، وسنسمي هذا mydb. سترى ، تمامًا كما كان من قبل ، لقد قامت بالفعل بإنشاء الشبكة أولاً.
‫في هذه الحالة ، قام بالفعل بإنشاء الأسرار أولاً ثم إنشاء الخدمة.
‫إذا ذهبت وأجريت بحثًا سريًا في Docker ، فسترى أن الاثنين موجودان هناك ويتبعان نفس اصطلاح
‫التسمية مثل جميع مكونات المكدس الأخرى ، حيث يكون دائمًا اسم المكدس ثم اسم
‫الكائن.
‫تمامًا كما في المحاضرة السابقة ، إذا قفزت إلى خادم SQL وبحثت بالفعل
‫عن تلك الملفات ، فستكون موجودة تمامًا كما كانت من قبل ؛ الآن فقط ، تتم إدارتها داخل ملف المكدس الخاص بنا.
‫الشيء الجميل هنا هو أنه إذا قمت بإزالة مكدس ، فإنه ينظف الأسرار ويتخلص منها. في المثال السابق ، إذا أردنا إزالة
‫أسرارنا ، فسنضطر
‫إلى عمل عامل إرساء سري لإزالة كل منها.
‫فقط
‫كتذكير أخير ، في هذه الأمثلة استخدمنا ملفات نصية على هذا الخادم ، وأننا نتحدث عن سرب ثلاثي العقد
‫هنا.
‫ولكن إذا كنت تعمل في بيئة إنتاج أو حقًا أي شيء غير موجود على جهازك المحلي
‫، فيجب ألا تحتفظ بالأسرار في الملفات أو في ملف محفوظات bash أو أي مكان يمكن أن يكون على هذا
‫المضيف.
‫هذا نوع من هزيمة الغرض من امتلاك الأسرار في المقام الأول. مهما كانت عمليتك للحصول على الأسرار
‫في Swarm ، فقط اعلم أنك قد تحتاج إلى
‫التنظيف بمجرد الانتهاء من هناك حتى لا تترك أسرارًا متبقية يسهل على الأشخاص
‫الحصول عليها.