اعتماد حواجز الحماية المستندة إلى النهج

قبل استخدام النهج، تحتاج إلى فهم مكان استخدامها داخل التطبيقات المرجعية لمنطقة Azure المنتقل إليها ولماذا. ستساعدك هذه المقالة على فهم ما إذا كنت تريد منع DeployIfNotExists (DINE) أو تعديل النهج من إجراء تغييرات داخل بيئة Azure.

لماذا تستخدم نهج DINE و Modify؟

تعد نهج DINE و Modify جزءا من عمليات التنفيذ المرجعية لمنطقة Azure المنتقل إليها. فهي تساعدك أنت ومؤسستك على ضمان توافق المناطق المنتقل إليها، والتي تعرف أيضا باسم الاشتراكات، والموارد الموجودة داخلها. تزيل هذه النهج أيضا العبء التشغيلي لفرق النظام الأساسي والمنطقة المنتقل إليها مع تغير حجم بيئة Azure.

على سبيل المثال، ضع في اعتبارك سيناريو يتم فيه توفير اشتراك منطقة هبوط جديدة ووضعه في مجموعة إدارة "corp". ثم تتخذ نهج DINE و Modify الإجراءات التالية لاشتراك المنطقة المنتقل إليها:

  • تمكين Microsoft Defender للسحابة. تكوين عمليات تصدير Defender for Cloud إلى مساحة عمل Log Analytics المركزية في اشتراك الإدارة.
  • تمكين Defender for Cloud للعروض المدعومة المختلفة استنادا إلى معلمات النهج التي تم تكوينها في تعيين النهج.
  • تكوين سجلات نشاط Azure لإرسالها إلى مساحة عمل Log Analytics المركزية في اشتراك الإدارة.
  • تكوين إعدادات التشخيص لجميع الموارد التي سيتم إرسالها إلى مساحة عمل Log Analytics المركزية في اشتراك الإدارة.
  • توزيع عوامل Azure Monitor المطلوبة للأجهزة الظاهرية ومجموعات مقياس الجهاز الظاهري Azure، بما في ذلك الخوادم المتصلة ب Azure Arc. قم بتوصيلها بمساحة عمل Log Analytics المركزية في اشتراك الإدارة.

ملاحظة

يمكنك تعطيل الخيارات السابقة في أي وقت أو أثناء توزيع التطبيقات المرجعية لمنطقة Azure المنتقل إليها.

تعرض القائمة السابقة مجموعة فرعية من جميع النهج التي تم تعيينها كجزء من مسرع منطقة Azure المنتقل إليها. للحصول على قائمة كاملة بالنهج التي يمكن تعيينها بواسطة التنفيذ المرجعي لمنطقة Azure المنتقل إليها، راجع النهج المضمنة في التطبيقات المرجعية لمناطق Azure المنتقل إليها.

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

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

تستخدم عمليات التنفيذ المرجعية لمناطق Azure المنتقل إليها نهج DINE Azure لمساعدتك على تحقيق الحوكمة المستندة إلى النهج داخل بيئة Azure الخاصة بك. ولكن ربما لا يمكنك استخدام نهج DINE أو Modify، أو أنك لست مستعدا لتمكين هذا النوع من تأثير نهج Azure بسبب:

  • سياسات الامتثال التنظيمي أو المعايير أو قيود القانون.
  • عمليات التحكم الصارمة في التغيير التي تتطلب موافقة بشرية على كل إجراء داخل بيئة Azure الخاصة بك.
  • نقص الخبرة والخبرة وفهم كيفية إدارة نهج DINE واستخدامها.
  • المتطلبات التنظيمية التي يتم تعريف جميع تكوين موارد حمل العمل، بما في ذلك الموارد المساعدة والموارد الداعمة والإعدادات، في البنية الأساسية كتعليق برمجي (IaC) من قبل فرق تطبيق حمل العمل.

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

هام

في جميع أنحاء هذه المقالة، سترى قيمتين محتملتين مستخدمتين لمصطلحات وضع الإنفاذ:

  • معطل أو DoNotEnforce
  • ممكن أو افتراضي

يستخدم مدخل Microsoft Azure معطلا وممكنا لوضع الإنفاذ. تستخدم قوالب Azure Resource Manager (ARM) وواجهات واجهة برمجة التطبيقات الأخرى DoNotEnforce و Default لنفس الخيارات.

لمزيد من المعلومات، راجع وضع الإنفاذ.

