مشاركة عبر


تخصيص عمليات نشر المستودع (معاينة عامة)

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

أسلوب التخصيص خيارات النشر التي تمت تغطيتها
سير عمل GitHub
مسار DevOps
تخصيص مشغل نشر الاتصال
تخصيص مسار النشر
تمكين عمليات النشر الذكية
ملفات التكوين التحكم في ترتيب عمليات نشر المحتوى ذات الأولوية
اختيار استبعاد ملفات محتوى معينة من عمليات التوزيع
توسيع نطاق عمليات النشر عبر مساحات عمل مختلفة عن طريق تعيين ملفات المعلمات إلى ملفات محتوى معينة

هام

ميزة مستودعات Microsoft Sentinel حاليًا إصدار أولي. راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure للحصول على مزيد من الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي أو المعاينة أو التي لم يتم إصدارها بعد في التوفر العام.

المتطلبات الأساسية

لتخصيص توزيع المستودعات، يجب أن يكون اتصال المستودع موجودا. لمزيد من المعلومات حول إنشاء الاتصال، راجع نشر محتوى مخصص من المستودع الخاص بك. بعد إجراء الاتصال، يتم تطبيق المتطلبات الأساسية التالية:

  • وصول المتعاون إلى مستودع GitHub أو وصول مسؤول المشروع إلى مستودع Azure DevOps
  • الإجراءات الممكنة لـ GitHub وPipelines الممكنة لـ Azure DevOps
  • تأكد من أن ملفات المحتوى المخصصة التي تريد نشرها في مساحات العمل بتنسيق مدعوم. للحصول على التنسيقات المدعومة، راجع تخطيط محتوى المستودع.

لمزيد من المعلومات حول أنواع المحتويات القابلة للنشر، راجع التحقق من صحة المحتوى الخاص بك.

تخصيص سير العمل أو البنية الأساسية لبرنامج ربط العمليات التجارية

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

حدد إحدى علامات التبويب التالية وفقاً لنوع الاتصال الخاص بك:

لتخصيص سير عمل توزيع GitHub:

  1. في GitHub، انتقل إلى المستودع الخاص بك وابحث عن سير العمل الخاص بك في دليل .github/workflows .

    ملف سير العمل هو ملف YML بدءا من sentinel-deploy-xxxxx.yml. افتح الملف وسيظهر اسم سير العمل في السطر الأول وله اصطلاح التسمية الافتراضي التالي: Deploy Content to <workspace-name> [<deployment-id>].

    على سبيل المثال: name: Deploy Content to repositories-demo [xxxxx-dk5d-3s94-4829-9xvnc7391v83a]

  2. حدد زر القلم الرصاص في أعلى يمين الصفحة لفتح الملف للتحرير، ثم قم بتعديل التوزيع على النحو التالي:

    • لتعديل مشغل التوزيع، قم بتحديث قسم on في التعليمة البرمجية، الذي يصف الحدث الذي يؤدي إلى تشغيل سير العمل.

      بشكل افتراضي، يتم تعيين هذا التكوين إلى on: push، ما يعني أنه يتم تشغيل سير العمل عند أي دفع للفرع المتصل، بما في ذلك التعديلات على المحتوى الموجود وإضافات المحتوى الجديد إلى المستودع. على سبيل المثال:

      on:
          push:
              branches: [ main ]
              paths:
              - `**`
              - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
              - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      

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

      لمزيد من المعلومات، راجع وثائق GitHub حول تكوين أحداث سير العمل.

    • لتعطيل عمليات النشر الذكية: سلوك عمليات التوزيع الذكية منفصل عن مشغل التوزيع الذي تمت مناقشته. انتقل إلى قسم jobs من سير العمل الخاص بك. بدل القيمة الافتراضية smartDeployment من true إلى false. بمجرد تنفيذ هذا التغيير، يتم إيقاف تشغيل وظيفة النشر الذكية، وتعاد نشر جميع عمليات التوزيع المستقبلية لهذا الاتصال جميع ملفات المحتوى ذات الصلة بالمستودع إلى مساحات العمل المتصلة.

    • لتعديل مسار التوزيع:

      في التكوين الافتراضي الموضح للمقطع on ، تشير أحرف البدل (**) في السطر الأول في paths المقطع إلى أن الفرع بأكمله في مسار مشغلات النشر.

      يعني هذا التكوين الافتراضي أنه يتم تشغيل سير عمل التوزيع في أي وقت يتم فيه دفع المحتوى إلى أي جزء من الفرع.

      لاحقاً في الملف، يتضمن قسم jobs التكوين الافتراضي التالي: directory: '${{ github.workspace }}'. يشير هذا السطر إلى أن فرع GitHub بأكمله في مسار توزيع المحتوى، دون تصفية أي مسارات مجلد.

      لتوزيع المحتوى من مسار مجلد معين فقط، قم بإضافته إلى كل من التكوين paths وdirectory. على سبيل المثال، لتوزيع المحتوى فقط من مجلد جذر يسمى SentinelContent، قم بتحديث التعليمة البرمجية كما يلي:

      paths:
      - `SentinelContent/**`
      - `!.github/workflows/**` # this filter prevents other workflow changes from triggering this workflow
      - `.github/workflows/sentinel-deploy-<deployment-id>.yml`
      
      ...
          directory: '${{ github.workspace }}/SentinelContent'
      

