المكاسب:
- القدرة على إنتاج كود IaC (Terraform، Ansible) باستخدام الذكاء الاصطناعي مع أضيق الأذونات والافتراضيات الآمنة وفهم النهج التعريفي
- القدرة على منع فقدان البيانات من خلال قراءة خطوط الحذف والتقاطها وفرض استبدالها قبل تطبيق مخرجات الخطة/التحقق
- القدرة على منع التسرب السري عن طريق الحفاظ على ملف الحالة مشفرًا ومقفلاً في الواجهة الخلفية البعيدة وتقسيم التغييرات إلى خطوات صغيرة يمكن عكسها
إدارة البنية التحتية كرمز (IaC): Terraform وAnsible والتحكم في الخطة باستخدام الذكاء الاصطناعي
في الماضي، كان إعداد الخادم يتم من خلال النقرات اليدوية والأوامر والملاحظات الشخصية؛ وكانت النتيجة خوادم "ندفة الثلج" غير القابلة للتكرار والتي لم يكن أحد يعرف بالضبط كيفية إعدادها. البنية التحتية كرمز (IaC) هي النهج الذي ينهي هذه الفوضى: لا يتم تحديد الخوادم والشبكات وقواعد الأمان يدويًا، ولكن من خلال ملفات نصية قابلة للإصدار (رمز). عند تشغيل هذا الكود، يتم إعداد البنية الأساسية تمامًا كما كتبتها - وهي نفسها، وموثقة، وقابلة للتكرار في كل مرة. الأدوات الأكثر شيوعًا هي Terraform وCloudFormation للبنية التحتية السحابية وAnsible لتكوين الخادم. هنا الذكاء الاصطناعي ماهر جدًا في كتابة وشرح ومراجعة كود IaC هذا. لكن قوة IaC تشكل أيضًا خطرًا: إذ يمكن لخط واحد خاطئ أن يمحو بنية تحتية بأكملها؛ لذلك يكتب الذكاء الاصطناعي الكود، تقرأ "الخطة"، توافق عليها وتنفذها.
سنناقش في هذه الوحدة المنهج التصريحي، وتمييز الخطة/التطبيق، وأمن الدولة والعجز؛ سوف تتعلم إنشاء IaC باستخدام الذكاء الاصطناعي والمهارة الأكثر أهمية، وهي "التحكم في الخطة".
التفكير بشكل تصريحي: "ماذا لو"، وليس "كيف نفعل"
معظم أدوات IaC تعريفية: تصف الحالة النهائية للنظام ("دعنا نقول 3 خوادم ويب، وموازن تحميل واحد")، وتحسب الأداة نفسها كيفية الوصول إلى تلك الحالة. وهذا يختلف عن كتابة السيناريو ("افعل هذا، ثم افعل ذلك" خطوة بخطوة). الميزة الكبرى للنهج التصريحي هي العجز: حتى لو قمت بتشغيل الكود عشر مرات، فإن النتيجة هي نفسها، لأن الأداة تتحقق لمعرفة ما إذا كانت الحالة المطلوبة موجودة بالفعل، وإذا كانت موجودة، فإنها لا تلمسها. تذكر هذا الاختلاف عندما تكتب IaC إلى الذكاء الاصطناعي: فأنت تجعله يقول "دع حالة البنية التحتية هذه"، وليس "تشغيل هذه الأوامر".
التخطيط/التطبيق: درابزين الأمان الأكثر أهمية
الميزة المنقذة للحياة في IaC هي خطوة الخطة. في Terraform، تنتج خطة terraform، في وضع Ansible، --check معاينة "ما سيتغير إذا قمت بتطبيقه" قبل تشغيل الكود: "ستتم إضافة موردين، وسيتغير 1، وسيتم حذف 0". هذه هي الطريقة الوحيدة لمقارنة نيتك بالواقع قبل التنفيذ. القاعدة الحاسمة: لا تقدم أبدًا دون قراءة الخطة. ابحث بشكل خاص عن خطوط "التدمير"؛ إذا رأيت "12 سيتم حذفه" بدلاً من "1 سيتم تغييره" بسبب خطأ مطبعي، فإن الخطة قد أنقذتك من كارثة. بعد طباعة الكود على الذكاء الاصطناعي، اطلب منه "فحص مخرجات الخطة معي سطرًا تلو الآخر، ووضع علامة على كل سطر يحتوي على الحذف/الاستجمام."
تنبيه: تؤدي بعض التغييرات في Terraform إلى "تدمير وإعادة إنشاء" أحد الموارد بدلاً من "التحديث في مكانه". وهذا يعني فقدان البيانات لقاعدة البيانات. يعد تجاهل -/+ أو "استبدال القوات" في مخرجات الخطة أحد أكثر الأخطاء تكلفة.
ملف الدولة: سجل الأسرار والحقيقة
تحافظ أدوات مثل Terraform على الحالة الحالية للبنية التحتية التي تديرها في ملف حالة. هذا الملف بالغ الأهمية لسببين. أولاً، قد تحتوي على أسرار (كلمات مرور قاعدة البيانات، قد تقع المفاتيح في حالة نص عادي)؛ لذلك، لا تلصق الحالة أبدًا في مستودع عام أو في الذكاء الاصطناعي، واحتفظ بها في واجهة خلفية بعيدة مشفرة ومقيدة الوصول. ثانياً، إذا فسدت الدولة أو ضاعت، تفقد المركبة الصلة بين البنية التحتية الحقيقية والبنية التحتية المتخيلة؛ ولذلك، فإن النسخ الاحتياطي للحالة وآلية القفل (القفل الذي يمنع شخصين من كسره في نفس الوقت) ضروريان.
خطوة بخطوة: تأمين IaC باستخدام الذكاء الاصطناعي
- نية الدولة ومقدمها. "خادمان على AWS، مع Terraform، في هذه المنطقة، بهذا الحجم، ومجموعة أمان." إذا كانت السحابة والأداة والإصدار واضحة، فسيقوم الذكاء الاصطناعي بإنتاج بناء الجملة الصحيح.
- طلب الإعدادات الافتراضية الأمنية. "افتح مجموعة الأمان، وقم بتمكين التشفير، واستخرج الأسرار للمتغير، وامنح حق الوصول العام." يمكن للذكاء الاصطناعي إنشاء عينات فضفاضة افتراضيًا.
- قراءة وفهم الكود. افهم كل مورد، وكل إذن، سطرًا تلو الآخر. لا تطبق إذنًا لا تفهمه.
- الحصول على خطة وتدقيقها. تشغيل الخطة/--التحقق، وفحص الإخراج باستخدام الذكاء الاصطناعي، ووضع علامة على خطوط الحذف وإعادة البناء.
- تطبيق صغيرة وقابلة للعكس. قم بتنفيذ تغيير كبير في أجزاء صغيرة، وليس دفعة واحدة. تعرف طريق العودة في كل خطوة.
- حماية الدولة. استخدم الواجهة الخلفية والمشفرة عن بعد والقفل؛ لا تتسرب الحالة أبدًا.
ثلاث حالات صغيرة
الحالة 1 - استعادت الخطة قاعدة بيانات. أراد أحد المهندسين زيادة حجم قاعدة البيانات باستخدام كود Terraform الذي أنتجه باستخدام الذكاء الاصطناعي. بينما كان يتوقع "1 للتغيير" في مخرجات خطة التضاريس، رأى "1 للتدمير، 1 للإضافة" - كانت المعلمة التي اختارها تؤدي إلى إعادة البناء، وليس التحديث الموضعي، مما يعني أنه سيتم حذف جميع البيانات. أوقف التحكم في الخطة فقدان البيانات الذي لا رجعة فيه قبل تنفيذه.
الحالة 2 - العودة من التخلف عن السداد. طلب فريق من الذكاء الاصطناعي رمز جدار الحماية. لتشغيل المثال، أنشأ الذكاء الاصطناعي قاعدة بسيطة تبلغ 0.0.0.0/0، وتعني "عامة على الإنترنت". لاحظ المهندس ذلك أثناء قراءة الكود وقام بتضييق نطاق الوصول إلى نطاق IP الخاص بالمؤسسة فقط. وإذا تم تنفيذها دون أن تخضع للتدقيق، فستكون قاعدة البيانات مفتوحة للإنترنت بالكامل.
الحالة 3 - منع تسرب الحالة. كان أحد الأعضاء المبتدئين على وشك لصق ملف terraform.tfstate بدون تغيير في أداة عامة لحل مشكلة Terraform. توقف أحد كبار المهندسين: تحتوي الحالة على كلمة مرور قاعدة بيانات نصية عادية. وبدلاً من ذلك، تمت مشاركة ملخص تم فك تشفيره يصف المشكلة وتم نقل الحالة إلى الواجهة الخلفية المشفرة عن بعد.
أربعة قوالب قابلة للنسخ
1) إنشاء موارد IaC (الافتراضي الآمن):
دورك: كبير مهندسي البنية التحتية السحابية. [سحابة، على سبيل المثال. AWS] لـ [أداة، على سبيل المثال. Terraform] إنشاء التعليمات البرمجية. الغرض: [الغرض].قواعد الأمان: الوصول العام (0.0.0.0/0) مفتوح؛ البدء بأضيق نطاق؛ تشغيل التشفير استخراج الأسرار إلى متغيرات، لا تقم بتضمينها في التعليمات البرمجية؛ تحقق من الإعدادات التي قد تؤدي إلى الحذف/الاستجمام. اشرح كل مصدر بتعليق مختصر.
2) خطة تدقيق المخرجات:
يوجد أدناه مخرجات [خطة Terraform / فحص Ansible]. أخبرني: (1) كم عدد الموارد التي ستتم إضافتها/تغييرها/حذفها، (2) ضع علامة أيضًا على أسطر "التدمير" أو "استبدال القوات" التي تشكل خطر فقدان البيانات، (3) قم بإدراج أي تغييرات تبدو غير متوقعة أو خطيرة. الإخراج: [الخطة]
3) مراجعة أمان رمز IAC:
افحص كود IaC التالي للأمان: (1) هل هناك وصول/أذونات واسعة للغاية، (2) هل تم إيقاف التشفير، (3) هل هناك أسرار مضمنة في الكود، (4) هل هناك موارد متاحة للعامة؟ اقترح التصحيح لكل نتيجة. الكود: [الكود المقنع]
4) قسّم التغيير إلى أجزاء آمنة:
لا أريد تنفيذ هذا التغيير الكبير في البنية التحتية [شرح] مرة واحدة. قم بتقسيمها إلى خطوات صغيرة مستقلة يسهل الرجوع إليها. في كل خطوة: ما الذي يتغير، ما الذي يجب علي الانتباه إليه في الخطة، وكيف يمكنني التراجع عنه إذا كانت هناك مشاكل؟
موجه ضعيف / موجه قوي
حث ضعيف:
اكتب كود Terraform الذي ينشئ خادمًا على AWS.
المنطقة والحجم والأمن والشبكة والتشفير غير واضحة. ينتج الذكاء الاصطناعي الإعدادات الافتراضية الأكثر وضوحًا ووضوحًا للعمل - إذا تم وضعها في الإنتاج، فستكون ثغرة أمنية.
مطالبة قوية:
دورك: كبير مهندسي البنية التحتية السحابية. حدد خادم ويب باستخدام Terraform على AWS eu-central-1: t3.small، فقط من نطاق IP الخاص بالشركة (سأقدمه مع متغير)، المنفذ 443 مفتوح، القرص مشفر، لا يوجد وصول عام، التسميات إلزامية. يتم الكشف عن الأسرار للمتغير. بعد الكود: قبل تنفيذه، أخبرني بأنواع الخطوط الثلاثة التي يجب أن أهتم بها في الخطة واشرح مسار العودة.
المرحلة
خطر
درابزين السلامة
رمز الكتابة
افتراضي فضفاض (عام)
أضيق إذن + قراءة
خطة / الاختيار
الحذف دون أن يدركوا ذلك
خطة التفتيش، وتدمير العلامات
تطبيق
تغيير كبير لمرة واحدة
خطوات صغيرة قابلة للعكس
إدارة الدولة
تسرب الصقيل والتشويه
الواجهة الخلفية المشفرة عن بعد + القفل
الأخطاء الشائعة
- التقديم دون قراءة الخطة. الخطة تنذر بالحذف وإعادة البناء؛ إذا تم تخطيه، فإن فقدان البيانات أمر لا مفر منه.
- عدم ملاحظة الافتراضي فضفاضة. تنتج مثيلات الذكاء الاصطناعي في كثير من الأحيان 0.0.0.0/0؛ إذا تم نقله إلى الإنتاج، فهذا يعني أنه مفتوح المصدر للإنترنت بالكامل.
- حالة التسرب. يؤدي تصدير ملف الحالة إلى الذكاء الاصطناعي أو المستودع المفتوح إلى الكشف عن أسرار النص العادي.
- تضمين الأسرار في التعليمات البرمجية. تعد كتابة كلمة المرور في كود IaC بمثابة تسرب مستمر في سجل إصدار الكود.
- خطأ في إعادة البناء للتحديث. سيؤدي تجاهل خط استبدال القوات إلى فقدان البيانات في قواعد البيانات.
نصيحة: حتى عند إعطاء مخرجات الخطة إلى الذكاء الاصطناعي لمراجعتها، اتخذ القرار النهائي بناءً على معرفتك الخاصة، وليس نص الخطة. يلخص الذكاء الاصطناعي الخطة ويحدد الخطوط الخطرة؛ لكن إجابة السؤال "هل هذا الحذف مقبول" تعتمد على سياق عملك.
باختصار
يوفر IaC إمكانية التكرار والتوثيق من خلال إدارة البنية الأساسية باستخدام تعليمات برمجية قابلة للإصدار بدلاً من النقرات اليدوية. يعد الذكاء الاصطناعي شريكًا قويًا في كتابة هذا الرمز ووصفه ومراجعته لأغراض الأمان. لكن قوة IaC هي خطرها: يمكن لخط واحد أن يمحو البنية التحتية بأكملها. فكر في التصريح، وابدأ بأضيق نطاق، وقم بإصلاح الإعدادات الافتراضية الفضفاضة، واحتفظ بالأسرار خارج التعليمات البرمجية والحالة. إن حاجز الحماية الأكثر أهمية هو خطوة التخطيط/التحقق: لا يتم التنفيذ مطلقًا دون قراءة سطور الحذف وإعادة البناء. حافظ على الحالة مشفرة ومقفلة وبعيدة. الكود هو الذكاء الاصطناعي، والقرار لك.
مهمة التطبيق
اختر هدفًا صغيرًا للبنية الأساسية (على سبيل المثال، جهاز ظاهري واحد وقاعدة أمان). باستخدام قالب "إنشاء موارد IaC" أعلاه، اطلب من الذكاء الاصطناعي الحصول على رمز ذي إعدادات افتراضية آمنة. تحقق مرة أخرى من الكود باستخدام قالب "مراجعة أمان كود IaC" وحاول العثور على إعداد فضفاض واحد على الأقل. إذا كان ذلك ممكنًا، قم بتشغيل الخطة/--التحقق من حساب اختباري ومراجعة المخرجات باستخدام قالب "التحقق من مخرجات الخطة"؛ معرفة ما إذا كان هناك سطر حذف أو إعادة إنشاء. اكتب النتائج التي توصلت إليها وكيف ستؤمن الدولة في 6 نقاط.
قائمة مرجعية
- [ ] هل قمت بتحديد السحابة والأداة والإصدار للذكاء الاصطناعي وطلب التعليمات البرمجية بأضيق الأذونات؟
- [ ] هل قمت بفحص الكود بحثًا عن الإعدادات الافتراضية السائبة (0.0.0.0/0، التشفير المغلق)؟
- [ ] هل قمت باستخراج أسرار المتغير بدلاً من تضمينها في الكود؟
- [ ] هل قرأت مخرجات الخطة/التحقق ووضعت علامة على سطور الحذف قبل التقديم؟
- [ ] هل قمت بتقييم تأثير فقدان البيانات الناتج عن "استبدال القوات"/إعادة بناء الخطوط؟
- ألم أحتفظ بملف الحالة [ ] مشفرًا ومقفلاً في الواجهة الخلفية البعيدة وقمت بتسريبه؟