إذا كنت لا تزال متأكدا من أن مؤسستك لا يمكنها استخدام نهج DINE أو Modify، فإن هذه المقالة تشرح كيفية منع (المعروف أيضا باسم تعطيل) النهج من إجراء تغييرات تلقائية على بيئة Azure الخاصة بك.

ملاحظة

هذه العملية ليست دائمة. يمكن إعادة تمكين النهج في أي وقت من قبل أحد أعضاء فريق النظام الأساسي إذا قررت لاحقا استخدام نهج DINE أو Modify.

لمزيد من المعلومات، راجع المرحلة 2 والمرحلة 3.

نظرة عامة على النهج

يلخص الرسم التخطيطي التالي النهج المرحلي المقترح:

رسم يعرض نظرة عامة على مراحل DINE.

  1. تعيين وضع الإنفاذ إلى DoNotEnforce في تعيينات النهج:
    • باستخدام هذه الميزة، يمكنك تعديل سلوك التعيينات لتصبح نهج تدقيق فقط بشكل فعال دون تعديل تعريف النهج الأساسي.
    • يسمح لك هذا الأسلوب أيضا بالقيام بمهام المعالجة اليدوية على الموارد غير المتوافقة باستخدام مهام المعالجة إذا كنت تريد ذلك.
  2. قم بتعيين وضع الإنفاذ على Default تعيينات النهج إلى المعالجة التلقائية لتعيينات نهج DINE القابلة لإعادة التمكين على نطاق مخفض:
    • يمكنك اختيار استخدام بيئة بأكملها، على سبيل المثال، مجموعة إدارة بيئة الاختبار المعزولة.
    • أو يمكنك استخدام اشتراك حمل عمل غير مركزي.
  3. قم بتعيين وضع الإنفاذ على Default تعيينات النهج على نهج DINE المتبقية عبر بيئة Azure بأكملها.

بسبب قيود الامتثال التنظيمي، لا يمكن لبعض العملاء أبدا الانتقال إلى المرحلة 1 السابقة. هذه ليست مشكلة ويتم دعمها للبقاء في هذه الحالة، إذا لزم الأمر. يمكن للعملاء الآخرين التقدم إلى المرحلتين 2 و3 لاعتماد نهج DINE وتعديلها بالكامل للمساعدة في الحوكمة المستندة إلى النهج لبيئة Azure الخاصة بهم.

ملاحظة

السيناريو والنهج الموضحين في هذه المقالة غير مخصصين لغالبية العملاء أو يوصى بهما. راجع القسم لماذا تستخدم نهج DINE و Modify؟ قبل أن تقرر ما إذا كانت هذه النهج مناسبة ومطلوبة لبيئتك.

المرحلة 1: تعطيل الإجراءات التلقائية لنهج DINE وتعديلها

عند تعيين نهج، سيتم تطبيق التأثير المحدد في تعريف النهج بشكل افتراضي. نوصي بترك تعريف النهج كما هو. على سبيل المثال، اترك تأثير تعيين النهج ك DeployIfNotExists.

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

استخدم مدخل Microsoft Azure لتعيين وضع الإنفاذ إلى معطل

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

تعيين وضع الإنفاذ إلى معطل في مدخل Microsoft Azure.

استخدم قالب ARM لتعيين وضع الإنفاذ إلى DoNotEnforce

يوضح مثال التعليمات البرمجية هذا كيفية استخدام قالب ARM لتعيينه enforcementMode إلى DoNotEnforce في تعيين نهج. DoNotEnforce يعرف أيضا باسم Disabled.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "DoNotEnforce"
    … // other properties removed for display purposes
  }
}

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

حتى عند تعيين وضع التنفيذ إلى DoNotEnforce، يمكن تشغيل مهام المعالجة يدويا. يمكنك معالجة موارد محددة غير متوافقة. يمكنك أيضا معرفة ما كان يمكن أن يفعله نهج DINE أو Modify إذا تم تعيين وضع الإنفاذ إلى Default.

هام

عند تعيين وضع الإنفاذ إلى DoNotEnforce، لا يتم إنشاء الإدخالات في سجل نشاط Azure. ضع في اعتبارك هذا العامل إذا كنت تريد أن يتم إعلامك عند إنشاء مورد غير متوافق.

البقاء في حالة المرحلة 1 بشكل دائم

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

