DevSecOps للبنية الأساسية كتعليمة برمجية (IaC)

Microsoft Sentinel
Azure Monitor
GitHub

أفكار الحل

تصف هذه المقالة فكرة الحل. يمكن لمهندس السحابة الخاص بك استخدام هذه الإرشادات للمساعدة في تصور المكونات الرئيسية لتنفيذ نموذجي لهذه البنية. استخدم هذه المقالة كنقطة بداية لتصميم حل جيد التصميم يتوافق مع المتطلبات المحددة لحمل العمل الخاص بك.

توضح فكرة الحل هذه البنية الأساسية لبرنامج ربط العمليات التجارية DevSecOps باستخدام GitHub لـIaC وكيفية التحكم في سير العمل لتميز العملية والأمان وتحسين التكلفة.

Terraform هي علامة تجارية لـHashicorp. لا يتضمن استخدام هذه العلامة أي مصادقة.

بناء الأنظمة

رسم تخطيطي يوضح بنية DevSecOps ل IaC.

قم بتنزيل ملف Visio لهذه البنية.

تدفق البيانات

  1. مع التطوير القائم على الاختبار، يمكنك التحقق من تغييرات التعليمات البرمجية لتعريفات البنية الأساسية، مثل قوالب IaC، في GitHub المستودعات. يمكنك تطوير اختبارات الوحدة واختبارات التكامل وPaC في نفس الوقت لاختبار جودة IaC.
  2. تؤدي طلبات السحب (PRs) إلى تشغيل اختبار الوحدة التلقائي من خلال إجراءات GitHub.
  3. يمكنك تكوين عملية سير عمل GitHub Actions لاختبار IaC مع حالات البنية الأساسية والخطط المنشورة محليًا.
  4. يمكنك تكوين إجراءات GitHub للفحص بحثًا عن جودة التعليمات البرمجية ومشكلات الأمان. ثم يمكنك استخدام أدوات فحص الأمان المبنية على CodeQL الخاص GitHub للفحص بحثًا عن الثغرات الأمنية على IaC. إذا تم الكشف عن ثغرة أمنية، GitHub يرسل تنبيهات إلى المؤسسة أو إلى مالكي المستودعات ومشرفي الصيانة.
  5. توفر أداة IaC الموارد لكل بيئة، وحجمها المخصص، وعدد المثيلات، وخصائص أخرى وتعدلها. يمكنك تشغيل اختبارات التكامل التلقائية لـIaC على الموارد المتوفرة.
  6. عندما يكون التحديث اليدوي للبنية الأساسية ضروريًا، يتم رفع وصول المسؤول المعين لإجراء التعديلات. بعد التعديل، تتم إزالة الوصول المرتفع، ويجب تسجيل مشكلة في GitHub لمصالحة IaC. تعتمد خطوات التسوية وإمكانيتها على أدوات IaC المحددة.
  7. تراقب SecOps باستمرار التهديدات الأمنية والثغرات الأمنية وتدافع عنها. يفرض Azure Policy حوكمة السحابة.
  8. عند الكشف عن حالة شاذة، يجب طرح مشكلة تلقائيًا في GitHub للتصحيحات.