لمزيد من المعلومات، راجع وثائق GitHub حول GitHub Actions وتحرير مهام سير عمل GitHub.

هام

في كل من GitHub وAzure DevOps، تأكد من الحفاظ على اتساق مسار المشغل ودلائل مسار التوزيع.

توسيع نطاق عمليات النشر باستخدام ملفات المعلمات

بدلا من تمرير المعلمات كقيم مضمنة في ملفات المحتوى، ضع في اعتبارك استخدام ملف معلمة Bicep أو ملف JSON يحتوي على قيم المعلمات. ثم قم بتعيين ملفات المعلمات هذه إلى ملفات محتوى Microsoft Sentinel المقترنة بها لتوسيع نطاق عمليات النشر الخاصة بك عبر مساحات عمل مختلفة بشكل أفضل.

هناك عدة طرق لتعيين ملفات المعلمات إلى ملفات المحتوى. ضع في اعتبارك أن ملفات معلمات Bicep تدعم قوالب ملفات Bicep فقط، ولكن ملفات معلمات JSON تدعم كليهما. يأخذ مسار توزيع المستودعات في الاعتبار ملفات المعلمات بالترتيب التالي:

رسم تخطيطي يوضح أسبقية تعيينات ملفات المعلمات.

  1. هل هناك تعيين في sentinel-deployment.config؟
    لمزيد من المعلومات، راجع تخصيص تكوين الاتصال.

  2. هل هناك ملف معلمة معين لمساحة العمل؟ نعم، ملفات المحتوى موجودة في نفس الدليل مع ملف معلمة معين لمساحة العمل يطابق أحد هذه الأنماط:
    .<WorkspaceID.bicepparam.parameters-WorkspaceID><
    >.json

  3. هل هناك ملف معلمة افتراضي؟ نعم، ملفات المحتوى موجودة في نفس الدليل مع ملف معلمة يطابق أحد هذه الأنماط:
    .bicepparam
    .parameters.json

تجنب الاشتباكات مع عمليات نشر متعددة لمساحة العمل عن طريق تعيين ملفات المعلمات من خلال ملف التكوين أو تحديد معرف مساحة العمل في اسم الملف.

هام

بمجرد تحديد تطابق ملف معلمة استنادا إلى أسبقية التعيين، يتجاهل المسار أي تعيينات متبقية.

يؤدي تعديل ملف المعلمة المعين المدرج في sentinel-deployment.config إلى تشغيل نشر ملف المحتوى المقترن به. تؤدي إضافة ملف معلمة معين لمساحة العمل أو ملف معلمة افتراضي أو تعديله أيضا إلى تشغيل نشر ملفات المحتوى المقترنة مع المعلمات المعدلة حديثا، ما لم يكن تعيين معلمة أسبقية أعلى في مكانه. لا يتم نشر ملفات المحتوى الأخرى طالما أن ميزة عمليات النشر الذكية لا تزال ممكنة في ملف تعريف سير العمل/المسار.