ربما تحتاج إلى البقاء في هذه الحالة بشكل دائم أو لفترة طويلة، مثل سنوات. إذا كان الأمر كذلك، فقد يكون من الأفضل لك اعتماد AuditIfNotExists تأثير نهج (AINE) والتعريفات المقترنة وتعيين وضع الإنفاذ مرة أخرى إلى Default.

ملاحظة

من خلال التغيير إلى استخدام نهج AINE وتعيين وضع الإنفاذ إلى Default، لا تزال تحقق نفس الهدف المتمثل في تعطيل DINE.

عند التغيير من DINE إلى AINE وتعيين وضع الإنفاذ مرة أخرى إلى Default كنهج طويل الأجل أو دائم للمرحلة 1، ستحصل على إدخالات سجل نشاط Azure مرة أخرى للحالات التوافق مع النهج. يمكنك إنشاء مهام سير عمل التنفيذ التلقائي من إدخالات السجل هذه في عمليات إدارة النظام الأساسي الإجمالية.

ستفقد القدرة على القيام بمهام المعالجة اليدوية. على عكس نهج DINE، لا تقوم نهج AINE بأي عمليات توزيع، إما تلقائية أو يدوية.

تذكر تحديث تعريف النهج لقبول تأثير تعيين النهج والسماح به AuditIfNotExists .

يلخص الجدول التالي الخيارات والآثار المترتبة على الأنواع المختلفة من تأثيرات النهج ومجموعات وضع الإنفاذ:

تأثير السياسة وضع التطبيق إدخال سجل النشاط إجراء المعالجة
تناول العشاء ممكن أو افتراضي نعم المعالجة التي يتم تشغيلها من قبل النظام الأساسي على نطاق واسع بعد الإنشاء أو تحديث الموارد. الإنشاء اليدوي لمهمة معالجة مطلوب إذا تم تعديل المورد التابع أو وجوده مسبقا قبل تعيين النهج.
تناول العشاء معطل أو DoNotEnforce لا الإنشاء اليدوي لمهمة المعالجة المطلوبة.
"Modify" ممكن أو افتراضي نعم المعالجة التلقائية أثناء الإنشاء أو التحديث.
"Modify" معطل أو DoNotEnforce لا الإنشاء اليدوي لمهمة المعالجة المطلوبة.
رفض ممكن أو افتراضي نعم تم رفض الإنشاء أو التحديث.
رفض معطل أو DoNotEnforce لا يسمح بإنشاء أو تحديث. المعالجة اليدوية مطلوبة.
التدقيق/AINE ممكن أو افتراضي نعم المعالجة اليدوية مطلوبة.
التدقيق/AINE معطل أو DoNotEnforce لا المعالجة اليدوية مطلوبة.

ملاحظة

راجع الإرشادات الواردة في التفاعل مع أحداث تغيير حالة نهج Azure لفهم ما إذا كان استخدام تكامل Azure Event Grid مع Azure Policy يوفر نهجا مناسبا إذا كنت تخطط لإنشاء التنفيذ التلقائي الخاص بك استنادا إلى أحداث حالة النهج.

المرحلة 2: تمكين نهج DINE وتعديلها على نهج معين أو نطاق مخفض

في هذه المرحلة، ستتعلم كيفية تعيين وضع الإنفاذ على Default تعيينات النهج.

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

للقيام بهذا الإجراء، تحتاج أولا إلى تحديد النهج أو النطاق المنخفض الذي سيتم استخدامه لاختبار إمكانات التنفيذ التلقائي الكامل لنهج DINE وتعديلها وتجربتها.

ملاحظة

قد ترغب في مراجعة نهج اختبار للنظام الأساسي على نطاق المؤسسة وتنفيذه. بهذه الطريقة، يمكنك اختبار النهج وتغييرات النظام الأساسي الأخرى في التسلسل الهرمي لمجموعة إدارة منفصلة داخل نفس المستأجر.

يعرف هذا النهج أيضا باسم نشر "الكناري".

يتم عرض بعض الأمثلة المقترحة للنطاقات والنهج في الجدول التالي:

عندما تريد... ... الاختيار من بين هذه النطاقات مثال على النهج التي يجب استخدامها
- اختبر قدرات المعالجة التلقائية DINE/Modify.
- تحقق من كيفية تأثر عمليات النشر الكاملة وتدفقات CI/CD، بما في ذلك الاختبارات.
- تحقق من كيفية تأثر حمل العمل الخاص بك.
- اشتراك بيئة الاختبار المعزولة
- مجموعة إدارة بيئة الاختبار المعزولة
- اشتراك المنطقة المنتقل إليها لحمل العمل غير المنتج
- بيئة "الكناري" على نطاق المؤسسة
- تكوين سجلات نشاط Azure للبث إلى مساحة عمل Log Analytics محددة.
- توزيع تكوين Defender for Cloud.
- تمكين Azure Monitor للأجهزة الظاهرية أو مجموعات مقياس الجهاز الظاهري.
- نشر إعدادات التشخيص إلى خدمات Azure.
- من المحتمل أن تكون ممكنة فقط لخدمات محددة ضمن المبادرة.

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

بعد تحديد نهج أو نهج، وتقليل النطاق لتعيينها، فإن الخطوة التالية هي تعيين النهج وتعيين وضع الإنفاذ إلى Default. اترك تأثير النهج، على سبيل المثال، DeployIfNotExists أو Modify، كما هو الحال في النطاق المنخفض الذي حددته.

استخدم مدخل Microsoft Azure لتعيين وضع الإنفاذ إلى ممكن

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

لقطة شاشة توضح تعيين وضع الإنفاذ إلى ممكن في مدخل Microsoft Azure.

استخدام قالب ARM لتعيين وضع الإنفاذ إلى افتراضي

يوضح مثال التعليمات البرمجية هذا كيفية استخدام قالب ARM لتعيينه enforcementMode إلى Default في تعيين نهج. Default يعرف أيضا باسم Enabled.

{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2019-09-01",
  "name": "PolicyAssignmentName",
  "location": "[deployment().location]",
  "properties": {
    "description": "PolicyAssignmentDescription",
    "policyDefinitionId": "[parameters('policyDefinitionId')]",
    "enforcementMode": "Default"
    … // other properties removed for display purposes
  }
}

الاختبار

الخطوة الأخيرة في هذه المرحلة هي إجراء الاختبار المطلوب. تريد التحقق مما إذا كان نهج DINE أو Modify قد أثرت على أحمال العمل والرمز والأدوات والعمليات وكيفية ذلك.

قم بإجراء اختبارات متعددة لالتقاط دورة حياة حمل العمل بالكامل. تريد التأكد من فهمك الكامل لكيفية إجراء DINE أو تعديل النهج للتغييرات.

بعض الأمثلة على الاختبار هي:

  • التوزيع الأولي لحمل العمل.
  • نشر التعليمات البرمجية/التطبيق على حمل العمل.
  • عمليات اليوم الثاني وإدارة حمل العمل.
  • إيقاف تشغيل حمل العمل.

المرحلة 3: تمكين نهج DINE وتعديلها في كل مكان

في هذه المرحلة، ستتعلم كيفية تعيين وضع الإنفاذ على Default تعيينات النهج.

نفترض أن اختبارك في نهاية المرحلة 2 قد تم بنجاح. أو، ربما تكون راضيا عن فهمك الآن لكيفية تفاعل نهج DINE أو Modify مع حمل العمل الخاص بك. يمكنك الآن توسيع استخدام نهج DINE وتعديلها عبر بقية بيئة Azure.

للمتابعة، يمكنك اتباع الخطوات المشابهة للخطوات الواردة في المرحلة 2. هذه المرة، يمكنك تعيين وضع الإنفاذ إلى Default على جميع تعيينات نهج DINE وتعديلها عبر بيئة Azure بأكملها.

فيما يلي نظرة عامة عالية المستوى على الخطوات التي تقوم بها في هذه المرحلة:

  • قم بإزالة التعيينات المستخدمة خصيصا للاختبار أثناء المرحلة 2.
  • انتقل من خلال كل تعيين نهج DINE وتعديله في بيئة Azure وقم بتعيين وضع الإنفاذ إلى Default. تظهر هذه العملية في الأمثلة في المرحلة 2.
  • إنشاء مهام معالجة للموارد الموجودة غير المتوافقة باتباع الإرشادات الواردة في إنشاء مهمة معالجة. ستتم معالجة الموارد الجديدة تلقائيا إذا كانت تطابق قواعد النهج وشروط الوجود.

على الرغم من أننا في المرحلة 3 نوصي بتعيين وضع الإنفاذ على Default لجميع نهج DINE و Modify في بيئة Azure، لا يزال هذا الاختيار اختياريا. يمكنك إجراء هذا الاختيار على أساس كل نهج لتناسب احتياجاتك ومتطلباتك.