المكونات

  • GitHub هو نظام أساسي لاستضافة التعليمات البرمجية للتحكم في الإصدار والتعاون. يحتوي مستودع التحكم في المصدر GitHub على جميع ملفات المشروع ومحفوظات المراجعة الخاصة بهم. يُمكن للمطورين العمل معًا للمساهمة في التعليمات البرمجية ومناقشتها وإدارتها في المستودع.
  • توفر GitHub Actions مجموعة من مهام سير عمل الإنشاء والإصدار التي تغطي التكامل المستمر (CI) والاختبار التلقائي ونشر الحاويات.
  • يوفر GitHub الأمان المتقدم ميزات لتأمين IaC الخاص بك. يتطلب ترخيصًا آخر.
  • يوفر CodeQL أدوات فحص الأمان التي تعمل على التعليمات البرمجية الثابتة للكشف عن التكوينات الخاطئة للبنية الأساسية.
  • Terraform هو منتج تابع لجهة شريكة طورته HashiCorp يسمح بأتمتة البنية الأساسية على Azure وعلى بيئات أخرى.
  • يوفر Microsoft Defender for Cloud إدارة أمان موحدة وحماية متقدمة ضد التهديدات عبر أحمال عمل المجموعة المختلطة.
  • Azure Sentinel هو حل SIEM أصلي في السحابة، والاستجابة التلقائية لتنظيم الأمان (SOAR). ويستخدم الذكاء الاصطناعي المتقدمة وتحليلات الأمان لمساعدتك في اكتشاف التهديدات والاستجابة لها عبر مؤسستك.
  • تساعد Azure Policy الفرق على إدارة مشكلات تكنولوجيا المعلومات ومنعها من خلال تعريفات النهج التي يمكنها فرض قواعد للموارد السحابية. على سبيل المثال، إذا كان مشروعك على وشك نشر جهاز ظاهري مع SKU غير معروف، فإن نهج Azure ينبهك إلى المشكلة ويوقف النشر.
  • يجمع Azure Monitor بيانات تتبع الاستخدام للتطبيق ويحللها، مثل مقاييس الأداء وسجلات النشاط. عندما تحدد هذه الخدمة الظروف غير النظامية، فإنها تنبه التطبيقات والموظفين.

تفاصيل السيناريو

من الناحية المفاهيمية، يشبه DevSecOps للبنية الأساسية كتعليق برمجي (IaC) DevSecOps للتعليمات البرمجية للتطبيق على AKS. ولكنك تحتاج إلى مجموعة مختلفة من المسارات والأدوات لإدارة وأتمتة التكامل المستمر والتسليم المستمر (CI/CD) لـIaC.

عند اعتماد IaC، من المهم إنشاء اختبارات التنفيذ التلقائي في أثناء تطوير التعليمات البرمجية. تقلل هذه الاختبارات من تعقيد اختبار IaC عند تحجيم حمل العمل الخاص بك. يمكنك استخدام حالات تكوين البنية الأساسية المحلية مثل حالات Terraform وخطط تطوير تستند إلى الاختبار (TDD) لـIaC. تحاكي حالات التكوين هذه عمليات النشر الفعلية. يمكنك تشغيل اختبارات التكامل ل IaC على عمليات نشر البنية الأساسية الفعلية باستخدام Azure Resource Graph REST API.

النهج كتعليق برمجي (PaC) هو أيضًا طريقة مهمة لتقديم البنية الأساسية المتوافقة مع اللوائح وحوكمة الشركات. يمكنك إضافة مهام سير عمل PaC إلى البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك لأتمتة حوكمة السحابة.

يقلل تأمين البنية الأساسية في وقت مبكر من مرحلة التطوير من مخاطر التكوين الخاطئ للبنية الأساسية التي تفتح نقاطا للهجوم بعد النشر. يمكنك دمج أدوات تحليل التعليمات البرمجية الثابتة للبنية الأساسية مثل Synk أو Aquasecurity tfsec باستخدام CodeQL الخاص GitHub، لفحص مشكلات الأمان في التعليمات البرمجية للبنية الأساسية. تشبه هذه العملية اختبار أمان التطبيق الثابت (SAST).

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

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

من المهم مراقبة بيئة السحابة باستمرار بحثًا عن التهديدات والثغرات الأمنية لمنع الحوادث الأمنية. يمكنك استخدام أدوات الحماية من التهديدات ومعلومات الأمان وإدارة الأحداث (SIEM) للكشف عن نسبة استخدام الشبكة غير الطبيعية. تنبه هذه الأدوات مسؤولي الأمان تلقائيًا وتثير مشكلة في GitHub للانتباه.

حالات الاستخدام المحتملة

أنت جزء من فريق مركزي من مطوري IaC يستخدم استراتيجية متعددة السحابات لشركة Contoso الخيالية. تريد نشر البنية الأساسية السحابية في منطقة هبوط Azure جديدة، باستخدام DevSecOps لـIaC لضمان أمان عمليات النشر وجودتها. تريد أيضًا تعقب جميع التعديلات على البنية الأساسية وتدقيقها.

المساهمون

تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.

الكتاب الرئيسيون:

الخطوات التالية