تخصيص تكوين الاتصال

يدعم البرنامج النصي للتوزيع للمستودعات استخدام ملف تكوين توزيع لكل فرع مستودع اعتبارا من يوليو 2022. يساعدك ملف التكوين JSON على تعيين ملفات المعلمات إلى ملفات المحتوى ذات الصلة، وتحديد أولويات محتوى معين في عمليات النشر، واستبعاد محتوى معين من عمليات التوزيع.

  1. إنشاء الملف sentinel-deployment.config في جذر المستودع الخاص بك. تؤدي إضافة ملف التكوين هذا أو حذفه أو تعديله إلى نشر كامل لجميع المحتويات في المستودع وفقا للتكوين المحدث.

    لقطة شاشة لدليل جذر المستودع. يتم عرض RepositoriesSampleContent مع موقع ملف sentinel-deployment.config.

  2. قم بتضمين المحتوى المنظم في ثلاثة أقسام اختيارية، "prioritizedcontentfiles":و"excludecontentfiles":"parameterfilemappings":. إذا لم يتم تضمين أي مقاطع أو تم حذف ملف .config، فلا تزال عملية التوزيع قيد التشغيل. يتم تجاهل المقاطع غير الصالحة أو غير المعترف بها.

فيما يلي مثال على المحتويات الكاملة لملف sentinel-deployment.config صالح. يمكن أيضا العثور على هذا النموذج في نموذج مستودعات Microsoft Sentinel CICD.

{
  "prioritizedcontentfiles": [
    "parsers/Sample/ASimAuthenticationAWSCloudTrail.json",
    "workbooks/sample/TrendMicroDeepSecurityAttackActivity_ARM.json",
    "Playbooks/PaloAlto-PAN-OS/PaloAltoCustomConnector/azuredeploy.bicep"
  ], 
  "excludecontentfiles": [
     "Detections/Sample/PaloAlto-PortScanning.json",
     "parameters"
  ],
  "parameterfilemappings": {
    "879001c8-2181-4374-be7d-72e5dc69bd2b": {
      "Playbooks/PaloAlto-PAN-OS/Playbooks/PaloAlto-PAN-OS-BlockIP/azuredeploy.bicep": "parameters/samples/auzredeploy.bicepparam"
    },
    "9af71571-7181-4cef-992e-ef3f61506b4e": {
      "Playbooks/Enrich-SentinelIncident-GreyNoiseCommunity-IP/azuredeploy.json": "path/to/any-parameter-file.json"
    }
  },
  "DummySection": "This shouldn't impact deployment"
}

إشعار

لا تستخدم الحرف "\" المائل للخلف في أي من مسارات المحتوى. استخدم الشرطة المائلة للأمام "/" بدلا من ذلك.

  • لتحديد أولويات ملفات المحتوى:

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

    أضف أسماء المسارات الكاملة إلى "prioritizedcontentfiles": القسم . مطابقة أحرف البدل غير مدعومة في الوقت الحالي.

  • لاستبعاد ملفات المحتوى، قم "excludecontentfiles": بتعديل المقطع بأسماء المسارات الكاملة لملفات محتوى .json الفردية.

  • لتعيين المعلمات:

    يقبل البرنامج النصي للتوزيع ثلاث طرق لتعيين المعلمات كما هو موضح في توسيع نطاق عمليات التوزيع الخاصة بك مع ملفات المعلمات. تعيين المعلمات من خلال sentinel-deployment.config يأخذ الأسبقية العليا ويضمن تعيين ملف معلمة معين إلى ملفات المحتوى المقترنة به. قم بتعديل "parameterfilemappings": القسم باستخدام معرف مساحة عمل الاتصال الهدف وأسماء المسار الكامل لملفات .json الفردية.

يتوفر نموذج مستودع يوضح ملف تكوين التوزيع وطرق تعيين المعلمات الثلاثة. لمزيد من المعلومات، راجع نموذج مستودعات Microsoft Sentinel CICD.